The level files are set out like this. All values are little endian (least important bytes come first): The first byte is the number of letters in the background bitmap name. The followed by the name of the bitmap used for the background. Max of 100 characters. The byte next should be null. The next WORD (two bytes) is the number of 'objects' there are. Those are the coords you cannot walk through. The next byte is the number of 'hotspots', or the places that warp you to another location. Next is the # of objects of this: WORD x; //The x coord of the object WORD y; //The y coordinate WORD width; //The width WORD height; //the height BYTE type; //Type. 1 = square, 2 = slanted left, 3 = slanted right. Next is the # of hotspots of this: WORD x; //x coord of the hotspot WORD y; //y coord of the hotspot WORD width; //the width WORD height; //the height BYTE type; //type. Same as object types. BYTE mapnum; //Which map it will warp you to WORD warpx; //the x location on the map you warp to you will appear at WORD warpy; //the y location on the map you warp to you will appear at For the 'mapnum' the maps are 0 "levels\\maps\\main.lvl" 1 "levels\\maps\\drugstore.lvl" 2 "levels\\maps\\burger.lvl" 3 "levels\\maps\\townhall.lvl" 4 "levels\\maps\\arcade.lvl" 5 "levels\\maps\\hospital.lvl" 6 "levels\\maps\\arcade2.lvl" 7 "levels\\maps\\townhall2.lvl" 8 "levels\\maps\\townhall3.lvl" 9 "levels\\maps\\mayoroffice.lvl" Those are the indexed map file names. So all map names have to be that... unless you just recompile it and stuff... which you can... if you feel like it... because it comes packaged with the source.