summaryrefslogtreecommitdiff
path: root/data/maps
diff options
context:
space:
mode:
Diffstat (limited to 'data/maps')
-rw-r--r--data/maps/dungeon_maps.asm29
-rwxr-xr-xdata/maps/force_bike_surf.asm11
-rwxr-xr-xdata/maps/headers/AgathasRoom.asm3
-rwxr-xr-xdata/maps/headers/BikeShop.asm3
-rwxr-xr-xdata/maps/headers/BillsHouse.asm3
-rwxr-xr-xdata/maps/headers/BluesHouse.asm3
-rwxr-xr-xdata/maps/headers/BrunosRoom.asm3
-rwxr-xr-xdata/maps/headers/CeladonChiefHouse.asm3
-rwxr-xr-xdata/maps/headers/CeladonCity.asm5
-rwxr-xr-xdata/maps/headers/CeladonDiner.asm3
-rwxr-xr-xdata/maps/headers/CeladonGym.asm3
-rwxr-xr-xdata/maps/headers/CeladonHotel.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansion1F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansion2F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansion3F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansionRoof.asm3
-rwxr-xr-xdata/maps/headers/CeladonMansionRoofHouse.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart1F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart2F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart3F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart4F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMart5F.asm3
-rwxr-xr-xdata/maps/headers/CeladonMartElevator.asm3
-rwxr-xr-xdata/maps/headers/CeladonMartRoof.asm3
-rwxr-xr-xdata/maps/headers/CeladonPokecenter.asm3
-rwxr-xr-xdata/maps/headers/CeruleanBadgeHouse.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCave1F.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCave2F.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCaveB1F.asm3
-rwxr-xr-xdata/maps/headers/CeruleanCity.asm7
-rwxr-xr-xdata/maps/headers/CeruleanGym.asm3
-rwxr-xr-xdata/maps/headers/CeruleanMart.asm3
-rwxr-xr-xdata/maps/headers/CeruleanPokecenter.asm3
-rwxr-xr-xdata/maps/headers/CeruleanTradeHouse.asm3
-rwxr-xr-xdata/maps/headers/CeruleanTrashedHouse.asm3
-rwxr-xr-xdata/maps/headers/ChampionsRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarGym.asm3
-rwxr-xr-xdata/maps/headers/CinnabarIsland.asm5
-rwxr-xr-xdata/maps/headers/CinnabarLab.asm3
-rwxr-xr-xdata/maps/headers/CinnabarLabFossilRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarLabMetronomeRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarLabTradeRoom.asm3
-rwxr-xr-xdata/maps/headers/CinnabarMart.asm3
-rwxr-xr-xdata/maps/headers/CinnabarPokecenter.asm3
-rwxr-xr-xdata/maps/headers/Colosseum.asm3
-rwxr-xr-xdata/maps/headers/CopycatsHouse1F.asm3
-rwxr-xr-xdata/maps/headers/CopycatsHouse2F.asm3
-rwxr-xr-xdata/maps/headers/Daycare.asm3
-rwxr-xr-xdata/maps/headers/DiglettsCave.asm3
-rwxr-xr-xdata/maps/headers/DiglettsCaveRoute11.asm3
-rwxr-xr-xdata/maps/headers/DiglettsCaveRoute2.asm3
-rwxr-xr-xdata/maps/headers/FightingDojo.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaBillsGrandpasHouse.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaCity.asm6
-rwxr-xr-xdata/maps/headers/FuchsiaGoodRodHouse.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaGym.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaMart.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaMeetingRoom.asm3
-rwxr-xr-xdata/maps/headers/FuchsiaPokecenter.asm3
-rwxr-xr-xdata/maps/headers/GameCorner.asm3
-rwxr-xr-xdata/maps/headers/GameCornerPrizeRoom.asm3
-rwxr-xr-xdata/maps/headers/HallOfFame.asm3
-rwxr-xr-xdata/maps/headers/IndigoPlateau.asm4
-rwxr-xr-xdata/maps/headers/IndigoPlateauLobby.asm3
-rwxr-xr-xdata/maps/headers/LancesRoom.asm3
-rwxr-xr-xdata/maps/headers/LavenderCuboneHouse.asm3
-rwxr-xr-xdata/maps/headers/LavenderMart.asm3
-rwxr-xr-xdata/maps/headers/LavenderPokecenter.asm3
-rwxr-xr-xdata/maps/headers/LavenderTown.asm6
-rwxr-xr-xdata/maps/headers/LoreleisRoom.asm3
-rwxr-xr-xdata/maps/headers/MrFujisHouse.asm3
-rwxr-xr-xdata/maps/headers/MrPsychicsHouse.asm3
-rwxr-xr-xdata/maps/headers/MtMoon1F.asm3
-rwxr-xr-xdata/maps/headers/MtMoonB1F.asm3
-rwxr-xr-xdata/maps/headers/MtMoonB2F.asm3
-rwxr-xr-xdata/maps/headers/MtMoonPokecenter.asm3
-rwxr-xr-xdata/maps/headers/Museum1F.asm3
-rwxr-xr-xdata/maps/headers/Museum2F.asm3
-rwxr-xr-xdata/maps/headers/NameRatersHouse.asm3
-rwxr-xr-xdata/maps/headers/OaksLab.asm3
-rwxr-xr-xdata/maps/headers/PalletTown.asm5
-rwxr-xr-xdata/maps/headers/PewterCity.asm5
-rwxr-xr-xdata/maps/headers/PewterGym.asm3
-rwxr-xr-xdata/maps/headers/PewterMart.asm3
-rwxr-xr-xdata/maps/headers/PewterNidoranHouse.asm3
-rwxr-xr-xdata/maps/headers/PewterPokecenter.asm3
-rwxr-xr-xdata/maps/headers/PewterSpeechHouse.asm3
-rwxr-xr-xdata/maps/headers/PokemonFanClub.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansion1F.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansion2F.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansion3F.asm3
-rwxr-xr-xdata/maps/headers/PokemonMansionB1F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower1F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower2F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower3F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower4F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower5F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower6F.asm3
-rwxr-xr-xdata/maps/headers/PokemonTower7F.asm3
-rwxr-xr-xdata/maps/headers/PowerPlant.asm3
-rwxr-xr-xdata/maps/headers/RedsHouse1F.asm3
-rwxr-xr-xdata/maps/headers/RedsHouse2F.asm3
-rwxr-xr-xdata/maps/headers/RockTunnel1F.asm3
-rwxr-xr-xdata/maps/headers/RockTunnelB1F.asm3
-rwxr-xr-xdata/maps/headers/RockTunnelPokecenter.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB1F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB2F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB3F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutB4F.asm3
-rwxr-xr-xdata/maps/headers/RocketHideoutElevator.asm3
-rwxr-xr-xdata/maps/headers/Route1.asm5
-rwxr-xr-xdata/maps/headers/Route10.asm5
-rwxr-xr-xdata/maps/headers/Route11.asm5
-rwxr-xr-xdata/maps/headers/Route11Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route11Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route12.asm6
-rwxr-xr-xdata/maps/headers/Route12Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route12Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route12SuperRodHouse.asm3
-rwxr-xr-xdata/maps/headers/Route13.asm5
-rwxr-xr-xdata/maps/headers/Route14.asm5
-rwxr-xr-xdata/maps/headers/Route15.asm5
-rwxr-xr-xdata/maps/headers/Route15Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route15Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route16.asm5
-rwxr-xr-xdata/maps/headers/Route16FlyHouse.asm3
-rwxr-xr-xdata/maps/headers/Route16Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route16Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route17.asm5
-rwxr-xr-xdata/maps/headers/Route18.asm5
-rwxr-xr-xdata/maps/headers/Route18Gate1F.asm3
-rwxr-xr-xdata/maps/headers/Route18Gate2F.asm3
-rwxr-xr-xdata/maps/headers/Route19.asm5
-rwxr-xr-xdata/maps/headers/Route2.asm5
-rwxr-xr-xdata/maps/headers/Route20.asm5
-rwxr-xr-xdata/maps/headers/Route21.asm5
-rwxr-xr-xdata/maps/headers/Route22.asm5
-rwxr-xr-xdata/maps/headers/Route22Gate.asm3
-rwxr-xr-xdata/maps/headers/Route23.asm5
-rwxr-xr-xdata/maps/headers/Route24.asm5
-rwxr-xr-xdata/maps/headers/Route25.asm4
-rwxr-xr-xdata/maps/headers/Route2Gate.asm3
-rwxr-xr-xdata/maps/headers/Route2TradeHouse.asm3
-rwxr-xr-xdata/maps/headers/Route3.asm5
-rwxr-xr-xdata/maps/headers/Route4.asm5
-rwxr-xr-xdata/maps/headers/Route5.asm5
-rwxr-xr-xdata/maps/headers/Route5Gate.asm3
-rwxr-xr-xdata/maps/headers/Route6.asm5
-rwxr-xr-xdata/maps/headers/Route6Gate.asm3
-rwxr-xr-xdata/maps/headers/Route7.asm5
-rwxr-xr-xdata/maps/headers/Route7Gate.asm3
-rwxr-xr-xdata/maps/headers/Route8.asm5
-rwxr-xr-xdata/maps/headers/Route8Gate.asm3
-rwxr-xr-xdata/maps/headers/Route9.asm5
-rwxr-xr-xdata/maps/headers/SSAnne1F.asm3
-rwxr-xr-xdata/maps/headers/SSAnne1FRooms.asm3
-rwxr-xr-xdata/maps/headers/SSAnne2F.asm3
-rwxr-xr-xdata/maps/headers/SSAnne2FRooms.asm3
-rwxr-xr-xdata/maps/headers/SSAnne3F.asm3
-rwxr-xr-xdata/maps/headers/SSAnneB1F.asm3
-rwxr-xr-xdata/maps/headers/SSAnneB1FRooms.asm3
-rwxr-xr-xdata/maps/headers/SSAnneBow.asm3
-rwxr-xr-xdata/maps/headers/SSAnneCaptainsRoom.asm3
-rwxr-xr-xdata/maps/headers/SSAnneKitchen.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneCenter.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneCenterRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneEast.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneEastRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneGate.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneNorth.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneNorthRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneSecretHouse.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneWest.asm3
-rwxr-xr-xdata/maps/headers/SafariZoneWestRestHouse.asm3
-rwxr-xr-xdata/maps/headers/SaffronCity.asm7
-rwxr-xr-xdata/maps/headers/SaffronGym.asm3
-rwxr-xr-xdata/maps/headers/SaffronMart.asm3
-rwxr-xr-xdata/maps/headers/SaffronPidgeyHouse.asm3
-rwxr-xr-xdata/maps/headers/SaffronPokecenter.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslands1F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB1F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB2F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB3F.asm3
-rwxr-xr-xdata/maps/headers/SeafoamIslandsB4F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo10F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo11F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo1F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo2F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo3F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo4F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo5F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo6F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo7F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo8F.asm3
-rwxr-xr-xdata/maps/headers/SilphCo9F.asm3
-rwxr-xr-xdata/maps/headers/SilphCoElevator.asm3
-rwxr-xr-xdata/maps/headers/TradeCenter.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathNorthSouth.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute5.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute6.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute7.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute7Copy.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathRoute8.asm3
-rwxr-xr-xdata/maps/headers/UndergroundPathWestEast.asm3
-rwxr-xr-xdata/maps/headers/VermilionCity.asm5
-rwxr-xr-xdata/maps/headers/VermilionDock.asm3
-rwxr-xr-xdata/maps/headers/VermilionGym.asm3
-rwxr-xr-xdata/maps/headers/VermilionMart.asm3
-rwxr-xr-xdata/maps/headers/VermilionOldRodHouse.asm3
-rwxr-xr-xdata/maps/headers/VermilionPidgeyHouse.asm3
-rwxr-xr-xdata/maps/headers/VermilionPokecenter.asm3
-rwxr-xr-xdata/maps/headers/VermilionTradeHouse.asm3
-rwxr-xr-xdata/maps/headers/VictoryRoad1F.asm3
-rwxr-xr-xdata/maps/headers/VictoryRoad2F.asm3
-rwxr-xr-xdata/maps/headers/VictoryRoad3F.asm3
-rwxr-xr-xdata/maps/headers/ViridianCity.asm6
-rwxr-xr-xdata/maps/headers/ViridianForest.asm3
-rwxr-xr-xdata/maps/headers/ViridianForestNorthGate.asm3
-rwxr-xr-xdata/maps/headers/ViridianForestSouthGate.asm3
-rwxr-xr-xdata/maps/headers/ViridianGym.asm3
-rwxr-xr-xdata/maps/headers/ViridianMart.asm3
-rwxr-xr-xdata/maps/headers/ViridianNicknameHouse.asm3
-rwxr-xr-xdata/maps/headers/ViridianPokecenter.asm3
-rwxr-xr-xdata/maps/headers/ViridianSchoolHouse.asm3
-rwxr-xr-xdata/maps/headers/WardensHouse.asm3
-rwxr-xr-xdata/maps/hide_show_data.asm577
-rwxr-xr-xdata/maps/map_header_banks.asm250
-rwxr-xr-xdata/maps/map_header_pointers.asm250
-rwxr-xr-xdata/maps/names.asm107
-rwxr-xr-xdata/maps/objects/AgathasRoom.asm19
-rwxr-xr-xdata/maps/objects/BikeShop.asm17
-rwxr-xr-xdata/maps/objects/BillsHouse.asm17
-rwxr-xr-xdata/maps/objects/BluesHouse.asm17
-rwxr-xr-xdata/maps/objects/BrunosRoom.asm19
-rwxr-xr-xdata/maps/objects/CeladonChiefHouse.asm17
-rwxr-xr-xdata/maps/objects/CeladonCity.asm54
-rwxr-xr-xdata/maps/objects/CeladonDiner.asm19
-rwxr-xr-xdata/maps/objects/CeladonGym.asm22
-rwxr-xr-xdata/maps/objects/CeladonHotel.asm17
-rwxr-xr-xdata/maps/objects/CeladonMansion1F.asm25
-rwxr-xr-xdata/maps/objects/CeladonMansion2F.asm19
-rwxr-xr-xdata/maps/objects/CeladonMansion3F.asm26
-rwxr-xr-xdata/maps/objects/CeladonMansionRoof.asm17
-rwxr-xr-xdata/maps/objects/CeladonMansionRoofHouse.asm16
-rwxr-xr-xdata/maps/objects/CeladonMart1F.asm25
-rwxr-xr-xdata/maps/objects/CeladonMart2F.asm21
-rwxr-xr-xdata/maps/objects/CeladonMart3F.asm33
-rwxr-xr-xdata/maps/objects/CeladonMart4F.asm20
-rwxr-xr-xdata/maps/objects/CeladonMart5F.asm21
-rwxr-xr-xdata/maps/objects/CeladonMartElevator.asm15
-rwxr-xr-xdata/maps/objects/CeladonMartRoof.asm18
-rwxr-xr-xdata/maps/objects/CeladonPokecenter.asm18
-rwxr-xr-xdata/maps/objects/CeruleanBadgeHouse.asm17
-rwxr-xr-xdata/maps/objects/CeruleanCave1F.asm31
-rwxr-xr-xdata/maps/objects/CeruleanCave2F.asm25
-rwxr-xr-xdata/maps/objects/CeruleanCaveB1F.asm15
-rwxr-xr-xdata/maps/objects/CeruleanCity.asm47
-rwxr-xr-xdata/maps/objects/CeruleanGym.asm18
-rwxr-xr-xdata/maps/objects/CeruleanMart.asm17
-rwxr-xr-xdata/maps/objects/CeruleanPokecenter.asm18
-rwxr-xr-xdata/maps/objects/CeruleanTradeHouse.asm16
-rwxr-xr-xdata/maps/objects/CeruleanTrashedHouse.asm19
-rwxr-xr-xdata/maps/objects/ChampionsRoom.asm20
-rwxr-xr-xdata/maps/objects/CinnabarGym.asm23
-rwxr-xr-xdata/maps/objects/CinnabarIsland.asm27
-rwxr-xr-xdata/maps/objects/CinnabarLab.asm25
-rwxr-xr-xdata/maps/objects/CinnabarLabFossilRoom.asm16
-rwxr-xr-xdata/maps/objects/CinnabarLabMetronomeRoom.asm19
-rwxr-xr-xdata/maps/objects/CinnabarLabTradeRoom.asm17
-rwxr-xr-xdata/maps/objects/CinnabarMart.asm17
-rwxr-xr-xdata/maps/objects/CinnabarPokecenter.asm18
-rwxr-xr-xdata/maps/objects/Colosseum.asm9
-rwxr-xr-xdata/maps/objects/CopycatsHouse1F.asm19
-rwxr-xr-xdata/maps/objects/CopycatsHouse2F.asm19
-rwxr-xr-xdata/maps/objects/Daycare.asm15
-rwxr-xr-xdata/maps/objects/DiglettsCave.asm14
-rwxr-xr-xdata/maps/objects/DiglettsCaveRoute11.asm17
-rwxr-xr-xdata/maps/objects/DiglettsCaveRoute2.asm17
-rwxr-xr-xdata/maps/objects/FightingDojo.asm21
-rwxr-xr-xdata/maps/objects/FuchsiaBillsGrandpasHouse.asm17
-rwxr-xr-xdata/maps/objects/FuchsiaCity.asm52
-rwxr-xr-xdata/maps/objects/FuchsiaGoodRodHouse.asm17
-rwxr-xr-xdata/maps/objects/FuchsiaGym.asm22
-rwxr-xr-xdata/maps/objects/FuchsiaMart.asm17
-rwxr-xr-xdata/maps/objects/FuchsiaMeetingRoom.asm17
-rwxr-xr-xdata/maps/objects/FuchsiaPokecenter.asm18
-rwxr-xr-xdata/maps/objects/GameCorner.asm28
-rwxr-xr-xdata/maps/objects/GameCornerPrizeRoom.asm19
-rwxr-xr-xdata/maps/objects/HallOfFame.asm15
-rwxr-xr-xdata/maps/objects/IndigoPlateau.asm14
-rwxr-xr-xdata/maps/objects/IndigoPlateauLobby.asm21
-rwxr-xr-xdata/maps/objects/LancesRoom.asm17
-rwxr-xr-xdata/maps/objects/LavenderCuboneHouse.asm16
-rwxr-xr-xdata/maps/objects/LavenderMart.asm17
-rwxr-xr-xdata/maps/objects/LavenderPokecenter.asm18
-rwxr-xr-xdata/maps/objects/LavenderTown.asm31
-rwxr-xr-xdata/maps/objects/LoreleisRoom.asm19
-rwxr-xr-xdata/maps/objects/MrFujisHouse.asm20
-rwxr-xr-xdata/maps/objects/MrPsychicsHouse.asm15
-rwxr-xr-xdata/maps/objects/MtMoon1F.asm34
-rwxr-xr-xdata/maps/objects/MtMoonB1F.asm26
-rwxr-xr-xdata/maps/objects/MtMoonB2F.asm27
-rwxr-xr-xdata/maps/objects/MtMoonPokecenter.asm20
-rwxr-xr-xdata/maps/objects/Museum1F.asm25
-rwxr-xr-xdata/maps/objects/Museum2F.asm19
-rwxr-xr-xdata/maps/objects/NameRatersHouse.asm15
-rwxr-xr-xdata/maps/objects/OaksLab.asm25
-rwxr-xr-xdata/maps/objects/PalletTown.asm23
-rwxr-xr-xdata/maps/objects/PewterCity.asm36
-rwxr-xr-xdata/maps/objects/PewterGym.asm17
-rwxr-xr-xdata/maps/objects/PewterMart.asm17
-rwxr-xr-xdata/maps/objects/PewterNidoranHouse.asm17
-rwxr-xr-xdata/maps/objects/PewterPokecenter.asm18
-rwxr-xr-xdata/maps/objects/PewterSpeechHouse.asm16
-rwxr-xr-xdata/maps/objects/PokemonFanClub.asm22
-rwxr-xr-xdata/maps/objects/PokemonMansion1F.asm29
-rwxr-xr-xdata/maps/objects/PokemonMansion2F.asm22
-rwxr-xr-xdata/maps/objects/PokemonMansion3F.asm21
-rwxr-xr-xdata/maps/objects/PokemonMansionB1F.asm20
-rwxr-xr-xdata/maps/objects/PokemonTower1F.asm21
-rwxr-xr-xdata/maps/objects/PokemonTower2F.asm16
-rwxr-xr-xdata/maps/objects/PokemonTower3F.asm18
-rwxr-xr-xdata/maps/objects/PokemonTower4F.asm20
-rwxr-xr-xdata/maps/objects/PokemonTower5F.asm20
-rwxr-xr-xdata/maps/objects/PokemonTower6F.asm19
-rwxr-xr-xdata/maps/objects/PokemonTower7F.asm16
-rwxr-xr-xdata/maps/objects/PowerPlant.asm30
-rwxr-xr-xdata/maps/objects/RedsHouse1F.asm18
-rwxr-xr-xdata/maps/objects/RedsHouse2F.asm12
-rwxr-xr-xdata/maps/objects/RockTunnel1F.asm34
-rwxr-xr-xdata/maps/objects/RockTunnelB1F.asm26
-rwxr-xr-xdata/maps/objects/RockTunnelPokecenter.asm18
-rwxr-xr-xdata/maps/objects/RocketHideoutB1F.asm27
-rwxr-xr-xdata/maps/objects/RocketHideoutB2F.asm25
-rwxr-xr-xdata/maps/objects/RocketHideoutB3F.asm18
-rwxr-xr-xdata/maps/objects/RocketHideoutB4F.asm25
-rwxr-xr-xdata/maps/objects/RocketHideoutElevator.asm15
-rwxr-xr-xdata/maps/objects/Route1.asm14
-rwxr-xr-xdata/maps/objects/Route10.asm28
-rwxr-xr-xdata/maps/objects/Route11.asm31
-rwxr-xr-xdata/maps/objects/Route11Gate1F.asm21
-rwxr-xr-xdata/maps/objects/Route11Gate2F.asm16
-rwxr-xr-xdata/maps/objects/Route12.asm30
-rwxr-xr-xdata/maps/objects/Route12Gate1F.asm21
-rwxr-xr-xdata/maps/objects/Route12Gate2F.asm15
-rwxr-xr-xdata/maps/objects/Route12SuperRodHouse.asm15
-rwxr-xr-xdata/maps/objects/Route13.asm21
-rwxr-xr-xdata/maps/objects/Route14.asm19
-rwxr-xr-xdata/maps/objects/Route15.asm30
-rwxr-xr-xdata/maps/objects/Route15Gate1F.asm21
-rwxr-xr-xdata/maps/objects/Route15Gate2F.asm14
-rwxr-xr-xdata/maps/objects/Route16.asm37
-rwxr-xr-xdata/maps/objects/Route16FlyHouse.asm16
-rwxr-xr-xdata/maps/objects/Route16Gate1F.asm30
-rwxr-xr-xdata/maps/objects/Route16Gate2F.asm16
-rwxr-xr-xdata/maps/objects/Route17.asm24
-rwxr-xr-xdata/maps/objects/Route18.asm23
-rwxr-xr-xdata/maps/objects/Route18Gate1F.asm21
-rwxr-xr-xdata/maps/objects/Route18Gate2F.asm15
-rwxr-xr-xdata/maps/objects/Route19.asm21
-rwxr-xr-xdata/maps/objects/Route2.asm33
-rwxr-xr-xdata/maps/objects/Route20.asm26
-rwxr-xr-xdata/maps/objects/Route21.asm17
-rwxr-xr-xdata/maps/objects/Route22.asm15
-rwxr-xr-xdata/maps/objects/Route22Gate.asm19
-rwxr-xr-xdata/maps/objects/Route23.asm26
-rwxr-xr-xdata/maps/objects/Route24.asm16
-rwxr-xr-xdata/maps/objects/Route25.asm23
-rwxr-xr-xdata/maps/objects/Route2Gate.asm20
-rwxr-xr-xdata/maps/objects/Route2TradeHouse.asm16
-rwxr-xr-xdata/maps/objects/Route3.asm18
-rwxr-xr-xdata/maps/objects/Route4.asm22
-rwxr-xr-xdata/maps/objects/Route5.asm21
-rwxr-xr-xdata/maps/objects/Route5Gate.asm19
-rwxr-xr-xdata/maps/objects/Route6.asm25
-rwxr-xr-xdata/maps/objects/Route6Gate.asm19
-rwxr-xr-xdata/maps/objects/Route7.asm21
-rwxr-xr-xdata/maps/objects/Route7Gate.asm19
-rwxr-xr-xdata/maps/objects/Route8.asm30
-rwxr-xr-xdata/maps/objects/Route8Gate.asm19
-rwxr-xr-xdata/maps/objects/Route9.asm19
-rwxr-xr-xdata/maps/objects/SSAnne1F.asm34
-rwxr-xr-xdata/maps/objects/SSAnne1FRooms.asm33
-rwxr-xr-xdata/maps/objects/SSAnne2F.asm30
-rwxr-xr-xdata/maps/objects/SSAnne2FRooms.asm47
-rwxr-xr-xdata/maps/objects/SSAnne3F.asm15
-rwxr-xr-xdata/maps/objects/SSAnneB1F.asm22
-rwxr-xr-xdata/maps/objects/SSAnneB1FRooms.asm41
-rwxr-xr-xdata/maps/objects/SSAnneBow.asm19
-rwxr-xr-xdata/maps/objects/SSAnneCaptainsRoom.asm15
-rwxr-xr-xdata/maps/objects/SSAnneKitchen.asm19
-rwxr-xr-xdata/maps/objects/SafariZoneCenter.asm31
-rwxr-xr-xdata/maps/objects/SafariZoneCenterRestHouse.asm16
-rwxr-xr-xdata/maps/objects/SafariZoneEast.asm27
-rwxr-xr-xdata/maps/objects/SafariZoneEastRestHouse.asm17
-rwxr-xr-xdata/maps/objects/SafariZoneGate.asm20
-rwxr-xr-xdata/maps/objects/SafariZoneNorth.asm35
-rwxr-xr-xdata/maps/objects/SafariZoneNorthRestHouse.asm17
-rwxr-xr-xdata/maps/objects/SafariZoneSecretHouse.asm15
-rwxr-xr-xdata/maps/objects/SafariZoneWest.asm34
-rwxr-xr-xdata/maps/objects/SafariZoneWestRestHouse.asm17
-rwxr-xr-xdata/maps/objects/SaffronCity.asm51
-rwxr-xr-xdata/maps/objects/SaffronGym.asm83
-rwxr-xr-xdata/maps/objects/SaffronMart.asm17
-rwxr-xr-xdata/maps/objects/SaffronPidgeyHouse.asm18
-rwxr-xr-xdata/maps/objects/SaffronPokecenter.asm18
-rwxr-xr-xdata/maps/objects/SeafoamIslands1F.asm30
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB1F.asm26
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB2F.asm26
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB3F.asm30
-rwxr-xr-xdata/maps/objects/SeafoamIslandsB4F.asm23
-rwxr-xr-xdata/maps/objects/SilphCo10F.asm28
-rwxr-xr-xdata/maps/objects/SilphCo11F.asm23
-rwxr-xr-xdata/maps/objects/SilphCo1F.asm21
-rwxr-xr-xdata/maps/objects/SilphCo2F.asm29
-rwxr-xr-xdata/maps/objects/SilphCo3F.asm34
-rwxr-xr-xdata/maps/objects/SilphCo4F.asm31
-rwxr-xr-xdata/maps/objects/SilphCo5F.asm35
-rwxr-xr-xdata/maps/objects/SilphCo6F.asm30
-rwxr-xr-xdata/maps/objects/SilphCo7F.asm33
-rwxr-xr-xdata/maps/objects/SilphCo8F.asm28
-rwxr-xr-xdata/maps/objects/SilphCo9F.asm24
-rwxr-xr-xdata/maps/objects/SilphCoElevator.asm15
-rwxr-xr-xdata/maps/objects/TradeCenter.asm9
-rwxr-xr-xdata/maps/objects/UndergroundPathNorthSouth.asm14
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute5.asm17
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute6.asm17
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute7.asm17
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute7Copy.asm18
-rwxr-xr-xdata/maps/objects/UndergroundPathRoute8.asm17
-rwxr-xr-xdata/maps/objects/UndergroundPathWestEast.asm14
-rwxr-xr-xdata/maps/objects/VermilionCity.asm41
-rwxr-xr-xdata/maps/objects/VermilionDock.asm14
-rwxr-xr-xdata/maps/objects/VermilionGym.asm19
-rwxr-xr-xdata/maps/objects/VermilionMart.asm17
-rwxr-xr-xdata/maps/objects/VermilionOldRodHouse.asm15
-rwxr-xr-xdata/maps/objects/VermilionPidgeyHouse.asm17
-rwxr-xr-xdata/maps/objects/VermilionPokecenter.asm18
-rwxr-xr-xdata/maps/objects/VermilionTradeHouse.asm15
-rwxr-xr-xdata/maps/objects/VictoryRoad1F.asm23
-rwxr-xr-xdata/maps/objects/VictoryRoad2F.asm37
-rwxr-xr-xdata/maps/objects/VictoryRoad3F.asm28
-rwxr-xr-xdata/maps/objects/ViridianCity.asm33
-rwxr-xr-xdata/maps/objects/ViridianForest.asm36
-rwxr-xr-xdata/maps/objects/ViridianForestNorthGate.asm20
-rwxr-xr-xdata/maps/objects/ViridianForestSouthGate.asm20
-rwxr-xr-xdata/maps/objects/ViridianGym.asm25
-rwxr-xr-xdata/maps/objects/ViridianMart.asm17
-rwxr-xr-xdata/maps/objects/ViridianNicknameHouse.asm18
-rwxr-xr-xdata/maps/objects/ViridianPokecenter.asm18
-rwxr-xr-xdata/maps/objects/ViridianSchoolHouse.asm16
-rwxr-xr-xdata/maps/objects/WardensHouse.asm19
-rw-r--r--data/maps/rest_house_maps.asm5
-rwxr-xr-xdata/maps/songs.asm249
-rwxr-xr-xdata/maps/special_warps.asm119
-rwxr-xr-xdata/maps/sprite_sets.asm190
-rwxr-xr-xdata/maps/town_map_entries.asm101
-rwxr-xr-xdata/maps/town_map_order.asm49
458 files changed, 7637 insertions, 0 deletions
diff --git a/data/maps/dungeon_maps.asm b/data/maps/dungeon_maps.asm
new file mode 100644
index 00000000..118cf46b
--- /dev/null
+++ b/data/maps/dungeon_maps.asm
@@ -0,0 +1,29 @@
+; GetBattleTransitionID_IsDungeonMap checks if wCurMap
+; is equal to one of these maps
+DungeonMaps1:
+ db VIRIDIAN_FOREST
+ db ROCK_TUNNEL_1F
+ db SEAFOAM_ISLANDS_1F
+ db ROCK_TUNNEL_B1F
+ db $FF
+
+; GetBattleTransitionID_IsDungeonMap checks if wCurMap
+; is in between or equal to each pair of maps
+DungeonMaps2:
+ ; all MT_MOON maps
+ db MT_MOON_1F
+ db MT_MOON_B2F
+
+ ; all SS_ANNE maps, VICTORY_ROAD_1F, LANCES_ROOM, and HALL_OF_FAME
+ db SS_ANNE_1F
+ db HALL_OF_FAME
+
+ ; all POKEMON_TOWER maps and Lavender Town buildings
+ db LAVENDER_POKECENTER
+ db LAVENDER_CUBONE_HOUSE
+
+ ; SILPH_CO_[2-8]F, POKEMON_MANSION[2F-B1F], SAFARI_ZONE, and
+ ; CERULEAN_CAVE maps, except for SILPH_CO_1F
+ db SILPH_CO_2F
+ db CERULEAN_CAVE_1F
+ db $FF
diff --git a/data/maps/force_bike_surf.asm b/data/maps/force_bike_surf.asm
new file mode 100755
index 00000000..fb352aa9
--- /dev/null
+++ b/data/maps/force_bike_surf.asm
@@ -0,0 +1,11 @@
+ForcedBikeOrSurfMaps:
+; map id, y, x
+ db ROUTE_16,$0A,$11
+ db ROUTE_16,$0B,$11
+ db ROUTE_18,$08,$21
+ db ROUTE_18,$09,$21
+ db SEAFOAM_ISLANDS_B3F,$07,$12
+ db SEAFOAM_ISLANDS_B3F,$07,$13
+ db SEAFOAM_ISLANDS_B4F,$0E,$04
+ db SEAFOAM_ISLANDS_B4F,$0E,$05
+ db $FF ;end
diff --git a/data/maps/headers/AgathasRoom.asm b/data/maps/headers/AgathasRoom.asm
new file mode 100755
index 00000000..d04e0cfd
--- /dev/null
+++ b/data/maps/headers/AgathasRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header AgathasRoom, AGATHAS_ROOM, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/BikeShop.asm b/data/maps/headers/BikeShop.asm
new file mode 100755
index 00000000..b4b520e2
--- /dev/null
+++ b/data/maps/headers/BikeShop.asm
@@ -0,0 +1,3 @@
+
+ map_header BikeShop, BIKE_SHOP, CLUB, 0
+ end_map_header
diff --git a/data/maps/headers/BillsHouse.asm b/data/maps/headers/BillsHouse.asm
new file mode 100755
index 00000000..6063175d
--- /dev/null
+++ b/data/maps/headers/BillsHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header BillsHouse, BILLS_HOUSE, INTERIOR, 0
+ end_map_header
diff --git a/data/maps/headers/BluesHouse.asm b/data/maps/headers/BluesHouse.asm
new file mode 100755
index 00000000..33cee254
--- /dev/null
+++ b/data/maps/headers/BluesHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header BluesHouse, BLUES_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/BrunosRoom.asm b/data/maps/headers/BrunosRoom.asm
new file mode 100755
index 00000000..a0b2d4fd
--- /dev/null
+++ b/data/maps/headers/BrunosRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header BrunosRoom, BRUNOS_ROOM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonChiefHouse.asm b/data/maps/headers/CeladonChiefHouse.asm
new file mode 100755
index 00000000..34f17273
--- /dev/null
+++ b/data/maps/headers/CeladonChiefHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonChiefHouse, CELADON_CHIEF_HOUSE, MANSION, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonCity.asm b/data/maps/headers/CeladonCity.asm
new file mode 100755
index 00000000..6faa6f48
--- /dev/null
+++ b/data/maps/headers/CeladonCity.asm
@@ -0,0 +1,5 @@
+
+ map_header CeladonCity, CELADON_CITY, OVERWORLD, WEST | EAST
+ connection west, Route16, ROUTE_16, 4
+ connection east, Route7, ROUTE_7, 4
+ end_map_header
diff --git a/data/maps/headers/CeladonDiner.asm b/data/maps/headers/CeladonDiner.asm
new file mode 100755
index 00000000..b18d9633
--- /dev/null
+++ b/data/maps/headers/CeladonDiner.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonDiner, CELADON_DINER, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonGym.asm b/data/maps/headers/CeladonGym.asm
new file mode 100755
index 00000000..2302c65a
--- /dev/null
+++ b/data/maps/headers/CeladonGym.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonGym, CELADON_GYM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonHotel.asm b/data/maps/headers/CeladonHotel.asm
new file mode 100755
index 00000000..2339c14d
--- /dev/null
+++ b/data/maps/headers/CeladonHotel.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonHotel, CELADON_HOTEL, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMansion1F.asm b/data/maps/headers/CeladonMansion1F.asm
new file mode 100755
index 00000000..45970028
--- /dev/null
+++ b/data/maps/headers/CeladonMansion1F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMansion1F, CELADON_MANSION_1F, MANSION, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMansion2F.asm b/data/maps/headers/CeladonMansion2F.asm
new file mode 100755
index 00000000..d5e3e77b
--- /dev/null
+++ b/data/maps/headers/CeladonMansion2F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMansion2F, CELADON_MANSION_2F, MANSION, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMansion3F.asm b/data/maps/headers/CeladonMansion3F.asm
new file mode 100755
index 00000000..7566caad
--- /dev/null
+++ b/data/maps/headers/CeladonMansion3F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMansion3F, CELADON_MANSION_3F, MANSION, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMansionRoof.asm b/data/maps/headers/CeladonMansionRoof.asm
new file mode 100755
index 00000000..9cbae6f6
--- /dev/null
+++ b/data/maps/headers/CeladonMansionRoof.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMansionRoof, CELADON_MANSION_ROOF, MANSION, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMansionRoofHouse.asm b/data/maps/headers/CeladonMansionRoofHouse.asm
new file mode 100755
index 00000000..cb80fac8
--- /dev/null
+++ b/data/maps/headers/CeladonMansionRoofHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMansionRoofHouse, CELADON_MANSION_ROOF_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMart1F.asm b/data/maps/headers/CeladonMart1F.asm
new file mode 100755
index 00000000..30bd9ba9
--- /dev/null
+++ b/data/maps/headers/CeladonMart1F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMart1F, CELADON_MART_1F, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMart2F.asm b/data/maps/headers/CeladonMart2F.asm
new file mode 100755
index 00000000..d78dfe28
--- /dev/null
+++ b/data/maps/headers/CeladonMart2F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMart2F, CELADON_MART_2F, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMart3F.asm b/data/maps/headers/CeladonMart3F.asm
new file mode 100755
index 00000000..ad415eee
--- /dev/null
+++ b/data/maps/headers/CeladonMart3F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMart3F, CELADON_MART_3F, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMart4F.asm b/data/maps/headers/CeladonMart4F.asm
new file mode 100755
index 00000000..b9ce5b34
--- /dev/null
+++ b/data/maps/headers/CeladonMart4F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMart4F, CELADON_MART_4F, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMart5F.asm b/data/maps/headers/CeladonMart5F.asm
new file mode 100755
index 00000000..04d65b2b
--- /dev/null
+++ b/data/maps/headers/CeladonMart5F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMart5F, CELADON_MART_5F, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMartElevator.asm b/data/maps/headers/CeladonMartElevator.asm
new file mode 100755
index 00000000..2a98ccb0
--- /dev/null
+++ b/data/maps/headers/CeladonMartElevator.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMartElevator, CELADON_MART_ELEVATOR, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonMartRoof.asm b/data/maps/headers/CeladonMartRoof.asm
new file mode 100755
index 00000000..823ff25f
--- /dev/null
+++ b/data/maps/headers/CeladonMartRoof.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonMartRoof, CELADON_MART_ROOF, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/CeladonPokecenter.asm b/data/maps/headers/CeladonPokecenter.asm
new file mode 100755
index 00000000..378a41ec
--- /dev/null
+++ b/data/maps/headers/CeladonPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header CeladonPokecenter, CELADON_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanBadgeHouse.asm b/data/maps/headers/CeruleanBadgeHouse.asm
new file mode 100755
index 00000000..47a97b14
--- /dev/null
+++ b/data/maps/headers/CeruleanBadgeHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanBadgeHouse, CERULEAN_BADGE_HOUSE, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanCave1F.asm b/data/maps/headers/CeruleanCave1F.asm
new file mode 100755
index 00000000..7c80bbeb
--- /dev/null
+++ b/data/maps/headers/CeruleanCave1F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanCave1F, CERULEAN_CAVE_1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanCave2F.asm b/data/maps/headers/CeruleanCave2F.asm
new file mode 100755
index 00000000..353e265b
--- /dev/null
+++ b/data/maps/headers/CeruleanCave2F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanCave2F, CERULEAN_CAVE_2F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanCaveB1F.asm b/data/maps/headers/CeruleanCaveB1F.asm
new file mode 100755
index 00000000..d759aa6b
--- /dev/null
+++ b/data/maps/headers/CeruleanCaveB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanCaveB1F, CERULEAN_CAVE_B1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanCity.asm b/data/maps/headers/CeruleanCity.asm
new file mode 100755
index 00000000..c925713c
--- /dev/null
+++ b/data/maps/headers/CeruleanCity.asm
@@ -0,0 +1,7 @@
+
+ map_header CeruleanCity, CERULEAN_CITY, OVERWORLD, NORTH | SOUTH | WEST | EAST
+ connection north, Route24, ROUTE_24, 5
+ connection south, Route5, ROUTE_5, 5
+ connection west, Route4, ROUTE_4, 4
+ connection east, Route9, ROUTE_9, 4
+ end_map_header
diff --git a/data/maps/headers/CeruleanGym.asm b/data/maps/headers/CeruleanGym.asm
new file mode 100755
index 00000000..b1010ac3
--- /dev/null
+++ b/data/maps/headers/CeruleanGym.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanGym, CERULEAN_GYM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanMart.asm b/data/maps/headers/CeruleanMart.asm
new file mode 100755
index 00000000..2ee31666
--- /dev/null
+++ b/data/maps/headers/CeruleanMart.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanMart, CERULEAN_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanPokecenter.asm b/data/maps/headers/CeruleanPokecenter.asm
new file mode 100755
index 00000000..b79e7aff
--- /dev/null
+++ b/data/maps/headers/CeruleanPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanPokecenter, CERULEAN_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanTradeHouse.asm b/data/maps/headers/CeruleanTradeHouse.asm
new file mode 100755
index 00000000..20970b77
--- /dev/null
+++ b/data/maps/headers/CeruleanTradeHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanTradeHouse, CERULEAN_TRADE_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/CeruleanTrashedHouse.asm b/data/maps/headers/CeruleanTrashedHouse.asm
new file mode 100755
index 00000000..192a4195
--- /dev/null
+++ b/data/maps/headers/CeruleanTrashedHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header CeruleanTrashedHouse, CERULEAN_TRASHED_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/ChampionsRoom.asm b/data/maps/headers/ChampionsRoom.asm
new file mode 100755
index 00000000..aadc70a6
--- /dev/null
+++ b/data/maps/headers/ChampionsRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header ChampionsRoom, CHAMPIONS_ROOM, GYM, $0
+ end_map_header
diff --git a/data/maps/headers/CinnabarGym.asm b/data/maps/headers/CinnabarGym.asm
new file mode 100755
index 00000000..cc6dc1d7
--- /dev/null
+++ b/data/maps/headers/CinnabarGym.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarGym, CINNABAR_GYM, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarIsland.asm b/data/maps/headers/CinnabarIsland.asm
new file mode 100755
index 00000000..a94498be
--- /dev/null
+++ b/data/maps/headers/CinnabarIsland.asm
@@ -0,0 +1,5 @@
+
+ map_header CinnabarIsland, CINNABAR_ISLAND, OVERWORLD, NORTH | EAST
+ connection north, Route21, ROUTE_21, 0
+ connection east, Route20, ROUTE_20, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarLab.asm b/data/maps/headers/CinnabarLab.asm
new file mode 100755
index 00000000..e8081e75
--- /dev/null
+++ b/data/maps/headers/CinnabarLab.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarLab, CINNABAR_LAB, LAB, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarLabFossilRoom.asm b/data/maps/headers/CinnabarLabFossilRoom.asm
new file mode 100755
index 00000000..3cb88437
--- /dev/null
+++ b/data/maps/headers/CinnabarLabFossilRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarLabFossilRoom, CINNABAR_LAB_FOSSIL_ROOM, LAB, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarLabMetronomeRoom.asm b/data/maps/headers/CinnabarLabMetronomeRoom.asm
new file mode 100755
index 00000000..d77338c8
--- /dev/null
+++ b/data/maps/headers/CinnabarLabMetronomeRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarLabMetronomeRoom, CINNABAR_LAB_METRONOME_ROOM, LAB, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarLabTradeRoom.asm b/data/maps/headers/CinnabarLabTradeRoom.asm
new file mode 100755
index 00000000..c23d9c15
--- /dev/null
+++ b/data/maps/headers/CinnabarLabTradeRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarLabTradeRoom, CINNABAR_LAB_TRADE_ROOM, LAB, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarMart.asm b/data/maps/headers/CinnabarMart.asm
new file mode 100755
index 00000000..c68d582a
--- /dev/null
+++ b/data/maps/headers/CinnabarMart.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarMart, CINNABAR_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/CinnabarPokecenter.asm b/data/maps/headers/CinnabarPokecenter.asm
new file mode 100755
index 00000000..d910133b
--- /dev/null
+++ b/data/maps/headers/CinnabarPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header CinnabarPokecenter, CINNABAR_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/Colosseum.asm b/data/maps/headers/Colosseum.asm
new file mode 100755
index 00000000..faf03eb4
--- /dev/null
+++ b/data/maps/headers/Colosseum.asm
@@ -0,0 +1,3 @@
+
+ map_header Colosseum, COLOSSEUM, CLUB, 0
+ end_map_header
diff --git a/data/maps/headers/CopycatsHouse1F.asm b/data/maps/headers/CopycatsHouse1F.asm
new file mode 100755
index 00000000..532cef93
--- /dev/null
+++ b/data/maps/headers/CopycatsHouse1F.asm
@@ -0,0 +1,3 @@
+
+ map_header CopycatsHouse1F, COPYCATS_HOUSE_1F, REDS_HOUSE_1, 0
+ end_map_header
diff --git a/data/maps/headers/CopycatsHouse2F.asm b/data/maps/headers/CopycatsHouse2F.asm
new file mode 100755
index 00000000..38b1fbbb
--- /dev/null
+++ b/data/maps/headers/CopycatsHouse2F.asm
@@ -0,0 +1,3 @@
+
+ map_header CopycatsHouse2F, COPYCATS_HOUSE_2F, REDS_HOUSE_2, 0
+ end_map_header
diff --git a/data/maps/headers/Daycare.asm b/data/maps/headers/Daycare.asm
new file mode 100755
index 00000000..dabeedd9
--- /dev/null
+++ b/data/maps/headers/Daycare.asm
@@ -0,0 +1,3 @@
+
+ map_header Daycare, DAYCARE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/DiglettsCave.asm b/data/maps/headers/DiglettsCave.asm
new file mode 100755
index 00000000..d3777d31
--- /dev/null
+++ b/data/maps/headers/DiglettsCave.asm
@@ -0,0 +1,3 @@
+
+ map_header DiglettsCave, DIGLETTS_CAVE, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/DiglettsCaveRoute11.asm b/data/maps/headers/DiglettsCaveRoute11.asm
new file mode 100755
index 00000000..d8bdd704
--- /dev/null
+++ b/data/maps/headers/DiglettsCaveRoute11.asm
@@ -0,0 +1,3 @@
+
+ map_header DiglettsCaveRoute11, DIGLETTS_CAVE_ROUTE_11, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/DiglettsCaveRoute2.asm b/data/maps/headers/DiglettsCaveRoute2.asm
new file mode 100755
index 00000000..86f5ae35
--- /dev/null
+++ b/data/maps/headers/DiglettsCaveRoute2.asm
@@ -0,0 +1,3 @@
+
+ map_header DiglettsCaveRoute2, DIGLETTS_CAVE_ROUTE_2, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/FightingDojo.asm b/data/maps/headers/FightingDojo.asm
new file mode 100755
index 00000000..7ecadc57
--- /dev/null
+++ b/data/maps/headers/FightingDojo.asm
@@ -0,0 +1,3 @@
+
+ map_header FightingDojo, FIGHTING_DOJO, DOJO, 0
+ end_map_header
diff --git a/data/maps/headers/FuchsiaBillsGrandpasHouse.asm b/data/maps/headers/FuchsiaBillsGrandpasHouse.asm
new file mode 100755
index 00000000..10ba48e9
--- /dev/null
+++ b/data/maps/headers/FuchsiaBillsGrandpasHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header FuchsiaBillsGrandpasHouse, FUCHSIA_BILLS_GRANDPAS_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/FuchsiaCity.asm b/data/maps/headers/FuchsiaCity.asm
new file mode 100755
index 00000000..6028bce0
--- /dev/null
+++ b/data/maps/headers/FuchsiaCity.asm
@@ -0,0 +1,6 @@
+
+ map_header FuchsiaCity, FUCHSIA_CITY, OVERWORLD, SOUTH | WEST | EAST
+ connection south, Route19, ROUTE_19, 5
+ connection west, Route18, ROUTE_18, 4
+ connection east, Route15, ROUTE_15, 4
+ end_map_header
diff --git a/data/maps/headers/FuchsiaGoodRodHouse.asm b/data/maps/headers/FuchsiaGoodRodHouse.asm
new file mode 100755
index 00000000..d21611c1
--- /dev/null
+++ b/data/maps/headers/FuchsiaGoodRodHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header FuchsiaGoodRodHouse, FUCHSIA_GOOD_ROD_HOUSE, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/FuchsiaGym.asm b/data/maps/headers/FuchsiaGym.asm
new file mode 100755
index 00000000..44be2971
--- /dev/null
+++ b/data/maps/headers/FuchsiaGym.asm
@@ -0,0 +1,3 @@
+
+ map_header FuchsiaGym, FUCHSIA_GYM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/FuchsiaMart.asm b/data/maps/headers/FuchsiaMart.asm
new file mode 100755
index 00000000..120fe305
--- /dev/null
+++ b/data/maps/headers/FuchsiaMart.asm
@@ -0,0 +1,3 @@
+
+ map_header FuchsiaMart, FUCHSIA_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/FuchsiaMeetingRoom.asm b/data/maps/headers/FuchsiaMeetingRoom.asm
new file mode 100755
index 00000000..a5ab4f04
--- /dev/null
+++ b/data/maps/headers/FuchsiaMeetingRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header FuchsiaMeetingRoom, FUCHSIA_MEETING_ROOM, LAB, 0
+ end_map_header
diff --git a/data/maps/headers/FuchsiaPokecenter.asm b/data/maps/headers/FuchsiaPokecenter.asm
new file mode 100755
index 00000000..c1c683bd
--- /dev/null
+++ b/data/maps/headers/FuchsiaPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header FuchsiaPokecenter, FUCHSIA_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/GameCorner.asm b/data/maps/headers/GameCorner.asm
new file mode 100755
index 00000000..ad367b93
--- /dev/null
+++ b/data/maps/headers/GameCorner.asm
@@ -0,0 +1,3 @@
+
+ map_header GameCorner, GAME_CORNER, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/GameCornerPrizeRoom.asm b/data/maps/headers/GameCornerPrizeRoom.asm
new file mode 100755
index 00000000..4668cbb8
--- /dev/null
+++ b/data/maps/headers/GameCornerPrizeRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header GameCornerPrizeRoom, GAME_CORNER_PRIZE_ROOM, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/HallOfFame.asm b/data/maps/headers/HallOfFame.asm
new file mode 100755
index 00000000..e2dc3fb3
--- /dev/null
+++ b/data/maps/headers/HallOfFame.asm
@@ -0,0 +1,3 @@
+
+ map_header HallOfFame, HALL_OF_FAME, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/IndigoPlateau.asm b/data/maps/headers/IndigoPlateau.asm
new file mode 100755
index 00000000..ff394dfe
--- /dev/null
+++ b/data/maps/headers/IndigoPlateau.asm
@@ -0,0 +1,4 @@
+
+ map_header IndigoPlateau, INDIGO_PLATEAU, PLATEAU, SOUTH
+ connection south, Route23, ROUTE_23, 0
+ end_map_header
diff --git a/data/maps/headers/IndigoPlateauLobby.asm b/data/maps/headers/IndigoPlateauLobby.asm
new file mode 100755
index 00000000..b13afa12
--- /dev/null
+++ b/data/maps/headers/IndigoPlateauLobby.asm
@@ -0,0 +1,3 @@
+
+ map_header IndigoPlateauLobby, INDIGO_PLATEAU_LOBBY, MART, 0
+ end_map_header
diff --git a/data/maps/headers/LancesRoom.asm b/data/maps/headers/LancesRoom.asm
new file mode 100755
index 00000000..0b69970e
--- /dev/null
+++ b/data/maps/headers/LancesRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header LancesRoom, LANCES_ROOM, DOJO, 0
+ end_map_header
diff --git a/data/maps/headers/LavenderCuboneHouse.asm b/data/maps/headers/LavenderCuboneHouse.asm
new file mode 100755
index 00000000..dfd38ff1
--- /dev/null
+++ b/data/maps/headers/LavenderCuboneHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header LavenderCuboneHouse, LAVENDER_CUBONE_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/LavenderMart.asm b/data/maps/headers/LavenderMart.asm
new file mode 100755
index 00000000..82c239e6
--- /dev/null
+++ b/data/maps/headers/LavenderMart.asm
@@ -0,0 +1,3 @@
+
+ map_header LavenderMart, LAVENDER_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/LavenderPokecenter.asm b/data/maps/headers/LavenderPokecenter.asm
new file mode 100755
index 00000000..c0cd0adf
--- /dev/null
+++ b/data/maps/headers/LavenderPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header LavenderPokecenter, LAVENDER_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/LavenderTown.asm b/data/maps/headers/LavenderTown.asm
new file mode 100755
index 00000000..7c1c9c46
--- /dev/null
+++ b/data/maps/headers/LavenderTown.asm
@@ -0,0 +1,6 @@
+
+ map_header LavenderTown, LAVENDER_TOWN, OVERWORLD, NORTH | SOUTH | WEST
+ connection north, Route10, ROUTE_10, 0
+ connection south, Route12, ROUTE_12, 0
+ connection west, Route8, ROUTE_8, 0
+ end_map_header
diff --git a/data/maps/headers/LoreleisRoom.asm b/data/maps/headers/LoreleisRoom.asm
new file mode 100755
index 00000000..feff946c
--- /dev/null
+++ b/data/maps/headers/LoreleisRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header LoreleisRoom, LORELEIS_ROOM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/MrFujisHouse.asm b/data/maps/headers/MrFujisHouse.asm
new file mode 100755
index 00000000..023cb501
--- /dev/null
+++ b/data/maps/headers/MrFujisHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header MrFujisHouse, MR_FUJIS_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/MrPsychicsHouse.asm b/data/maps/headers/MrPsychicsHouse.asm
new file mode 100755
index 00000000..628db044
--- /dev/null
+++ b/data/maps/headers/MrPsychicsHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header MrPsychicsHouse, MR_PSYCHICS_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/MtMoon1F.asm b/data/maps/headers/MtMoon1F.asm
new file mode 100755
index 00000000..8de2be3e
--- /dev/null
+++ b/data/maps/headers/MtMoon1F.asm
@@ -0,0 +1,3 @@
+
+ map_header MtMoon1F, MT_MOON_1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/MtMoonB1F.asm b/data/maps/headers/MtMoonB1F.asm
new file mode 100755
index 00000000..9c97b5c7
--- /dev/null
+++ b/data/maps/headers/MtMoonB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header MtMoonB1F, MT_MOON_B1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/MtMoonB2F.asm b/data/maps/headers/MtMoonB2F.asm
new file mode 100755
index 00000000..0ed1f96e
--- /dev/null
+++ b/data/maps/headers/MtMoonB2F.asm
@@ -0,0 +1,3 @@
+
+ map_header MtMoonB2F, MT_MOON_B2F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/MtMoonPokecenter.asm b/data/maps/headers/MtMoonPokecenter.asm
new file mode 100755
index 00000000..0425eae7
--- /dev/null
+++ b/data/maps/headers/MtMoonPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header MtMoonPokecenter, MT_MOON_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/Museum1F.asm b/data/maps/headers/Museum1F.asm
new file mode 100755
index 00000000..d92176d2
--- /dev/null
+++ b/data/maps/headers/Museum1F.asm
@@ -0,0 +1,3 @@
+
+ map_header Museum1F, MUSEUM_1F, MUSEUM, 0
+ end_map_header
diff --git a/data/maps/headers/Museum2F.asm b/data/maps/headers/Museum2F.asm
new file mode 100755
index 00000000..d5bf8918
--- /dev/null
+++ b/data/maps/headers/Museum2F.asm
@@ -0,0 +1,3 @@
+
+ map_header Museum2F, MUSEUM_2F, MUSEUM, 0
+ end_map_header
diff --git a/data/maps/headers/NameRatersHouse.asm b/data/maps/headers/NameRatersHouse.asm
new file mode 100755
index 00000000..3f9010f0
--- /dev/null
+++ b/data/maps/headers/NameRatersHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header NameRatersHouse, NAME_RATERS_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/OaksLab.asm b/data/maps/headers/OaksLab.asm
new file mode 100755
index 00000000..42bb76e8
--- /dev/null
+++ b/data/maps/headers/OaksLab.asm
@@ -0,0 +1,3 @@
+
+ map_header OaksLab, OAKS_LAB, DOJO, 0
+ end_map_header
diff --git a/data/maps/headers/PalletTown.asm b/data/maps/headers/PalletTown.asm
new file mode 100755
index 00000000..2745bdc1
--- /dev/null
+++ b/data/maps/headers/PalletTown.asm
@@ -0,0 +1,5 @@
+
+ map_header PalletTown, PALLET_TOWN, OVERWORLD, NORTH | SOUTH
+ connection north, Route1, ROUTE_1, 0
+ connection south, Route21, ROUTE_21, 0
+ end_map_header
diff --git a/data/maps/headers/PewterCity.asm b/data/maps/headers/PewterCity.asm
new file mode 100755
index 00000000..268adb7a
--- /dev/null
+++ b/data/maps/headers/PewterCity.asm
@@ -0,0 +1,5 @@
+
+ map_header PewterCity, PEWTER_CITY, OVERWORLD, SOUTH | EAST
+ connection south, Route2, ROUTE_2, 5
+ connection east, Route3, ROUTE_3, 4
+ end_map_header
diff --git a/data/maps/headers/PewterGym.asm b/data/maps/headers/PewterGym.asm
new file mode 100755
index 00000000..a1659e42
--- /dev/null
+++ b/data/maps/headers/PewterGym.asm
@@ -0,0 +1,3 @@
+
+ map_header PewterGym, PEWTER_GYM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/PewterMart.asm b/data/maps/headers/PewterMart.asm
new file mode 100755
index 00000000..c9b24eb2
--- /dev/null
+++ b/data/maps/headers/PewterMart.asm
@@ -0,0 +1,3 @@
+
+ map_header PewterMart, PEWTER_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/PewterNidoranHouse.asm b/data/maps/headers/PewterNidoranHouse.asm
new file mode 100755
index 00000000..ee2e46ca
--- /dev/null
+++ b/data/maps/headers/PewterNidoranHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header PewterNidoranHouse, PEWTER_NIDORAN_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/PewterPokecenter.asm b/data/maps/headers/PewterPokecenter.asm
new file mode 100755
index 00000000..4e420bf8
--- /dev/null
+++ b/data/maps/headers/PewterPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header PewterPokecenter, PEWTER_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/PewterSpeechHouse.asm b/data/maps/headers/PewterSpeechHouse.asm
new file mode 100755
index 00000000..a378d61e
--- /dev/null
+++ b/data/maps/headers/PewterSpeechHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header PewterSpeechHouse, PEWTER_SPEECH_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonFanClub.asm b/data/maps/headers/PokemonFanClub.asm
new file mode 100755
index 00000000..b4ff8e1c
--- /dev/null
+++ b/data/maps/headers/PokemonFanClub.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonFanClub, POKEMON_FAN_CLUB, INTERIOR, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonMansion1F.asm b/data/maps/headers/PokemonMansion1F.asm
new file mode 100755
index 00000000..9407f956
--- /dev/null
+++ b/data/maps/headers/PokemonMansion1F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonMansion1F, POKEMON_MANSION_1F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonMansion2F.asm b/data/maps/headers/PokemonMansion2F.asm
new file mode 100755
index 00000000..deb7c84f
--- /dev/null
+++ b/data/maps/headers/PokemonMansion2F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonMansion2F, POKEMON_MANSION_2F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonMansion3F.asm b/data/maps/headers/PokemonMansion3F.asm
new file mode 100755
index 00000000..e4baa709
--- /dev/null
+++ b/data/maps/headers/PokemonMansion3F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonMansion3F, POKEMON_MANSION_3F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonMansionB1F.asm b/data/maps/headers/PokemonMansionB1F.asm
new file mode 100755
index 00000000..0aae67e6
--- /dev/null
+++ b/data/maps/headers/PokemonMansionB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonMansionB1F, POKEMON_MANSION_B1F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower1F.asm b/data/maps/headers/PokemonTower1F.asm
new file mode 100755
index 00000000..185fd2c0
--- /dev/null
+++ b/data/maps/headers/PokemonTower1F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower1F, POKEMON_TOWER_1F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower2F.asm b/data/maps/headers/PokemonTower2F.asm
new file mode 100755
index 00000000..5a6046c8
--- /dev/null
+++ b/data/maps/headers/PokemonTower2F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower2F, POKEMON_TOWER_2F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower3F.asm b/data/maps/headers/PokemonTower3F.asm
new file mode 100755
index 00000000..49ebc4e7
--- /dev/null
+++ b/data/maps/headers/PokemonTower3F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower3F, POKEMON_TOWER_3F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower4F.asm b/data/maps/headers/PokemonTower4F.asm
new file mode 100755
index 00000000..0eb9a0d6
--- /dev/null
+++ b/data/maps/headers/PokemonTower4F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower4F, POKEMON_TOWER_4F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower5F.asm b/data/maps/headers/PokemonTower5F.asm
new file mode 100755
index 00000000..e58c63c6
--- /dev/null
+++ b/data/maps/headers/PokemonTower5F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower5F, POKEMON_TOWER_5F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower6F.asm b/data/maps/headers/PokemonTower6F.asm
new file mode 100755
index 00000000..ba53347b
--- /dev/null
+++ b/data/maps/headers/PokemonTower6F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower6F, POKEMON_TOWER_6F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PokemonTower7F.asm b/data/maps/headers/PokemonTower7F.asm
new file mode 100755
index 00000000..bd9f839b
--- /dev/null
+++ b/data/maps/headers/PokemonTower7F.asm
@@ -0,0 +1,3 @@
+
+ map_header PokemonTower7F, POKEMON_TOWER_7F, CEMETERY, 0
+ end_map_header
diff --git a/data/maps/headers/PowerPlant.asm b/data/maps/headers/PowerPlant.asm
new file mode 100755
index 00000000..88d82ae2
--- /dev/null
+++ b/data/maps/headers/PowerPlant.asm
@@ -0,0 +1,3 @@
+
+ map_header PowerPlant, POWER_PLANT, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/RedsHouse1F.asm b/data/maps/headers/RedsHouse1F.asm
new file mode 100755
index 00000000..018bdc80
--- /dev/null
+++ b/data/maps/headers/RedsHouse1F.asm
@@ -0,0 +1,3 @@
+
+ map_header RedsHouse1F, REDS_HOUSE_1F, REDS_HOUSE_1, 0
+ end_map_header
diff --git a/data/maps/headers/RedsHouse2F.asm b/data/maps/headers/RedsHouse2F.asm
new file mode 100755
index 00000000..10332e2c
--- /dev/null
+++ b/data/maps/headers/RedsHouse2F.asm
@@ -0,0 +1,3 @@
+
+ map_header RedsHouse2F, REDS_HOUSE_2F, REDS_HOUSE_2, $00
+ end_map_header
diff --git a/data/maps/headers/RockTunnel1F.asm b/data/maps/headers/RockTunnel1F.asm
new file mode 100755
index 00000000..268ee645
--- /dev/null
+++ b/data/maps/headers/RockTunnel1F.asm
@@ -0,0 +1,3 @@
+
+ map_header RockTunnel1F, ROCK_TUNNEL_1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/RockTunnelB1F.asm b/data/maps/headers/RockTunnelB1F.asm
new file mode 100755
index 00000000..7b13f647
--- /dev/null
+++ b/data/maps/headers/RockTunnelB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header RockTunnelB1F, ROCK_TUNNEL_B1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/RockTunnelPokecenter.asm b/data/maps/headers/RockTunnelPokecenter.asm
new file mode 100755
index 00000000..a873854b
--- /dev/null
+++ b/data/maps/headers/RockTunnelPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header RockTunnelPokecenter, ROCK_TUNNEL_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/RocketHideoutB1F.asm b/data/maps/headers/RocketHideoutB1F.asm
new file mode 100755
index 00000000..521a6693
--- /dev/null
+++ b/data/maps/headers/RocketHideoutB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header RocketHideoutB1F, ROCKET_HIDEOUT_B1F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/RocketHideoutB2F.asm b/data/maps/headers/RocketHideoutB2F.asm
new file mode 100755
index 00000000..ab2a965d
--- /dev/null
+++ b/data/maps/headers/RocketHideoutB2F.asm
@@ -0,0 +1,3 @@
+
+ map_header RocketHideoutB2F, ROCKET_HIDEOUT_B2F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/RocketHideoutB3F.asm b/data/maps/headers/RocketHideoutB3F.asm
new file mode 100755
index 00000000..0a04b00e
--- /dev/null
+++ b/data/maps/headers/RocketHideoutB3F.asm
@@ -0,0 +1,3 @@
+
+ map_header RocketHideoutB3F, ROCKET_HIDEOUT_B3F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/RocketHideoutB4F.asm b/data/maps/headers/RocketHideoutB4F.asm
new file mode 100755
index 00000000..11512c01
--- /dev/null
+++ b/data/maps/headers/RocketHideoutB4F.asm
@@ -0,0 +1,3 @@
+
+ map_header RocketHideoutB4F, ROCKET_HIDEOUT_B4F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/RocketHideoutElevator.asm b/data/maps/headers/RocketHideoutElevator.asm
new file mode 100755
index 00000000..90ece237
--- /dev/null
+++ b/data/maps/headers/RocketHideoutElevator.asm
@@ -0,0 +1,3 @@
+
+ map_header RocketHideoutElevator, ROCKET_HIDEOUT_ELEVATOR, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/Route1.asm b/data/maps/headers/Route1.asm
new file mode 100755
index 00000000..6eeb0347
--- /dev/null
+++ b/data/maps/headers/Route1.asm
@@ -0,0 +1,5 @@
+
+ map_header Route1, ROUTE_1, OVERWORLD, NORTH | SOUTH
+ connection north, ViridianCity, VIRIDIAN_CITY, -5
+ connection south, PalletTown, PALLET_TOWN, 0
+ end_map_header
diff --git a/data/maps/headers/Route10.asm b/data/maps/headers/Route10.asm
new file mode 100755
index 00000000..ba498b0a
--- /dev/null
+++ b/data/maps/headers/Route10.asm
@@ -0,0 +1,5 @@
+
+ map_header Route10, ROUTE_10, OVERWORLD, SOUTH | WEST
+ connection south, LavenderTown, LAVENDER_TOWN, 0
+ connection west, Route9, ROUTE_9, 0
+ end_map_header
diff --git a/data/maps/headers/Route11.asm b/data/maps/headers/Route11.asm
new file mode 100755
index 00000000..d8f2e72f
--- /dev/null
+++ b/data/maps/headers/Route11.asm
@@ -0,0 +1,5 @@
+
+ map_header Route11, ROUTE_11, OVERWORLD, WEST | EAST
+ connection west, VermilionCity, VERMILION_CITY, -4
+ connection east, Route12, ROUTE_12, -27
+ end_map_header
diff --git a/data/maps/headers/Route11Gate1F.asm b/data/maps/headers/Route11Gate1F.asm
new file mode 100755
index 00000000..aa97b791
--- /dev/null
+++ b/data/maps/headers/Route11Gate1F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route11Gate1F, ROUTE_11_GATE_1F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route11Gate2F.asm b/data/maps/headers/Route11Gate2F.asm
new file mode 100755
index 00000000..560d38db
--- /dev/null
+++ b/data/maps/headers/Route11Gate2F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route11Gate2F, ROUTE_11_GATE_2F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route12.asm b/data/maps/headers/Route12.asm
new file mode 100755
index 00000000..931ddf1d
--- /dev/null
+++ b/data/maps/headers/Route12.asm
@@ -0,0 +1,6 @@
+
+ map_header Route12, ROUTE_12, OVERWORLD, NORTH | SOUTH | WEST
+ connection north, LavenderTown, LAVENDER_TOWN, 0
+ connection south, Route13, ROUTE_13, -20
+ connection west, Route11, ROUTE_11, 27
+ end_map_header
diff --git a/data/maps/headers/Route12Gate1F.asm b/data/maps/headers/Route12Gate1F.asm
new file mode 100755
index 00000000..047a670c
--- /dev/null
+++ b/data/maps/headers/Route12Gate1F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route12Gate1F, ROUTE_12_GATE_1F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route12Gate2F.asm b/data/maps/headers/Route12Gate2F.asm
new file mode 100755
index 00000000..e1366736
--- /dev/null
+++ b/data/maps/headers/Route12Gate2F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route12Gate2F, ROUTE_12_GATE_2F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route12SuperRodHouse.asm b/data/maps/headers/Route12SuperRodHouse.asm
new file mode 100755
index 00000000..2195a9b1
--- /dev/null
+++ b/data/maps/headers/Route12SuperRodHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header Route12SuperRodHouse, ROUTE_12_SUPER_ROD_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/Route13.asm b/data/maps/headers/Route13.asm
new file mode 100755
index 00000000..242aaa02
--- /dev/null
+++ b/data/maps/headers/Route13.asm
@@ -0,0 +1,5 @@
+
+ map_header Route13, ROUTE_13, OVERWORLD, NORTH | WEST
+ connection north, Route12, ROUTE_12, 20
+ connection west, Route14, ROUTE_14, 0
+ end_map_header
diff --git a/data/maps/headers/Route14.asm b/data/maps/headers/Route14.asm
new file mode 100755
index 00000000..c0c39c56
--- /dev/null
+++ b/data/maps/headers/Route14.asm
@@ -0,0 +1,5 @@
+
+ map_header Route14, ROUTE_14, OVERWORLD, WEST | EAST
+ connection west, Route15, ROUTE_15, 18
+ connection east, Route13, ROUTE_13, 0
+ end_map_header
diff --git a/data/maps/headers/Route15.asm b/data/maps/headers/Route15.asm
new file mode 100755
index 00000000..28a811d2
--- /dev/null
+++ b/data/maps/headers/Route15.asm
@@ -0,0 +1,5 @@
+
+ map_header Route15, ROUTE_15, OVERWORLD, WEST | EAST
+ connection west, FuchsiaCity, FUCHSIA_CITY, -4
+ connection east, Route14, ROUTE_14, -18
+ end_map_header
diff --git a/data/maps/headers/Route15Gate1F.asm b/data/maps/headers/Route15Gate1F.asm
new file mode 100755
index 00000000..a23d15a0
--- /dev/null
+++ b/data/maps/headers/Route15Gate1F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route15Gate1F, ROUTE_15_GATE_1F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route15Gate2F.asm b/data/maps/headers/Route15Gate2F.asm
new file mode 100755
index 00000000..8ca89872
--- /dev/null
+++ b/data/maps/headers/Route15Gate2F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route15Gate2F, ROUTE_15_GATE_2F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route16.asm b/data/maps/headers/Route16.asm
new file mode 100755
index 00000000..423c7af2
--- /dev/null
+++ b/data/maps/headers/Route16.asm
@@ -0,0 +1,5 @@
+
+ map_header Route16, ROUTE_16, OVERWORLD, SOUTH | EAST
+ connection south, Route17, ROUTE_17, 0
+ connection east, CeladonCity, CELADON_CITY, -4
+ end_map_header
diff --git a/data/maps/headers/Route16FlyHouse.asm b/data/maps/headers/Route16FlyHouse.asm
new file mode 100755
index 00000000..240b6df4
--- /dev/null
+++ b/data/maps/headers/Route16FlyHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header Route16FlyHouse, ROUTE_16_FLY_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/Route16Gate1F.asm b/data/maps/headers/Route16Gate1F.asm
new file mode 100755
index 00000000..74fd1b7f
--- /dev/null
+++ b/data/maps/headers/Route16Gate1F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route16Gate1F, ROUTE_16_GATE_1F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route16Gate2F.asm b/data/maps/headers/Route16Gate2F.asm
new file mode 100755
index 00000000..ed889f4b
--- /dev/null
+++ b/data/maps/headers/Route16Gate2F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route16Gate2F, ROUTE_16_GATE_2F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route17.asm b/data/maps/headers/Route17.asm
new file mode 100755
index 00000000..5e853299
--- /dev/null
+++ b/data/maps/headers/Route17.asm
@@ -0,0 +1,5 @@
+
+ map_header Route17, ROUTE_17, OVERWORLD, NORTH | SOUTH
+ connection north, Route16, ROUTE_16, 0
+ connection south, Route18, ROUTE_18, 0
+ end_map_header
diff --git a/data/maps/headers/Route18.asm b/data/maps/headers/Route18.asm
new file mode 100755
index 00000000..34573051
--- /dev/null
+++ b/data/maps/headers/Route18.asm
@@ -0,0 +1,5 @@
+
+ map_header Route18, ROUTE_18, OVERWORLD, NORTH | EAST
+ connection north, Route17, ROUTE_17, 0
+ connection east, FuchsiaCity, FUCHSIA_CITY, -4
+ end_map_header
diff --git a/data/maps/headers/Route18Gate1F.asm b/data/maps/headers/Route18Gate1F.asm
new file mode 100755
index 00000000..2847e0e3
--- /dev/null
+++ b/data/maps/headers/Route18Gate1F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route18Gate1F, ROUTE_18_GATE_1F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route18Gate2F.asm b/data/maps/headers/Route18Gate2F.asm
new file mode 100755
index 00000000..f25fa700
--- /dev/null
+++ b/data/maps/headers/Route18Gate2F.asm
@@ -0,0 +1,3 @@
+
+ map_header Route18Gate2F, ROUTE_18_GATE_2F, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route19.asm b/data/maps/headers/Route19.asm
new file mode 100755
index 00000000..7f01c804
--- /dev/null
+++ b/data/maps/headers/Route19.asm
@@ -0,0 +1,5 @@
+
+ map_header Route19, ROUTE_19, OVERWORLD, NORTH | WEST
+ connection north, FuchsiaCity, FUCHSIA_CITY, -5
+ connection west, Route20, ROUTE_20, 18
+ end_map_header
diff --git a/data/maps/headers/Route2.asm b/data/maps/headers/Route2.asm
new file mode 100755
index 00000000..521eef69
--- /dev/null
+++ b/data/maps/headers/Route2.asm
@@ -0,0 +1,5 @@
+
+ map_header Route2, ROUTE_2, OVERWORLD, NORTH | SOUTH
+ connection north, PewterCity, PEWTER_CITY, -5
+ connection south, ViridianCity, VIRIDIAN_CITY, -5
+ end_map_header
diff --git a/data/maps/headers/Route20.asm b/data/maps/headers/Route20.asm
new file mode 100755
index 00000000..3495b785
--- /dev/null
+++ b/data/maps/headers/Route20.asm
@@ -0,0 +1,5 @@
+
+ map_header Route20, ROUTE_20, OVERWORLD, WEST | EAST
+ connection west, CinnabarIsland, CINNABAR_ISLAND, 0
+ connection east, Route19, ROUTE_19, -18
+ end_map_header
diff --git a/data/maps/headers/Route21.asm b/data/maps/headers/Route21.asm
new file mode 100755
index 00000000..803bf217
--- /dev/null
+++ b/data/maps/headers/Route21.asm
@@ -0,0 +1,5 @@
+
+ map_header Route21, ROUTE_21, OVERWORLD, NORTH | SOUTH
+ connection north, PalletTown, PALLET_TOWN, 0
+ connection south, CinnabarIsland, CINNABAR_ISLAND, 0
+ end_map_header
diff --git a/data/maps/headers/Route22.asm b/data/maps/headers/Route22.asm
new file mode 100755
index 00000000..e235efa1
--- /dev/null
+++ b/data/maps/headers/Route22.asm
@@ -0,0 +1,5 @@
+
+ map_header Route22, ROUTE_22, OVERWORLD, NORTH | EAST
+ connection north, Route23, ROUTE_23, 0
+ connection east, ViridianCity, VIRIDIAN_CITY, -4
+ end_map_header
diff --git a/data/maps/headers/Route22Gate.asm b/data/maps/headers/Route22Gate.asm
new file mode 100755
index 00000000..a9d1dd37
--- /dev/null
+++ b/data/maps/headers/Route22Gate.asm
@@ -0,0 +1,3 @@
+
+ map_header Route22Gate, ROUTE_22_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route23.asm b/data/maps/headers/Route23.asm
new file mode 100755
index 00000000..e1535c9d
--- /dev/null
+++ b/data/maps/headers/Route23.asm
@@ -0,0 +1,5 @@
+
+ map_header Route23, ROUTE_23, PLATEAU, NORTH | SOUTH
+ connection north, IndigoPlateau, INDIGO_PLATEAU, 0
+ connection south, Route22, ROUTE_22, 0
+ end_map_header
diff --git a/data/maps/headers/Route24.asm b/data/maps/headers/Route24.asm
new file mode 100755
index 00000000..faf53660
--- /dev/null
+++ b/data/maps/headers/Route24.asm
@@ -0,0 +1,5 @@
+
+ map_header Route24, ROUTE_24, OVERWORLD, SOUTH | EAST
+ connection south, CeruleanCity, CERULEAN_CITY, -5
+ connection east, Route25, ROUTE_25, 0
+ end_map_header
diff --git a/data/maps/headers/Route25.asm b/data/maps/headers/Route25.asm
new file mode 100755
index 00000000..1873d19b
--- /dev/null
+++ b/data/maps/headers/Route25.asm
@@ -0,0 +1,4 @@
+
+ map_header Route25, ROUTE_25, OVERWORLD, WEST
+ connection west, Route24, ROUTE_24, 0
+ end_map_header
diff --git a/data/maps/headers/Route2Gate.asm b/data/maps/headers/Route2Gate.asm
new file mode 100755
index 00000000..730d8f2d
--- /dev/null
+++ b/data/maps/headers/Route2Gate.asm
@@ -0,0 +1,3 @@
+
+ map_header Route2Gate, ROUTE_2_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route2TradeHouse.asm b/data/maps/headers/Route2TradeHouse.asm
new file mode 100755
index 00000000..b9937dad
--- /dev/null
+++ b/data/maps/headers/Route2TradeHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header Route2TradeHouse, ROUTE_2_TRADE_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/Route3.asm b/data/maps/headers/Route3.asm
new file mode 100755
index 00000000..ddbd7783
--- /dev/null
+++ b/data/maps/headers/Route3.asm
@@ -0,0 +1,5 @@
+
+ map_header Route3, ROUTE_3, OVERWORLD, NORTH | WEST
+ connection north, Route4, ROUTE_4, 25
+ connection west, PewterCity, PEWTER_CITY, -4
+ end_map_header
diff --git a/data/maps/headers/Route4.asm b/data/maps/headers/Route4.asm
new file mode 100755
index 00000000..6c43171a
--- /dev/null
+++ b/data/maps/headers/Route4.asm
@@ -0,0 +1,5 @@
+
+ map_header Route4, ROUTE_4, OVERWORLD, SOUTH | EAST
+ connection south, Route3, ROUTE_3, -25
+ connection east, CeruleanCity, CERULEAN_CITY, -4
+ end_map_header
diff --git a/data/maps/headers/Route5.asm b/data/maps/headers/Route5.asm
new file mode 100755
index 00000000..ea84090c
--- /dev/null
+++ b/data/maps/headers/Route5.asm
@@ -0,0 +1,5 @@
+
+ map_header Route5, ROUTE_5, OVERWORLD, NORTH | SOUTH
+ connection north, CeruleanCity, CERULEAN_CITY, -5
+ connection south, SaffronCity, SAFFRON_CITY, -5
+ end_map_header
diff --git a/data/maps/headers/Route5Gate.asm b/data/maps/headers/Route5Gate.asm
new file mode 100755
index 00000000..a0115533
--- /dev/null
+++ b/data/maps/headers/Route5Gate.asm
@@ -0,0 +1,3 @@
+
+ map_header Route5Gate, ROUTE_5_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route6.asm b/data/maps/headers/Route6.asm
new file mode 100755
index 00000000..956aa4d6
--- /dev/null
+++ b/data/maps/headers/Route6.asm
@@ -0,0 +1,5 @@
+
+ map_header Route6, ROUTE_6, OVERWORLD, NORTH | SOUTH
+ connection north, SaffronCity, SAFFRON_CITY, -5
+ connection south, VermilionCity, VERMILION_CITY, -5
+ end_map_header
diff --git a/data/maps/headers/Route6Gate.asm b/data/maps/headers/Route6Gate.asm
new file mode 100755
index 00000000..f80b57c8
--- /dev/null
+++ b/data/maps/headers/Route6Gate.asm
@@ -0,0 +1,3 @@
+
+ map_header Route6Gate, ROUTE_6_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route7.asm b/data/maps/headers/Route7.asm
new file mode 100755
index 00000000..8368c3fe
--- /dev/null
+++ b/data/maps/headers/Route7.asm
@@ -0,0 +1,5 @@
+
+ map_header Route7, ROUTE_7, OVERWORLD, WEST | EAST
+ connection west, CeladonCity, CELADON_CITY, -4
+ connection east, SaffronCity, SAFFRON_CITY, -4
+ end_map_header
diff --git a/data/maps/headers/Route7Gate.asm b/data/maps/headers/Route7Gate.asm
new file mode 100755
index 00000000..e9b9b16d
--- /dev/null
+++ b/data/maps/headers/Route7Gate.asm
@@ -0,0 +1,3 @@
+
+ map_header Route7Gate, ROUTE_7_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route8.asm b/data/maps/headers/Route8.asm
new file mode 100755
index 00000000..8df9e023
--- /dev/null
+++ b/data/maps/headers/Route8.asm
@@ -0,0 +1,5 @@
+
+ map_header Route8, ROUTE_8, OVERWORLD, WEST | EAST
+ connection west, SaffronCity, SAFFRON_CITY, -4
+ connection east, LavenderTown, LAVENDER_TOWN, 0
+ end_map_header
diff --git a/data/maps/headers/Route8Gate.asm b/data/maps/headers/Route8Gate.asm
new file mode 100755
index 00000000..f6a320a4
--- /dev/null
+++ b/data/maps/headers/Route8Gate.asm
@@ -0,0 +1,3 @@
+
+ map_header Route8Gate, ROUTE_8_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/Route9.asm b/data/maps/headers/Route9.asm
new file mode 100755
index 00000000..c1ed9225
--- /dev/null
+++ b/data/maps/headers/Route9.asm
@@ -0,0 +1,5 @@
+
+ map_header Route9, ROUTE_9, OVERWORLD, WEST | EAST
+ connection west, CeruleanCity, CERULEAN_CITY, -4
+ connection east, Route10, ROUTE_10, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnne1F.asm b/data/maps/headers/SSAnne1F.asm
new file mode 100755
index 00000000..80d25e2d
--- /dev/null
+++ b/data/maps/headers/SSAnne1F.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnne1F, SS_ANNE_1F, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnne1FRooms.asm b/data/maps/headers/SSAnne1FRooms.asm
new file mode 100755
index 00000000..8bdd8d00
--- /dev/null
+++ b/data/maps/headers/SSAnne1FRooms.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnne1FRooms, SS_ANNE_1F_ROOMS, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnne2F.asm b/data/maps/headers/SSAnne2F.asm
new file mode 100755
index 00000000..b2fe14d7
--- /dev/null
+++ b/data/maps/headers/SSAnne2F.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnne2F, SS_ANNE_2F, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnne2FRooms.asm b/data/maps/headers/SSAnne2FRooms.asm
new file mode 100755
index 00000000..2d349e4c
--- /dev/null
+++ b/data/maps/headers/SSAnne2FRooms.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnne2FRooms, SS_ANNE_2F_ROOMS, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnne3F.asm b/data/maps/headers/SSAnne3F.asm
new file mode 100755
index 00000000..f391a0cd
--- /dev/null
+++ b/data/maps/headers/SSAnne3F.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnne3F, SS_ANNE_3F, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnneB1F.asm b/data/maps/headers/SSAnneB1F.asm
new file mode 100755
index 00000000..c21d7cff
--- /dev/null
+++ b/data/maps/headers/SSAnneB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnneB1F, SS_ANNE_B1F, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnneB1FRooms.asm b/data/maps/headers/SSAnneB1FRooms.asm
new file mode 100755
index 00000000..1b8b4620
--- /dev/null
+++ b/data/maps/headers/SSAnneB1FRooms.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnneB1FRooms, SS_ANNE_B1F_ROOMS, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnneBow.asm b/data/maps/headers/SSAnneBow.asm
new file mode 100755
index 00000000..2195e970
--- /dev/null
+++ b/data/maps/headers/SSAnneBow.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnneBow, SS_ANNE_BOW, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnneCaptainsRoom.asm b/data/maps/headers/SSAnneCaptainsRoom.asm
new file mode 100755
index 00000000..a24f930d
--- /dev/null
+++ b/data/maps/headers/SSAnneCaptainsRoom.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnneCaptainsRoom, SS_ANNE_CAPTAINS_ROOM, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SSAnneKitchen.asm b/data/maps/headers/SSAnneKitchen.asm
new file mode 100755
index 00000000..47e84fbe
--- /dev/null
+++ b/data/maps/headers/SSAnneKitchen.asm
@@ -0,0 +1,3 @@
+
+ map_header SSAnneKitchen, SS_ANNE_KITCHEN, SHIP, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneCenter.asm b/data/maps/headers/SafariZoneCenter.asm
new file mode 100755
index 00000000..ccc58ed1
--- /dev/null
+++ b/data/maps/headers/SafariZoneCenter.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneCenter, SAFARI_ZONE_CENTER, FOREST, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneCenterRestHouse.asm b/data/maps/headers/SafariZoneCenterRestHouse.asm
new file mode 100755
index 00000000..a866003f
--- /dev/null
+++ b/data/maps/headers/SafariZoneCenterRestHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneCenterRestHouse, SAFARI_ZONE_CENTER_REST_HOUSE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneEast.asm b/data/maps/headers/SafariZoneEast.asm
new file mode 100755
index 00000000..c23e9334
--- /dev/null
+++ b/data/maps/headers/SafariZoneEast.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneEast, SAFARI_ZONE_EAST, FOREST, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneEastRestHouse.asm b/data/maps/headers/SafariZoneEastRestHouse.asm
new file mode 100755
index 00000000..1f8d76c6
--- /dev/null
+++ b/data/maps/headers/SafariZoneEastRestHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneEastRestHouse, SAFARI_ZONE_EAST_REST_HOUSE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneGate.asm b/data/maps/headers/SafariZoneGate.asm
new file mode 100755
index 00000000..7816460d
--- /dev/null
+++ b/data/maps/headers/SafariZoneGate.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneGate, SAFARI_ZONE_GATE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneNorth.asm b/data/maps/headers/SafariZoneNorth.asm
new file mode 100755
index 00000000..32639d22
--- /dev/null
+++ b/data/maps/headers/SafariZoneNorth.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneNorth, SAFARI_ZONE_NORTH, FOREST, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneNorthRestHouse.asm b/data/maps/headers/SafariZoneNorthRestHouse.asm
new file mode 100755
index 00000000..ec083803
--- /dev/null
+++ b/data/maps/headers/SafariZoneNorthRestHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneNorthRestHouse, SAFARI_ZONE_NORTH_REST_HOUSE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneSecretHouse.asm b/data/maps/headers/SafariZoneSecretHouse.asm
new file mode 100755
index 00000000..630577c4
--- /dev/null
+++ b/data/maps/headers/SafariZoneSecretHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneSecretHouse, SAFARI_ZONE_SECRET_HOUSE, LAB, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneWest.asm b/data/maps/headers/SafariZoneWest.asm
new file mode 100755
index 00000000..a1117d09
--- /dev/null
+++ b/data/maps/headers/SafariZoneWest.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneWest, SAFARI_ZONE_WEST, FOREST, 0
+ end_map_header
diff --git a/data/maps/headers/SafariZoneWestRestHouse.asm b/data/maps/headers/SafariZoneWestRestHouse.asm
new file mode 100755
index 00000000..e4618e1d
--- /dev/null
+++ b/data/maps/headers/SafariZoneWestRestHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header SafariZoneWestRestHouse, SAFARI_ZONE_WEST_REST_HOUSE, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/SaffronCity.asm b/data/maps/headers/SaffronCity.asm
new file mode 100755
index 00000000..ee1f71e4
--- /dev/null
+++ b/data/maps/headers/SaffronCity.asm
@@ -0,0 +1,7 @@
+
+ map_header SaffronCity, SAFFRON_CITY, OVERWORLD, NORTH | SOUTH | WEST | EAST
+ connection north, Route5, ROUTE_5, 5
+ connection south, Route6, ROUTE_6, 5
+ connection west, Route7, ROUTE_7, 4
+ connection east, Route8, ROUTE_8, 4
+ end_map_header
diff --git a/data/maps/headers/SaffronGym.asm b/data/maps/headers/SaffronGym.asm
new file mode 100755
index 00000000..14ee3323
--- /dev/null
+++ b/data/maps/headers/SaffronGym.asm
@@ -0,0 +1,3 @@
+
+ map_header SaffronGym, SAFFRON_GYM, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SaffronMart.asm b/data/maps/headers/SaffronMart.asm
new file mode 100755
index 00000000..f03132d2
--- /dev/null
+++ b/data/maps/headers/SaffronMart.asm
@@ -0,0 +1,3 @@
+
+ map_header SaffronMart, SAFFRON_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/SaffronPidgeyHouse.asm b/data/maps/headers/SaffronPidgeyHouse.asm
new file mode 100755
index 00000000..e9f8dde7
--- /dev/null
+++ b/data/maps/headers/SaffronPidgeyHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header SaffronPidgeyHouse, SAFFRON_PIDGEY_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/SaffronPokecenter.asm b/data/maps/headers/SaffronPokecenter.asm
new file mode 100755
index 00000000..9b250050
--- /dev/null
+++ b/data/maps/headers/SaffronPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header SaffronPokecenter, SAFFRON_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/SeafoamIslands1F.asm b/data/maps/headers/SeafoamIslands1F.asm
new file mode 100755
index 00000000..db530549
--- /dev/null
+++ b/data/maps/headers/SeafoamIslands1F.asm
@@ -0,0 +1,3 @@
+
+ map_header SeafoamIslands1F, SEAFOAM_ISLANDS_1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/SeafoamIslandsB1F.asm b/data/maps/headers/SeafoamIslandsB1F.asm
new file mode 100755
index 00000000..589eef93
--- /dev/null
+++ b/data/maps/headers/SeafoamIslandsB1F.asm
@@ -0,0 +1,3 @@
+
+ map_header SeafoamIslandsB1F, SEAFOAM_ISLANDS_B1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/SeafoamIslandsB2F.asm b/data/maps/headers/SeafoamIslandsB2F.asm
new file mode 100755
index 00000000..f7e624ed
--- /dev/null
+++ b/data/maps/headers/SeafoamIslandsB2F.asm
@@ -0,0 +1,3 @@
+
+ map_header SeafoamIslandsB2F, SEAFOAM_ISLANDS_B2F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/SeafoamIslandsB3F.asm b/data/maps/headers/SeafoamIslandsB3F.asm
new file mode 100755
index 00000000..b57da3c0
--- /dev/null
+++ b/data/maps/headers/SeafoamIslandsB3F.asm
@@ -0,0 +1,3 @@
+
+ map_header SeafoamIslandsB3F, SEAFOAM_ISLANDS_B3F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/SeafoamIslandsB4F.asm b/data/maps/headers/SeafoamIslandsB4F.asm
new file mode 100755
index 00000000..bae1e3a2
--- /dev/null
+++ b/data/maps/headers/SeafoamIslandsB4F.asm
@@ -0,0 +1,3 @@
+
+ map_header SeafoamIslandsB4F, SEAFOAM_ISLANDS_B4F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo10F.asm b/data/maps/headers/SilphCo10F.asm
new file mode 100755
index 00000000..7a6786e7
--- /dev/null
+++ b/data/maps/headers/SilphCo10F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo10F, SILPH_CO_10F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo11F.asm b/data/maps/headers/SilphCo11F.asm
new file mode 100755
index 00000000..72eaaca2
--- /dev/null
+++ b/data/maps/headers/SilphCo11F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo11F, SILPH_CO_11F, INTERIOR, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo1F.asm b/data/maps/headers/SilphCo1F.asm
new file mode 100755
index 00000000..4c4ac97d
--- /dev/null
+++ b/data/maps/headers/SilphCo1F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo1F, SILPH_CO_1F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo2F.asm b/data/maps/headers/SilphCo2F.asm
new file mode 100755
index 00000000..7dc44a55
--- /dev/null
+++ b/data/maps/headers/SilphCo2F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo2F, SILPH_CO_2F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo3F.asm b/data/maps/headers/SilphCo3F.asm
new file mode 100755
index 00000000..99e4aa15
--- /dev/null
+++ b/data/maps/headers/SilphCo3F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo3F, SILPH_CO_3F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo4F.asm b/data/maps/headers/SilphCo4F.asm
new file mode 100755
index 00000000..8eed0f9a
--- /dev/null
+++ b/data/maps/headers/SilphCo4F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo4F, SILPH_CO_4F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo5F.asm b/data/maps/headers/SilphCo5F.asm
new file mode 100755
index 00000000..3b40c360
--- /dev/null
+++ b/data/maps/headers/SilphCo5F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo5F, SILPH_CO_5F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo6F.asm b/data/maps/headers/SilphCo6F.asm
new file mode 100755
index 00000000..3d2b3b8c
--- /dev/null
+++ b/data/maps/headers/SilphCo6F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo6F, SILPH_CO_6F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo7F.asm b/data/maps/headers/SilphCo7F.asm
new file mode 100755
index 00000000..1591837a
--- /dev/null
+++ b/data/maps/headers/SilphCo7F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo7F, SILPH_CO_7F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo8F.asm b/data/maps/headers/SilphCo8F.asm
new file mode 100755
index 00000000..e676fa86
--- /dev/null
+++ b/data/maps/headers/SilphCo8F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo8F, SILPH_CO_8F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCo9F.asm b/data/maps/headers/SilphCo9F.asm
new file mode 100755
index 00000000..89f0300a
--- /dev/null
+++ b/data/maps/headers/SilphCo9F.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCo9F, SILPH_CO_9F, FACILITY, 0
+ end_map_header
diff --git a/data/maps/headers/SilphCoElevator.asm b/data/maps/headers/SilphCoElevator.asm
new file mode 100755
index 00000000..4dd9cd9f
--- /dev/null
+++ b/data/maps/headers/SilphCoElevator.asm
@@ -0,0 +1,3 @@
+
+ map_header SilphCoElevator, SILPH_CO_ELEVATOR, LOBBY, 0
+ end_map_header
diff --git a/data/maps/headers/TradeCenter.asm b/data/maps/headers/TradeCenter.asm
new file mode 100755
index 00000000..268d76b2
--- /dev/null
+++ b/data/maps/headers/TradeCenter.asm
@@ -0,0 +1,3 @@
+
+ map_header TradeCenter, TRADE_CENTER, CLUB, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathNorthSouth.asm b/data/maps/headers/UndergroundPathNorthSouth.asm
new file mode 100755
index 00000000..4bb03c79
--- /dev/null
+++ b/data/maps/headers/UndergroundPathNorthSouth.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathNorthSouth, UNDERGROUND_PATH_NORTH_SOUTH, UNDERGROUND, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathRoute5.asm b/data/maps/headers/UndergroundPathRoute5.asm
new file mode 100755
index 00000000..18287254
--- /dev/null
+++ b/data/maps/headers/UndergroundPathRoute5.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathRoute5, UNDERGROUND_PATH_ROUTE_5, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathRoute6.asm b/data/maps/headers/UndergroundPathRoute6.asm
new file mode 100755
index 00000000..67772543
--- /dev/null
+++ b/data/maps/headers/UndergroundPathRoute6.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathRoute6, UNDERGROUND_PATH_ROUTE_6, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathRoute7.asm b/data/maps/headers/UndergroundPathRoute7.asm
new file mode 100755
index 00000000..d70548ed
--- /dev/null
+++ b/data/maps/headers/UndergroundPathRoute7.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathRoute7, UNDERGROUND_PATH_ROUTE_7, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathRoute7Copy.asm b/data/maps/headers/UndergroundPathRoute7Copy.asm
new file mode 100755
index 00000000..30bb70a8
--- /dev/null
+++ b/data/maps/headers/UndergroundPathRoute7Copy.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathRoute7Copy, UNDERGROUND_PATH_ROUTE_7, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathRoute8.asm b/data/maps/headers/UndergroundPathRoute8.asm
new file mode 100755
index 00000000..102d8413
--- /dev/null
+++ b/data/maps/headers/UndergroundPathRoute8.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathRoute8, UNDERGROUND_PATH_ROUTE_8, GATE, 0
+ end_map_header
diff --git a/data/maps/headers/UndergroundPathWestEast.asm b/data/maps/headers/UndergroundPathWestEast.asm
new file mode 100755
index 00000000..05976e87
--- /dev/null
+++ b/data/maps/headers/UndergroundPathWestEast.asm
@@ -0,0 +1,3 @@
+
+ map_header UndergroundPathWestEast, UNDERGROUND_PATH_WEST_EAST, UNDERGROUND, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionCity.asm b/data/maps/headers/VermilionCity.asm
new file mode 100755
index 00000000..e211562c
--- /dev/null
+++ b/data/maps/headers/VermilionCity.asm
@@ -0,0 +1,5 @@
+
+ map_header VermilionCity, VERMILION_CITY, OVERWORLD, NORTH | EAST
+ connection north, Route6, ROUTE_6, 5
+ connection east, Route11, ROUTE_11, 4
+ end_map_header
diff --git a/data/maps/headers/VermilionDock.asm b/data/maps/headers/VermilionDock.asm
new file mode 100755
index 00000000..9a9b61c2
--- /dev/null
+++ b/data/maps/headers/VermilionDock.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionDock, VERMILION_DOCK, SHIP_PORT, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionGym.asm b/data/maps/headers/VermilionGym.asm
new file mode 100755
index 00000000..ca75b8c1
--- /dev/null
+++ b/data/maps/headers/VermilionGym.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionGym, VERMILION_GYM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionMart.asm b/data/maps/headers/VermilionMart.asm
new file mode 100755
index 00000000..5777db4b
--- /dev/null
+++ b/data/maps/headers/VermilionMart.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionMart, VERMILION_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionOldRodHouse.asm b/data/maps/headers/VermilionOldRodHouse.asm
new file mode 100755
index 00000000..f9c890e0
--- /dev/null
+++ b/data/maps/headers/VermilionOldRodHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionOldRodHouse, VERMILION_OLD_ROD_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionPidgeyHouse.asm b/data/maps/headers/VermilionPidgeyHouse.asm
new file mode 100755
index 00000000..afb81784
--- /dev/null
+++ b/data/maps/headers/VermilionPidgeyHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionPidgeyHouse, VERMILION_PIDGEY_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionPokecenter.asm b/data/maps/headers/VermilionPokecenter.asm
new file mode 100755
index 00000000..af9827ac
--- /dev/null
+++ b/data/maps/headers/VermilionPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionPokecenter, VERMILION_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/VermilionTradeHouse.asm b/data/maps/headers/VermilionTradeHouse.asm
new file mode 100755
index 00000000..3cb82c47
--- /dev/null
+++ b/data/maps/headers/VermilionTradeHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header VermilionTradeHouse, VERMILION_TRADE_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/VictoryRoad1F.asm b/data/maps/headers/VictoryRoad1F.asm
new file mode 100755
index 00000000..dae95f16
--- /dev/null
+++ b/data/maps/headers/VictoryRoad1F.asm
@@ -0,0 +1,3 @@
+
+ map_header VictoryRoad1F, VICTORY_ROAD_1F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/VictoryRoad2F.asm b/data/maps/headers/VictoryRoad2F.asm
new file mode 100755
index 00000000..99079ad3
--- /dev/null
+++ b/data/maps/headers/VictoryRoad2F.asm
@@ -0,0 +1,3 @@
+
+ map_header VictoryRoad2F, VICTORY_ROAD_2F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/VictoryRoad3F.asm b/data/maps/headers/VictoryRoad3F.asm
new file mode 100755
index 00000000..bc15cad7
--- /dev/null
+++ b/data/maps/headers/VictoryRoad3F.asm
@@ -0,0 +1,3 @@
+
+ map_header VictoryRoad3F, VICTORY_ROAD_3F, CAVERN, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianCity.asm b/data/maps/headers/ViridianCity.asm
new file mode 100755
index 00000000..0771cc81
--- /dev/null
+++ b/data/maps/headers/ViridianCity.asm
@@ -0,0 +1,6 @@
+
+ map_header ViridianCity, VIRIDIAN_CITY, OVERWORLD, NORTH | SOUTH | WEST
+ connection north, Route2, ROUTE_2, 5
+ connection south, Route1, ROUTE_1, 5
+ connection west, Route22, ROUTE_22, 4
+ end_map_header
diff --git a/data/maps/headers/ViridianForest.asm b/data/maps/headers/ViridianForest.asm
new file mode 100755
index 00000000..d531ec86
--- /dev/null
+++ b/data/maps/headers/ViridianForest.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianForest, VIRIDIAN_FOREST, FOREST, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianForestNorthGate.asm b/data/maps/headers/ViridianForestNorthGate.asm
new file mode 100755
index 00000000..5bfcd6ed
--- /dev/null
+++ b/data/maps/headers/ViridianForestNorthGate.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianForestNorthGate, VIRIDIAN_FOREST_NORTH_GATE, FOREST_GATE, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianForestSouthGate.asm b/data/maps/headers/ViridianForestSouthGate.asm
new file mode 100755
index 00000000..87a49284
--- /dev/null
+++ b/data/maps/headers/ViridianForestSouthGate.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianForestSouthGate, VIRIDIAN_FOREST_SOUTH_GATE, FOREST_GATE, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianGym.asm b/data/maps/headers/ViridianGym.asm
new file mode 100755
index 00000000..640a71b6
--- /dev/null
+++ b/data/maps/headers/ViridianGym.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianGym, VIRIDIAN_GYM, GYM, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianMart.asm b/data/maps/headers/ViridianMart.asm
new file mode 100755
index 00000000..817b5265
--- /dev/null
+++ b/data/maps/headers/ViridianMart.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianMart, VIRIDIAN_MART, MART, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianNicknameHouse.asm b/data/maps/headers/ViridianNicknameHouse.asm
new file mode 100755
index 00000000..5a7c272f
--- /dev/null
+++ b/data/maps/headers/ViridianNicknameHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianNicknameHouse, VIRIDIAN_NICKNAME_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianPokecenter.asm b/data/maps/headers/ViridianPokecenter.asm
new file mode 100755
index 00000000..daac19f3
--- /dev/null
+++ b/data/maps/headers/ViridianPokecenter.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianPokecenter, VIRIDIAN_POKECENTER, POKECENTER, 0
+ end_map_header
diff --git a/data/maps/headers/ViridianSchoolHouse.asm b/data/maps/headers/ViridianSchoolHouse.asm
new file mode 100755
index 00000000..f5b77212
--- /dev/null
+++ b/data/maps/headers/ViridianSchoolHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header ViridianSchoolHouse, VIRIDIAN_SCHOOL_HOUSE, HOUSE, 0
+ end_map_header
diff --git a/data/maps/headers/WardensHouse.asm b/data/maps/headers/WardensHouse.asm
new file mode 100755
index 00000000..08216f59
--- /dev/null
+++ b/data/maps/headers/WardensHouse.asm
@@ -0,0 +1,3 @@
+
+ map_header WardensHouse, WARDENS_HOUSE, LAB, 0
+ end_map_header
diff --git a/data/maps/hide_show_data.asm b/data/maps/hide_show_data.asm
new file mode 100755
index 00000000..bc89d600
--- /dev/null
+++ b/data/maps/hide_show_data.asm
@@ -0,0 +1,577 @@
+; data for default hidden/shown
+; objects for each map ($00-$F8)
+
+; Table of 2-Byte pointers, one pointer per map,
+; goes up to Map_F7, ends with -1.
+; points to table listing all missable object in the area
+MapHSPointers:
+ dw MapHS00
+ dw MapHS01
+ dw MapHS02
+ dw MapHS03
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS0A
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS0D
+ dw MapHSXX
+ dw MapHS0F
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS14
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS17
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS1A
+ dw MapHS1B
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS21
+ dw MapHSXX
+ dw MapHS23
+ dw MapHS24
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS27
+ dw MapHS28
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS2D
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS33
+ dw MapHS34
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS3B
+ dw MapHSXX
+ dw MapHS3D
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS53
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS58
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS60
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS66
+ dw MapHS67
+ dw MapHS68
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS6C
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS78
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS84
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS87
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS8F
+ dw MapHS90
+ dw MapHS91
+ dw MapHS92
+ dw MapHS93
+ dw MapHS94
+ dw MapHS95
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS9B
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHS9F
+ dw MapHSA0
+ dw MapHSA1
+ dw MapHSA2
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSA5
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSB1
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSB5
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSC0
+ dw MapHSXX
+ dw MapHSC2
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSC6
+ dw MapHSC7
+ dw MapHSC8
+ dw MapHSC9
+ dw MapHSCA
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSCF
+ dw MapHSD0
+ dw MapHSD1
+ dw MapHSD2
+ dw MapHSD3
+ dw MapHSD4
+ dw MapHSD5
+ dw MapHSD6
+ dw MapHSD7
+ dw MapHSD8
+ dw MapHSD9
+ dw MapHSDA
+ dw MapHSDB
+ dw MapHSDC
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSE2
+ dw MapHSE3
+ dw MapHSE4
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSE9
+ dw MapHSEA
+ dw MapHSEB
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSF4
+ dw MapHSXX
+ dw MapHSXX
+ dw MapHSXX
+ dw -1 ; end
+
+; Structure:
+; 3 bytes per object
+; [Map_ID][Object_ID][H/S]
+;
+; Program stops reading when either:
+; a) Map_ID = $FF
+; b) Map_ID ≠ currentMapID
+;
+; This Data is loaded into RAM at wd5ce-$D5F?. (wMissableObjectList)
+
+; These constants come from the bytes for Predef functions:
+Hide equ $11
+Show equ $15
+
+MapHSXX:
+ db $FF,$FF,$FF
+MapHS00:
+ db PALLET_TOWN,$01,Hide
+MapHS01:
+ db VIRIDIAN_CITY,$05,Show
+ db VIRIDIAN_CITY,$07,Hide
+MapHS02:
+ db PEWTER_CITY,$03,Show
+ db PEWTER_CITY,$05,Show
+MapHS03:
+ db CERULEAN_CITY,$01,Hide
+ db CERULEAN_CITY,$02,Show
+ db CERULEAN_CITY,$06,Hide
+ db CERULEAN_CITY,$0A,Show
+ db CERULEAN_CITY,$0B,Show
+MapHS0A:
+ db SAFFRON_CITY,$01,Show
+ db SAFFRON_CITY,$02,Show
+ db SAFFRON_CITY,$03,Show
+ db SAFFRON_CITY,$04,Show
+ db SAFFRON_CITY,$05,Show
+ db SAFFRON_CITY,$06,Show
+ db SAFFRON_CITY,$07,Show
+ db SAFFRON_CITY,$08,Hide
+ db SAFFRON_CITY,$09,Hide
+ db SAFFRON_CITY,$0A,Hide
+ db SAFFRON_CITY,$0B,Hide
+ db SAFFRON_CITY,$0C,Hide
+ db SAFFRON_CITY,$0D,Hide
+ db SAFFRON_CITY,$0E,Show
+ db SAFFRON_CITY,$0F,Hide
+MapHS0D:
+ db ROUTE_2,$01,Show
+ db ROUTE_2,$02,Show
+MapHS0F:
+ db ROUTE_4,$03,Show
+MapHS14:
+ db ROUTE_9,$0A,Show
+MapHS17:
+ db ROUTE_12,$01,Show
+ db ROUTE_12,$09,Show
+ db ROUTE_12,$0A,Show
+MapHS1A:
+ db ROUTE_15,$0B,Show
+MapHS1B:
+ db ROUTE_16,$07,Show
+MapHS21:
+ db ROUTE_22,$01,Hide
+ db ROUTE_22,$02,Hide
+MapHS23:
+ db ROUTE_24,$01,Show
+ db ROUTE_24,$08,Show
+MapHS24:
+ db ROUTE_25,$0A,Show
+MapHS27:
+ db BLUES_HOUSE,$01,Show
+ db BLUES_HOUSE,$02,Hide
+ db BLUES_HOUSE,$03,Show
+MapHS28:
+ db OAKS_LAB,$01,Show
+ db OAKS_LAB,$02,Show
+ db OAKS_LAB,$03,Show
+ db OAKS_LAB,$04,Show
+ db OAKS_LAB,$05,Hide
+ db OAKS_LAB,$06,Show
+ db OAKS_LAB,$07,Show
+ db OAKS_LAB,$08,Hide
+MapHS2D:
+ db VIRIDIAN_GYM,$01,Show
+ db VIRIDIAN_GYM,$0B,Show
+MapHS34:
+ db MUSEUM_1F,$05,Show
+MapHSE4:
+ db CERULEAN_CAVE_1F,$01,Show
+ db CERULEAN_CAVE_1F,$02,Show
+ db CERULEAN_CAVE_1F,$03,Show
+MapHS8F:
+ db POKEMON_TOWER_2F,$01,Show
+MapHS90:
+ db POKEMON_TOWER_3F,$04,Show
+MapHS91:
+ db POKEMON_TOWER_4F,$04,Show
+ db POKEMON_TOWER_4F,$05,Show
+ db POKEMON_TOWER_4F,$06,Show
+MapHS92:
+ db POKEMON_TOWER_5F,$06,Show
+MapHS93:
+ db POKEMON_TOWER_6F,$04,Show
+ db POKEMON_TOWER_6F,$05,Show
+MapHS94:
+ db POKEMON_TOWER_7F,$01,Show
+ db POKEMON_TOWER_7F,$02,Show
+ db POKEMON_TOWER_7F,$03,Show
+ db POKEMON_TOWER_7F,$04,Show
+MapHS95:
+ db MR_FUJIS_HOUSE,$05,Hide
+MapHS84:
+ db CELADON_MANSION_ROOF_HOUSE,$02,Show
+MapHS87:
+ db GAME_CORNER,$0B,Show
+MapHS9B:
+ db WARDENS_HOUSE,$02,Show
+MapHSA5:
+ db POKEMON_MANSION_1F,$02,Show
+ db POKEMON_MANSION_1F,$03,Show
+MapHSB1:
+ db FIGHTING_DOJO,$06,Show
+ db FIGHTING_DOJO,$07,Show
+MapHSB5:
+ db SILPH_CO_1F,$01,Hide
+MapHS53:
+ db POWER_PLANT,$01,Show
+ db POWER_PLANT,$02,Show
+ db POWER_PLANT,$03,Show
+ db POWER_PLANT,$04,Show
+ db POWER_PLANT,$05,Show
+ db POWER_PLANT,$06,Show
+ db POWER_PLANT,$07,Show
+ db POWER_PLANT,$08,Show
+ db POWER_PLANT,$09,Show
+ db POWER_PLANT,$0A,Show
+ db POWER_PLANT,$0B,Show
+ db POWER_PLANT,$0C,Show
+ db POWER_PLANT,$0D,Show
+ db POWER_PLANT,$0E,Show
+MapHSC2:
+ db VICTORY_ROAD_2F,$06,Show
+ db VICTORY_ROAD_2F,$07,Show
+ db VICTORY_ROAD_2F,$08,Show
+ db VICTORY_ROAD_2F,$09,Show
+ db VICTORY_ROAD_2F,$0A,Show
+ db VICTORY_ROAD_2F,$0D,Show
+MapHS58:
+ db BILLS_HOUSE,$01,Show
+ db BILLS_HOUSE,$02,Hide
+ db BILLS_HOUSE,$03,Hide
+MapHS33:
+ db VIRIDIAN_FOREST,$05,Show
+ db VIRIDIAN_FOREST,$06,Show
+ db VIRIDIAN_FOREST,$07,Show
+MapHS3B:
+ db MT_MOON_1F,$08,Show
+ db MT_MOON_1F,$09,Show
+ db MT_MOON_1F,$0A,Show
+ db MT_MOON_1F,$0B,Show
+ db MT_MOON_1F,$0C,Show
+ db MT_MOON_1F,$0D,Show
+MapHS3D:
+ db MT_MOON_B2F,$06,Show
+ db MT_MOON_B2F,$07,Show
+ db MT_MOON_B2F,$08,Show
+ db MT_MOON_B2F,$09,Show
+MapHS60:
+ db SS_ANNE_2F,$02,Hide
+MapHS66:
+ db SS_ANNE_1F_ROOMS,$0A,Show
+MapHS67:
+ db SS_ANNE_2F_ROOMS,$06,Show
+ db SS_ANNE_2F_ROOMS,$09,Show
+MapHS68:
+ db SS_ANNE_B1F_ROOMS,$09,Show
+ db SS_ANNE_B1F_ROOMS,$0A,Show
+ db SS_ANNE_B1F_ROOMS,$0B,Show
+MapHSC6:
+ db VICTORY_ROAD_3F,$05,Show
+ db VICTORY_ROAD_3F,$06,Show
+ db VICTORY_ROAD_3F,$0A,Show
+MapHSC7:
+ db ROCKET_HIDEOUT_B1F,$06,Show
+ db ROCKET_HIDEOUT_B1F,$07,Show
+MapHSC8:
+ db ROCKET_HIDEOUT_B2F,$02,Show
+ db ROCKET_HIDEOUT_B2F,$03,Show
+ db ROCKET_HIDEOUT_B2F,$04,Show
+ db ROCKET_HIDEOUT_B2F,$05,Show
+MapHSC9:
+ db ROCKET_HIDEOUT_B3F,$03,Show
+ db ROCKET_HIDEOUT_B3F,$04,Show
+MapHSCA:
+ db ROCKET_HIDEOUT_B4F,$01,Show
+ db ROCKET_HIDEOUT_B4F,$05,Show
+ db ROCKET_HIDEOUT_B4F,$06,Show
+ db ROCKET_HIDEOUT_B4F,$07,Show
+ db ROCKET_HIDEOUT_B4F,$08,Hide
+ db ROCKET_HIDEOUT_B4F,$09,Hide
+MapHSCF:
+ db SILPH_CO_2F,$01,Show
+ db SILPH_CO_2F,$02,Show
+ db SILPH_CO_2F,$03,Show
+ db SILPH_CO_2F,$04,Show
+ db SILPH_CO_2F,$05,Show
+MapHSD0:
+ db SILPH_CO_3F,$02,Show
+ db SILPH_CO_3F,$03,Show
+ db SILPH_CO_3F,$04,Show
+MapHSD1:
+ db SILPH_CO_4F,$02,Show
+ db SILPH_CO_4F,$03,Show
+ db SILPH_CO_4F,$04,Show
+ db SILPH_CO_4F,$05,Show
+ db SILPH_CO_4F,$06,Show
+ db SILPH_CO_4F,$07,Show
+MapHSD2:
+ db SILPH_CO_5F,$02,Show
+ db SILPH_CO_5F,$03,Show
+ db SILPH_CO_5F,$04,Show
+ db SILPH_CO_5F,$05,Show
+ db SILPH_CO_5F,$06,Show
+ db SILPH_CO_5F,$07,Show
+ db SILPH_CO_5F,$08,Show
+MapHSD3:
+ db SILPH_CO_6F,$06,Show
+ db SILPH_CO_6F,$07,Show
+ db SILPH_CO_6F,$08,Show
+ db SILPH_CO_6F,$09,Show
+ db SILPH_CO_6F,$0A,Show
+MapHSD4:
+ db SILPH_CO_7F,$05,Show
+ db SILPH_CO_7F,$06,Show
+ db SILPH_CO_7F,$07,Show
+ db SILPH_CO_7F,$08,Show
+ db SILPH_CO_7F,$09,Show
+ db SILPH_CO_7F,$0A,Show
+ db SILPH_CO_7F,$0B,Show
+ db SILPH_CO_7F,$0C,Show
+MapHSD5:
+ db SILPH_CO_8F,$02,Show
+ db SILPH_CO_8F,$03,Show
+ db SILPH_CO_8F,$04,Show
+MapHSE9:
+ db SILPH_CO_9F,$02,Show
+ db SILPH_CO_9F,$03,Show
+ db SILPH_CO_9F,$04,Show
+MapHSEA:
+ db SILPH_CO_10F,$01,Show
+ db SILPH_CO_10F,$02,Show
+ db SILPH_CO_10F,$03,Show
+ db SILPH_CO_10F,$04,Show
+ db SILPH_CO_10F,$05,Show
+ db SILPH_CO_10F,$06,Show
+MapHSEB:
+ db SILPH_CO_11F,$03,Show
+ db SILPH_CO_11F,$04,Show
+ db SILPH_CO_11F,$05,Show
+MapHSF4:
+ db UNUSED_MAP_F4,$02,Show
+MapHSD6:
+ db POKEMON_MANSION_2F,$02,Show
+MapHSD7:
+ db POKEMON_MANSION_3F,$03,Show
+ db POKEMON_MANSION_3F,$04,Show
+MapHSD8:
+ db POKEMON_MANSION_B1F,$03,Show
+ db POKEMON_MANSION_B1F,$04,Show
+ db POKEMON_MANSION_B1F,$05,Show
+ db POKEMON_MANSION_B1F,$06,Show
+ db POKEMON_MANSION_B1F,$08,Show
+MapHSD9:
+ db SAFARI_ZONE_EAST,$01,Show
+ db SAFARI_ZONE_EAST,$02,Show
+ db SAFARI_ZONE_EAST,$03,Show
+ db SAFARI_ZONE_EAST,$04,Show
+MapHSDA:
+ db SAFARI_ZONE_NORTH,$01,Show
+ db SAFARI_ZONE_NORTH,$02,Show
+MapHSDB:
+ db SAFARI_ZONE_WEST,$01,Show
+ db SAFARI_ZONE_WEST,$02,Show
+ db SAFARI_ZONE_WEST,$03,Show
+ db SAFARI_ZONE_WEST,$04,Show
+MapHSDC:
+ db SAFARI_ZONE_CENTER,$01,Show
+MapHSE2:
+ db CERULEAN_CAVE_2F,$01,Show
+ db CERULEAN_CAVE_2F,$02,Show
+ db CERULEAN_CAVE_2F,$03,Show
+MapHSE3:
+ db CERULEAN_CAVE_B1F,$01,Show
+ db CERULEAN_CAVE_B1F,$02,Show
+ db CERULEAN_CAVE_B1F,$03,Show
+MapHS6C:
+ db VICTORY_ROAD_1F,$03,Show
+ db VICTORY_ROAD_1F,$04,Show
+MapHS78:
+ db CHAMPIONS_ROOM,$02,Hide
+MapHSC0:
+ db SEAFOAM_ISLANDS_1F,$01,Show
+ db SEAFOAM_ISLANDS_1F,$02,Show
+MapHS9F:
+ db SEAFOAM_ISLANDS_B1F,$01,Hide
+ db SEAFOAM_ISLANDS_B1F,$02,Hide
+MapHSA0:
+ db SEAFOAM_ISLANDS_B2F,$01,Hide
+ db SEAFOAM_ISLANDS_B2F,$02,Hide
+MapHSA1:
+ db SEAFOAM_ISLANDS_B3F,$02,Show
+ db SEAFOAM_ISLANDS_B3F,$03,Show
+ db SEAFOAM_ISLANDS_B3F,$05,Hide
+ db SEAFOAM_ISLANDS_B3F,$06,Hide
+MapHSA2:
+ db SEAFOAM_ISLANDS_B4F,$01,Hide
+ db SEAFOAM_ISLANDS_B4F,$02,Hide
+ db SEAFOAM_ISLANDS_B4F,$03,Show
+
+ db $FF,$01,Show
diff --git a/data/maps/map_header_banks.asm b/data/maps/map_header_banks.asm
new file mode 100755
index 00000000..d698cfee
--- /dev/null
+++ b/data/maps/map_header_banks.asm
@@ -0,0 +1,250 @@
+; see also MapHeaderPointers
+MapHeaderBanks::
+ db BANK(PalletTown_h)
+ db BANK(ViridianCity_h)
+ db BANK(PewterCity_h)
+ db BANK(CeruleanCity_h)
+ db BANK(LavenderTown_h)
+ db BANK(VermilionCity_h)
+ db BANK(CeladonCity_h)
+ db BANK(FuchsiaCity_h)
+ db BANK(CinnabarIsland_h)
+ db BANK(IndigoPlateau_h)
+ db BANK(SaffronCity_h)
+ db $01 ; UNUSED_MAP_0B
+ db BANK(Route1_h)
+ db BANK(Route2_h)
+ db BANK(Route3_h)
+ db BANK(Route4_h)
+ db BANK(Route5_h)
+ db BANK(Route6_h)
+ db BANK(Route7_h)
+ db BANK(Route8_h)
+ db BANK(Route9_h)
+ db BANK(Route10_h)
+ db BANK(Route11_h)
+ db BANK(Route12_h)
+ db BANK(Route13_h)
+ db BANK(Route14_h)
+ db BANK(Route15_h)
+ db BANK(Route16_h)
+ db BANK(Route17_h)
+ db BANK(Route18_h)
+ db BANK(Route19_h)
+ db BANK(Route20_h)
+ db BANK(Route21_h)
+ db BANK(Route22_h)
+ db BANK(Route23_h)
+ db BANK(Route24_h)
+ db BANK(Route25_h)
+ db BANK(RedsHouse1F_h)
+ db BANK(RedsHouse2F_h)
+ db BANK(BluesHouse_h)
+ db BANK(OaksLab_h)
+ db BANK(ViridianPokecenter_h)
+ db BANK(ViridianMart_h)
+ db BANK(ViridianSchoolHouse_h)
+ db BANK(ViridianNicknameHouse_h)
+ db BANK(ViridianGym_h)
+ db BANK(DiglettsCaveRoute2_h)
+ db BANK(ViridianForestNorthGate_h)
+ db BANK(Route2TradeHouse_h)
+ db BANK(Route2Gate_h)
+ db BANK(ViridianForestSouthGate_h)
+ db BANK(ViridianForest_h)
+ db BANK(Museum1F_h)
+ db BANK(Museum2F_h)
+ db BANK(PewterGym_h)
+ db BANK(PewterNidoranHouse_h)
+ db BANK(PewterMart_h)
+ db BANK(PewterSpeechHouse_h)
+ db BANK(PewterPokecenter_h)
+ db BANK(MtMoon1F_h)
+ db BANK(MtMoonB1F_h)
+ db BANK(MtMoonB2F_h)
+ db BANK(CeruleanTrashedHouse_h)
+ db BANK(CeruleanTradeHouse_h)
+ db BANK(CeruleanPokecenter_h)
+ db BANK(CeruleanGym_h)
+ db BANK(BikeShop_h)
+ db BANK(CeruleanMart_h)
+ db BANK(MtMoonPokecenter_h)
+ db BANK(CeruleanTrashedHouse_h)
+ db BANK(Route5Gate_h)
+ db BANK(UndergroundPathRoute5_h)
+ db BANK(Daycare_h)
+ db BANK(Route6Gate_h)
+ db BANK(UndergroundPathRoute6_h)
+ db BANK(UndergroundPathRoute6_h) ; UNDERGROUND_PATH_ROUTE_6_COPY
+ db BANK(Route7Gate_h)
+ db BANK(UndergroundPathRoute7_h)
+ db BANK(UndergroundPathRoute7Copy_h)
+ db BANK(Route8Gate_h)
+ db BANK(UndergroundPathRoute8_h)
+ db BANK(RockTunnelPokecenter_h)
+ db BANK(RockTunnel1F_h)
+ db BANK(PowerPlant_h)
+ db BANK(Route11Gate1F_h)
+ db BANK(DiglettsCaveRoute11_h)
+ db BANK(Route11Gate2F_h)
+ db BANK(Route12Gate1F_h)
+ db BANK(BillsHouse_h)
+ db BANK(VermilionPokecenter_h)
+ db BANK(PokemonFanClub_h)
+ db BANK(VermilionMart_h)
+ db BANK(VermilionGym_h)
+ db BANK(VermilionPidgeyHouse_h)
+ db BANK(VermilionDock_h)
+ db BANK(SSAnne1F_h)
+ db BANK(SSAnne2F_h)
+ db BANK(SSAnne3F_h)
+ db BANK(SSAnneB1F_h)
+ db BANK(SSAnneBow_h)
+ db BANK(SSAnneKitchen_h)
+ db BANK(SSAnneCaptainsRoom_h)
+ db BANK(SSAnne1FRooms_h)
+ db BANK(SSAnne2FRooms_h)
+ db BANK(SSAnneB1FRooms_h)
+ db $1D ; UNUSED_MAP_69
+ db $1D ; UNUSED_MAP_6A
+ db $1D ; UNUSED_MAP_6B
+ db BANK(VictoryRoad1F_h)
+ db $1D ; UNUSED_MAP_6D
+ db $1D ; UNUSED_MAP_6E
+ db $1D ; UNUSED_MAP_6F
+ db $1D ; UNUSED_MAP_70
+ db BANK(LancesRoom_h)
+ db $1D ; UNUSED_MAP_72
+ db $1D ; UNUSED_MAP_73
+ db $1D ; UNUSED_MAP_74
+ db $1D ; UNUSED_MAP_75
+ db BANK(HallOfFame_h)
+ db BANK(UndergroundPathNorthSouth_h)
+ db BANK(ChampionsRoom_h)
+ db BANK(UndergroundPathWestEast_h)
+ db BANK(CeladonMart1F_h)
+ db BANK(CeladonMart2F_h)
+ db BANK(CeladonMart3F_h)
+ db BANK(CeladonMart4F_h)
+ db BANK(CeladonMartRoof_h)
+ db BANK(CeladonMartElevator_h)
+ db BANK(CeladonMansion1F_h)
+ db BANK(CeladonMansion2F_h)
+ db BANK(CeladonMansion3F_h)
+ db BANK(CeladonMansionRoof_h)
+ db BANK(CeladonMansionRoofHouse_h)
+ db BANK(CeladonPokecenter_h)
+ db BANK(CeladonGym_h)
+ db BANK(GameCorner_h)
+ db BANK(CeladonMart5F_h)
+ db BANK(GameCornerPrizeRoom_h)
+ db BANK(CeladonDiner_h)
+ db BANK(CeladonChiefHouse_h)
+ db BANK(CeladonHotel_h)
+ db BANK(LavenderPokecenter_h)
+ db BANK(PokemonTower1F_h)
+ db BANK(PokemonTower2F_h)
+ db BANK(PokemonTower3F_h)
+ db BANK(PokemonTower4F_h)
+ db BANK(PokemonTower5F_h)
+ db BANK(PokemonTower6F_h)
+ db BANK(PokemonTower7F_h)
+ db BANK(MrFujisHouse_h)
+ db BANK(LavenderMart_h)
+ db BANK(LavenderCuboneHouse_h)
+ db BANK(FuchsiaMart_h)
+ db BANK(FuchsiaBillsGrandpasHouse_h)
+ db BANK(FuchsiaPokecenter_h)
+ db BANK(WardensHouse_h)
+ db BANK(SafariZoneGate_h)
+ db BANK(FuchsiaGym_h)
+ db BANK(FuchsiaMeetingRoom_h)
+ db BANK(SeafoamIslandsB1F_h)
+ db BANK(SeafoamIslandsB2F_h)
+ db BANK(SeafoamIslandsB3F_h)
+ db BANK(SeafoamIslandsB4F_h)
+ db BANK(VermilionOldRodHouse_h)
+ db BANK(FuchsiaGoodRodHouse_h)
+ db BANK(PokemonMansion1F_h)
+ db BANK(CinnabarGym_h)
+ db BANK(CinnabarLab_h)
+ db BANK(CinnabarLabTradeRoom_h)
+ db BANK(CinnabarLabMetronomeRoom_h)
+ db BANK(CinnabarLabFossilRoom_h)
+ db BANK(CinnabarPokecenter_h)
+ db BANK(CinnabarMart_h)
+ db BANK(CinnabarMart_h)
+ db BANK(IndigoPlateauLobby_h)
+ db BANK(CopycatsHouse1F_h)
+ db BANK(CopycatsHouse2F_h)
+ db BANK(FightingDojo_h)
+ db BANK(SaffronGym_h)
+ db BANK(SaffronPidgeyHouse_h)
+ db BANK(SaffronMart_h)
+ db BANK(SilphCo1F_h)
+ db BANK(SaffronPokecenter_h)
+ db BANK(MrPsychicsHouse_h)
+ db BANK(Route15Gate1F_h)
+ db BANK(Route15Gate2F_h)
+ db BANK(Route16Gate1F_h)
+ db BANK(Route16Gate2F_h)
+ db BANK(Route16FlyHouse_h)
+ db BANK(Route12SuperRodHouse_h)
+ db BANK(Route18Gate1F_h)
+ db BANK(Route18Gate2F_h)
+ db BANK(SeafoamIslands1F_h)
+ db BANK(Route22Gate_h)
+ db BANK(VictoryRoad2F_h)
+ db BANK(Route12Gate2F_h)
+ db BANK(VermilionTradeHouse_h)
+ db BANK(DiglettsCave_h)
+ db BANK(VictoryRoad3F_h)
+ db BANK(RocketHideoutB1F_h)
+ db BANK(RocketHideoutB2F_h)
+ db BANK(RocketHideoutB3F_h)
+ db BANK(RocketHideoutB4F_h)
+ db BANK(RocketHideoutElevator_h)
+ db $01 ; UNUSED_MAP_CC
+ db $01 ; UNUSED_MAP_CD
+ db $01 ; UNUSED_MAP_CE
+ db BANK(SilphCo2F_h)
+ db BANK(SilphCo3F_h)
+ db BANK(SilphCo4F_h)
+ db BANK(SilphCo5F_h)
+ db BANK(SilphCo6F_h)
+ db BANK(SilphCo7F_h)
+ db BANK(SilphCo8F_h)
+ db BANK(PokemonMansion2F_h)
+ db BANK(PokemonMansion3F_h)
+ db BANK(PokemonMansionB1F_h)
+ db BANK(SafariZoneEast_h)
+ db BANK(SafariZoneNorth_h)
+ db BANK(SafariZoneWest_h)
+ db BANK(SafariZoneCenter_h)
+ db BANK(SafariZoneCenterRestHouse_h)
+ db BANK(SafariZoneSecretHouse_h)
+ db BANK(SafariZoneWestRestHouse_h)
+ db BANK(SafariZoneEastRestHouse_h)
+ db BANK(SafariZoneNorthRestHouse_h)
+ db BANK(CeruleanCave2F_h)
+ db BANK(CeruleanCaveB1F_h)
+ db BANK(CeruleanCave1F_h)
+ db BANK(NameRatersHouse_h)
+ db BANK(CeruleanBadgeHouse_h)
+ db $01 ; UNUSED_MAP_E7
+ db BANK(RockTunnelB1F_h)
+ db BANK(SilphCo9F_h)
+ db BANK(SilphCo10F_h)
+ db BANK(SilphCo11F_h)
+ db BANK(SilphCoElevator_h)
+ db $11 ; UNUSED_MAP_ED
+ db $11 ; UNUSED_MAP_EE
+ db BANK(TradeCenter_h)
+ db BANK(Colosseum_h)
+ db $11 ; UNUSED_MAP_F1
+ db $11 ; UNUSED_MAP_F2
+ db $11 ; UNUSED_MAP_F3
+ db $11 ; UNUSED_MAP_F4
+ db BANK(LoreleisRoom_h)
+ db BANK(BrunosRoom_h)
+ db BANK(AgathasRoom_h)
diff --git a/data/maps/map_header_pointers.asm b/data/maps/map_header_pointers.asm
new file mode 100755
index 00000000..9d85eaae
--- /dev/null
+++ b/data/maps/map_header_pointers.asm
@@ -0,0 +1,250 @@
+; see also MapHeaderBanks
+MapHeaderPointers::
+ dw PalletTown_h
+ dw ViridianCity_h
+ dw PewterCity_h
+ dw CeruleanCity_h
+ dw LavenderTown_h
+ dw VermilionCity_h
+ dw CeladonCity_h
+ dw FuchsiaCity_h
+ dw CinnabarIsland_h
+ dw IndigoPlateau_h
+ dw SaffronCity_h
+ dw SaffronCity_h ; UNUSED_MAP_0B
+ dw Route1_h
+ dw Route2_h
+ dw Route3_h
+ dw Route4_h
+ dw Route5_h
+ dw Route6_h
+ dw Route7_h
+ dw Route8_h
+ dw Route9_h
+ dw Route10_h
+ dw Route11_h
+ dw Route12_h
+ dw Route13_h
+ dw Route14_h
+ dw Route15_h
+ dw Route16_h
+ dw Route17_h
+ dw Route18_h
+ dw Route19_h
+ dw Route20_h
+ dw Route21_h
+ dw Route22_h
+ dw Route23_h
+ dw Route24_h
+ dw Route25_h
+ dw RedsHouse1F_h
+ dw RedsHouse2F_h
+ dw BluesHouse_h
+ dw OaksLab_h
+ dw ViridianPokecenter_h
+ dw ViridianMart_h
+ dw ViridianSchoolHouse_h
+ dw ViridianNicknameHouse_h
+ dw ViridianGym_h
+ dw DiglettsCaveRoute2_h
+ dw ViridianForestNorthGate_h
+ dw Route2TradeHouse_h
+ dw Route2Gate_h
+ dw ViridianForestSouthGate_h
+ dw ViridianForest_h
+ dw Museum1F_h
+ dw Museum2F_h
+ dw PewterGym_h
+ dw PewterNidoranHouse_h
+ dw PewterMart_h
+ dw PewterSpeechHouse_h
+ dw PewterPokecenter_h
+ dw MtMoon1F_h
+ dw MtMoonB1F_h
+ dw MtMoonB2F_h
+ dw CeruleanTrashedHouse_h
+ dw CeruleanTradeHouse_h
+ dw CeruleanPokecenter_h
+ dw CeruleanGym_h
+ dw BikeShop_h
+ dw CeruleanMart_h
+ dw MtMoonPokecenter_h
+ dw CeruleanTrashedHouse_h ; CERULEAN_TRASHED_HOUSE_COPY
+ dw Route5Gate_h
+ dw UndergroundPathRoute5_h
+ dw Daycare_h
+ dw Route6Gate_h
+ dw UndergroundPathRoute6_h
+ dw UndergroundPathRoute6_h ; UNDERGROUND_PATH_ROUTE_6_COPY
+ dw Route7Gate_h
+ dw UndergroundPathRoute7_h
+ dw UndergroundPathRoute7Copy_h
+ dw Route8Gate_h
+ dw UndergroundPathRoute8_h
+ dw RockTunnelPokecenter_h
+ dw RockTunnel1F_h
+ dw PowerPlant_h
+ dw Route11Gate1F_h
+ dw DiglettsCaveRoute11_h
+ dw Route11Gate2F_h
+ dw Route12Gate1F_h
+ dw BillsHouse_h
+ dw VermilionPokecenter_h
+ dw PokemonFanClub_h
+ dw VermilionMart_h
+ dw VermilionGym_h
+ dw VermilionPidgeyHouse_h
+ dw VermilionDock_h
+ dw SSAnne1F_h
+ dw SSAnne2F_h
+ dw SSAnne3F_h
+ dw SSAnneB1F_h
+ dw SSAnneBow_h
+ dw SSAnneKitchen_h
+ dw SSAnneCaptainsRoom_h
+ dw SSAnne1FRooms_h
+ dw SSAnne2FRooms_h
+ dw SSAnneB1FRooms_h
+ dw LancesRoom_h ; UNUSED_MAP_69
+ dw LancesRoom_h ; UNUSED_MAP_6A
+ dw LancesRoom_h ; UNUSED_MAP_6B
+ dw VictoryRoad1F_h
+ dw LancesRoom_h ; UNUSED_MAP_6D
+ dw LancesRoom_h ; UNUSED_MAP_6E
+ dw LancesRoom_h ; UNUSED_MAP_6F
+ dw LancesRoom_h ; UNUSED_MAP_70
+ dw LancesRoom_h
+ dw LancesRoom_h ; UNUSED_MAP_72
+ dw LancesRoom_h ; UNUSED_MAP_73
+ dw LancesRoom_h ; UNUSED_MAP_74
+ dw LancesRoom_h ; UNUSED_MAP_75
+ dw HallOfFame_h
+ dw UndergroundPathNorthSouth_h
+ dw ChampionsRoom_h
+ dw UndergroundPathWestEast_h
+ dw CeladonMart1F_h
+ dw CeladonMart2F_h
+ dw CeladonMart3F_h
+ dw CeladonMart4F_h
+ dw CeladonMartRoof_h
+ dw CeladonMartElevator_h
+ dw CeladonMansion1F_h
+ dw CeladonMansion2F_h
+ dw CeladonMansion3F_h
+ dw CeladonMansionRoof_h
+ dw CeladonMansionRoofHouse_h
+ dw CeladonPokecenter_h
+ dw CeladonGym_h
+ dw GameCorner_h
+ dw CeladonMart5F_h
+ dw GameCornerPrizeRoom_h
+ dw CeladonDiner_h
+ dw CeladonChiefHouse_h
+ dw CeladonHotel_h
+ dw LavenderPokecenter_h
+ dw PokemonTower1F_h
+ dw PokemonTower2F_h
+ dw PokemonTower3F_h
+ dw PokemonTower4F_h
+ dw PokemonTower5F_h
+ dw PokemonTower6F_h
+ dw PokemonTower7F_h
+ dw MrFujisHouse_h
+ dw LavenderMart_h
+ dw LavenderCuboneHouse_h
+ dw FuchsiaMart_h
+ dw FuchsiaBillsGrandpasHouse_h
+ dw FuchsiaPokecenter_h
+ dw WardensHouse_h
+ dw SafariZoneGate_h
+ dw FuchsiaGym_h
+ dw FuchsiaMeetingRoom_h
+ dw SeafoamIslandsB1F_h
+ dw SeafoamIslandsB2F_h
+ dw SeafoamIslandsB3F_h
+ dw SeafoamIslandsB4F_h
+ dw VermilionOldRodHouse_h
+ dw FuchsiaGoodRodHouse_h
+ dw PokemonMansion1F_h
+ dw CinnabarGym_h
+ dw CinnabarLab_h
+ dw CinnabarLabTradeRoom_h
+ dw CinnabarLabMetronomeRoom_h
+ dw CinnabarLabFossilRoom_h
+ dw CinnabarPokecenter_h
+ dw CinnabarMart_h
+ dw CinnabarMart_h ; CINNABAR_MART_COPY
+ dw IndigoPlateauLobby_h
+ dw CopycatsHouse1F_h
+ dw CopycatsHouse2F_h
+ dw FightingDojo_h
+ dw SaffronGym_h
+ dw SaffronPidgeyHouse_h
+ dw SaffronMart_h
+ dw SilphCo1F_h
+ dw SaffronPokecenter_h
+ dw MrPsychicsHouse_h
+ dw Route15Gate1F_h
+ dw Route15Gate2F_h
+ dw Route16Gate1F_h
+ dw Route16Gate2F_h
+ dw Route16FlyHouse_h
+ dw Route12SuperRodHouse_h
+ dw Route18Gate1F_h
+ dw Route18Gate2F_h
+ dw SeafoamIslands1F_h
+ dw Route22Gate_h
+ dw VictoryRoad2F_h
+ dw Route12Gate2F_h
+ dw VermilionTradeHouse_h
+ dw DiglettsCave_h
+ dw VictoryRoad3F_h
+ dw RocketHideoutB1F_h
+ dw RocketHideoutB2F_h
+ dw RocketHideoutB3F_h
+ dw RocketHideoutB4F_h
+ dw RocketHideoutElevator_h
+ dw RocketHideoutElevator_h ; UNUSED_MAP_CC
+ dw RocketHideoutElevator_h ; UNUSED_MAP_CD
+ dw RocketHideoutElevator_h ; UNUSED_MAP_CE
+ dw SilphCo2F_h
+ dw SilphCo3F_h
+ dw SilphCo4F_h
+ dw SilphCo5F_h
+ dw SilphCo6F_h
+ dw SilphCo7F_h
+ dw SilphCo8F_h
+ dw PokemonMansion2F_h
+ dw PokemonMansion3F_h
+ dw PokemonMansionB1F_h
+ dw SafariZoneEast_h
+ dw SafariZoneNorth_h
+ dw SafariZoneWest_h
+ dw SafariZoneCenter_h
+ dw SafariZoneCenterRestHouse_h
+ dw SafariZoneSecretHouse_h
+ dw SafariZoneWestRestHouse_h
+ dw SafariZoneEastRestHouse_h
+ dw SafariZoneNorthRestHouse_h
+ dw CeruleanCave2F_h
+ dw CeruleanCaveB1F_h
+ dw CeruleanCave1F_h
+ dw NameRatersHouse_h
+ dw CeruleanBadgeHouse_h
+ dw Route16Gate1F_h ; UNUSED_MAP_E7
+ dw RockTunnelB1F_h
+ dw SilphCo9F_h
+ dw SilphCo10F_h
+ dw SilphCo11F_h
+ dw SilphCoElevator_h
+ dw SilphCo2F_h ; UNUSED_MAP_ED
+ dw SilphCo2F_h ; UNUSED_MAP_EE
+ dw TradeCenter_h
+ dw Colosseum_h
+ dw SilphCo2F_h ; UNUSED_MAP_F1
+ dw SilphCo2F_h ; UNUSED_MAP_F2
+ dw SilphCo2F_h ; UNUSED_MAP_F3
+ dw SilphCo2F_h ; UNUSED_MAP_F4
+ dw LoreleisRoom_h
+ dw BrunosRoom_h
+ dw AgathasRoom_h ;247
diff --git a/data/maps/names.asm b/data/maps/names.asm
new file mode 100755
index 00000000..c2642942
--- /dev/null
+++ b/data/maps/names.asm
@@ -0,0 +1,107 @@
+MapNames:
+PalletTownName:
+ db "PALLET TOWN@"
+ViridianCityName:
+ db "VIRIDIAN CITY@"
+PewterCityName:
+ db "PEWTER CITY@"
+CeruleanCityName:
+ db "CERULEAN CITY@"
+LavenderTownName:
+ db "LAVENDER TOWN@"
+VermilionCityName:
+ db "VERMILION CITY@"
+CeladonCityName:
+ db "CELADON CITY@"
+FuchsiaCityName:
+ db "FUCHSIA CITY@"
+CinnabarIslandName:
+ db "CINNABAR ISLAND@"
+IndigoPlateauName:
+ db "INDIGO PLATEAU@"
+SaffronCityName:
+ db "SAFFRON CITY@"
+Route1Name:
+ db "ROUTE 1@"
+Route2Name:
+ db "ROUTE 2@"
+Route3Name:
+ db "ROUTE 3@"
+Route4Name:
+ db "ROUTE 4@"
+Route5Name:
+ db "ROUTE 5@"
+Route6Name:
+ db "ROUTE 6@"
+Route7Name:
+ db "ROUTE 7@"
+Route8Name:
+ db "ROUTE 8@"
+Route9Name:
+ db "ROUTE 9@"
+Route10Name:
+ db "ROUTE 10@"
+Route11Name:
+ db "ROUTE 11@"
+Route12Name:
+ db "ROUTE 12@"
+Route13Name:
+ db "ROUTE 13@"
+Route14Name:
+ db "ROUTE 14@"
+Route15Name:
+ db "ROUTE 15@"
+Route16Name:
+ db "ROUTE 16@"
+Route17Name:
+ db "ROUTE 17@"
+Route18Name:
+ db "ROUTE 18@"
+Route19Name:
+ db "SEA ROUTE 19@"
+Route20Name:
+ db "SEA ROUTE 20@"
+Route21Name:
+ db "SEA ROUTE 21@"
+Route22Name:
+ db "ROUTE 22@"
+Route23Name:
+ db "ROUTE 23@"
+Route24Name:
+ db "ROUTE 24@"
+Route25Name:
+ db "ROUTE 25@"
+ViridianForestName:
+ db "VIRIDIAN FOREST@"
+MountMoonName:
+ db "MT.MOON@"
+RockTunnelName:
+ db "ROCK TUNNEL@"
+SeaCottageName:
+ db "SEA COTTAGE@"
+SSAnneName:
+ db "S.S.ANNE@"
+PokemonLeagueName:
+ db "#MON LEAGUE@"
+UndergroundPathName:
+ db "UNDERGROUND PATH@"
+PokemonTowerName:
+ db "#MON TOWER@"
+SeafoamIslandsName:
+ db "SEAFOAM ISLANDS@"
+VictoryRoadName:
+ db "VICTORY ROAD@"
+DiglettsCaveName:
+ db "DIGLETT's CAVE@"
+RocketHQName:
+ db "ROCKET HQ@"
+SilphCoName:
+ db "SILPH CO.@"
+PokemonMansionName:
+ db "<pkmn> MANSION@"
+SafariZoneName:
+ db "SAFARI ZONE@"
+CeruleanCaveName:
+ db "CERULEAN CAVE@"
+PowerPlantName:
+ db "POWER PLANT@"
diff --git a/data/maps/objects/AgathasRoom.asm b/data/maps/objects/AgathasRoom.asm
new file mode 100755
index 00000000..4a82e78d
--- /dev/null
+++ b/data/maps/objects/AgathasRoom.asm
@@ -0,0 +1,19 @@
+AgathasRoom_Object:
+ db $0 ; border block
+
+ db 4 ; warps
+ warp 4, 11, 2, BRUNOS_ROOM
+ warp 5, 11, 3, BRUNOS_ROOM
+ warp 4, 0, 0, LANCES_ROOM
+ warp 5, 0, 0, LANCES_ROOM
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_AGATHA, 5, 2, STAY, DOWN, 1, OPP_AGATHA, 1
+
+ ; warp-to
+ warp_to 4, 11, AGATHAS_ROOM_WIDTH ; BRUNOS_ROOM
+ warp_to 5, 11, AGATHAS_ROOM_WIDTH ; BRUNOS_ROOM
+ warp_to 4, 0, AGATHAS_ROOM_WIDTH ; LANCES_ROOM
+ warp_to 5, 0, AGATHAS_ROOM_WIDTH ; LANCES_ROOM
diff --git a/data/maps/objects/BikeShop.asm b/data/maps/objects/BikeShop.asm
new file mode 100755
index 00000000..9f21ab3e
--- /dev/null
+++ b/data/maps/objects/BikeShop.asm
@@ -0,0 +1,17 @@
+BikeShop_Object:
+ db $e ; border block
+
+ db 2 ; warps
+ warp 2, 7, 4, -1
+ warp 3, 7, 4, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_BIKE_SHOP_GUY, 6, 2, STAY, NONE, 1 ; person
+ object SPRITE_MOM_GEISHA, 5, 6, WALK, 1, 2 ; person
+ object SPRITE_BUG_CATCHER, 1, 3, STAY, UP, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, BIKE_SHOP_WIDTH
+ warp_to 3, 7, BIKE_SHOP_WIDTH
diff --git a/data/maps/objects/BillsHouse.asm b/data/maps/objects/BillsHouse.asm
new file mode 100755
index 00000000..c8f708cb
--- /dev/null
+++ b/data/maps/objects/BillsHouse.asm
@@ -0,0 +1,17 @@
+BillsHouse_Object:
+ db $d ; border block
+
+ db 2 ; warps
+ warp 2, 7, 0, -1
+ warp 3, 7, 0, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_SLOWBRO, 6, 5, STAY, NONE, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 4, 4, STAY, NONE, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 6, 5, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, BILLS_HOUSE_WIDTH
+ warp_to 3, 7, BILLS_HOUSE_WIDTH
diff --git a/data/maps/objects/BluesHouse.asm b/data/maps/objects/BluesHouse.asm
new file mode 100755
index 00000000..45ca1286
--- /dev/null
+++ b/data/maps/objects/BluesHouse.asm
@@ -0,0 +1,17 @@
+BluesHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 1, -1
+ warp 3, 7, 1, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_DAISY, 2, 3, STAY, RIGHT, 1 ; Daisy, sitting by map
+ object SPRITE_DAISY, 6, 4, WALK, 1, 2, 0 ; Daisy, walking around
+ object SPRITE_BOOK_MAP_DEX, 3, 3, STAY, NONE, 3, 0 ; map on table
+
+ ; warp-to
+ warp_to 2, 7, BLUES_HOUSE_WIDTH
+ warp_to 3, 7, BLUES_HOUSE_WIDTH
diff --git a/data/maps/objects/BrunosRoom.asm b/data/maps/objects/BrunosRoom.asm
new file mode 100755
index 00000000..dde1e2dd
--- /dev/null
+++ b/data/maps/objects/BrunosRoom.asm
@@ -0,0 +1,19 @@
+BrunosRoom_Object:
+ db $3 ; border block
+
+ db 4 ; warps
+ warp 4, 11, 2, LORELEIS_ROOM
+ warp 5, 11, 3, LORELEIS_ROOM
+ warp 4, 0, 0, AGATHAS_ROOM
+ warp 5, 0, 1, AGATHAS_ROOM
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_BRUNO, 5, 2, STAY, DOWN, 1, OPP_BRUNO, 1
+
+ ; warp-to
+ warp_to 4, 11, BRUNOS_ROOM_WIDTH ; LORELEIS_ROOM
+ warp_to 5, 11, BRUNOS_ROOM_WIDTH ; LORELEIS_ROOM
+ warp_to 4, 0, BRUNOS_ROOM_WIDTH ; AGATHAS_ROOM
+ warp_to 5, 0, BRUNOS_ROOM_WIDTH ; AGATHAS_ROOM
diff --git a/data/maps/objects/CeladonChiefHouse.asm b/data/maps/objects/CeladonChiefHouse.asm
new file mode 100755
index 00000000..88850f35
--- /dev/null
+++ b/data/maps/objects/CeladonChiefHouse.asm
@@ -0,0 +1,17 @@
+CeladonChiefHouse_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 2, 7, 11, -1
+ warp 3, 7, 11, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_OLD_PERSON, 4, 2, STAY, DOWN, 1 ; person
+ object SPRITE_ROCKET, 1, 4, WALK, 0, 2 ; person
+ object SPRITE_SAILOR, 5, 6, STAY, LEFT, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, CELADON_CHIEF_HOUSE_WIDTH
+ warp_to 3, 7, CELADON_CHIEF_HOUSE_WIDTH
diff --git a/data/maps/objects/CeladonCity.asm b/data/maps/objects/CeladonCity.asm
new file mode 100755
index 00000000..005fc61e
--- /dev/null
+++ b/data/maps/objects/CeladonCity.asm
@@ -0,0 +1,54 @@
+CeladonCity_Object:
+ db $f ; border block
+
+ db 13 ; warps
+ warp 8, 13, 0, CELADON_MART_1F
+ warp 10, 13, 2, CELADON_MART_1F
+ warp 24, 9, 0, CELADON_MANSION_1F
+ warp 24, 3, 2, CELADON_MANSION_1F
+ warp 25, 3, 2, CELADON_MANSION_1F
+ warp 41, 9, 0, CELADON_POKECENTER
+ warp 12, 27, 0, CELADON_GYM
+ warp 28, 19, 0, GAME_CORNER
+ warp 39, 19, 0, CELADON_MART_5F ; beta warp! no longer used
+ warp 33, 19, 0, GAME_CORNER_PRIZE_ROOM
+ warp 31, 27, 0, CELADON_DINER
+ warp 35, 27, 0, CELADON_CHIEF_HOUSE
+ warp 43, 27, 0, CELADON_HOTEL
+
+ db 9 ; signs
+ sign 27, 15, 10 ; CeladonCityText10
+ sign 19, 15, 11 ; CeladonCityText11
+ sign 42, 9, 12 ; PokeCenterSignText
+ sign 13, 29, 13 ; CeladonCityText13
+ sign 21, 9, 14 ; CeladonCityText14
+ sign 12, 13, 15 ; CeladonCityText15
+ sign 39, 21, 16 ; CeladonCityText16
+ sign 33, 21, 17 ; CeladonCityText17
+ sign 27, 21, 18 ; CeladonCityText18
+
+ db 9 ; objects
+ object SPRITE_LITTLE_GIRL, 8, 17, WALK, 0, 1 ; person
+ object SPRITE_OLD_PERSON, 11, 28, STAY, UP, 2 ; person
+ object SPRITE_GIRL, 14, 19, WALK, 1, 3 ; person
+ object SPRITE_OLD_PERSON, 25, 22, STAY, DOWN, 4 ; person
+ object SPRITE_OLD_PERSON, 22, 16, STAY, DOWN, 5 ; person
+ object SPRITE_FISHER2, 32, 12, STAY, LEFT, 6 ; person
+ object SPRITE_SLOWBRO, 30, 12, STAY, RIGHT, 7 ; person
+ object SPRITE_ROCKET, 32, 29, WALK, 2, 8 ; person
+ object SPRITE_ROCKET, 42, 14, WALK, 2, 9 ; person
+
+ ; warp-to
+ warp_to 8, 13, CELADON_CITY_WIDTH ; CELADON_MART_1F
+ warp_to 10, 13, CELADON_CITY_WIDTH ; CELADON_MART_1F
+ warp_to 24, 9, CELADON_CITY_WIDTH ; CELADON_MANSION_1F
+ warp_to 24, 3, CELADON_CITY_WIDTH ; CELADON_MANSION_1F
+ warp_to 25, 3, CELADON_CITY_WIDTH ; CELADON_MANSION_1F
+ warp_to 41, 9, CELADON_CITY_WIDTH ; CELADON_POKECENTER
+ warp_to 12, 27, CELADON_CITY_WIDTH ; CELADON_GYM
+ warp_to 28, 19, CELADON_CITY_WIDTH ; GAME_CORNER
+ warp_to 39, 19, CELADON_CITY_WIDTH ; CELADON_MART_5F
+ warp_to 33, 19, CELADON_CITY_WIDTH ; GAME_CORNER_PRIZE_ROOM
+ warp_to 31, 27, CELADON_CITY_WIDTH ; CELADON_DINER
+ warp_to 35, 27, CELADON_CITY_WIDTH ; CELADON_CHIEF_HOUSE
+ warp_to 43, 27, CELADON_CITY_WIDTH ; CELADON_HOTEL
diff --git a/data/maps/objects/CeladonDiner.asm b/data/maps/objects/CeladonDiner.asm
new file mode 100755
index 00000000..0a4a895d
--- /dev/null
+++ b/data/maps/objects/CeladonDiner.asm
@@ -0,0 +1,19 @@
+CeladonDiner_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 3, 7, 10, -1
+ warp 4, 7, 10, -1
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_COOK, 8, 5, WALK, 2, 1 ; person
+ object SPRITE_MOM_GEISHA, 7, 2, STAY, NONE, 2 ; person
+ object SPRITE_FAT_BALD_GUY, 1, 4, STAY, DOWN, 3 ; person
+ object SPRITE_FISHER2, 5, 3, STAY, RIGHT, 4 ; person
+ object SPRITE_GYM_HELPER, 0, 1, STAY, DOWN, 5 ; person
+
+ ; warp-to
+ warp_to 3, 7, CELADON_DINER_WIDTH
+ warp_to 4, 7, CELADON_DINER_WIDTH
diff --git a/data/maps/objects/CeladonGym.asm b/data/maps/objects/CeladonGym.asm
new file mode 100755
index 00000000..98fce576
--- /dev/null
+++ b/data/maps/objects/CeladonGym.asm
@@ -0,0 +1,22 @@
+CeladonGym_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 17, 6, -1
+ warp 5, 17, 6, -1
+
+ db 0 ; signs
+
+ db 8 ; objects
+ object SPRITE_ERIKA, 4, 3, STAY, DOWN, 1, OPP_ERIKA, 1
+ object SPRITE_LASS, 2, 11, STAY, RIGHT, 2, OPP_LASS, 17
+ object SPRITE_FOULARD_WOMAN, 7, 10, STAY, LEFT, 3, OPP_BEAUTY, 1
+ object SPRITE_LASS, 9, 5, STAY, DOWN, 4, OPP_JR_TRAINER_F, 11
+ object SPRITE_FOULARD_WOMAN, 1, 5, STAY, DOWN, 5, OPP_BEAUTY, 2
+ object SPRITE_LASS, 6, 3, STAY, DOWN, 6, OPP_LASS, 18
+ object SPRITE_FOULARD_WOMAN, 3, 3, STAY, DOWN, 7, OPP_BEAUTY, 3
+ object SPRITE_LASS, 5, 3, STAY, DOWN, 8, OPP_COOLTRAINER_F, 1
+
+ ; warp-to
+ warp_to 4, 17, CELADON_GYM_WIDTH
+ warp_to 5, 17, CELADON_GYM_WIDTH
diff --git a/data/maps/objects/CeladonHotel.asm b/data/maps/objects/CeladonHotel.asm
new file mode 100755
index 00000000..f4aa1305
--- /dev/null
+++ b/data/maps/objects/CeladonHotel.asm
@@ -0,0 +1,17 @@
+CeladonHotel_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 12, -1
+ warp 4, 7, 12, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_OLD_MEDIUM_WOMAN, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_FOULARD_WOMAN, 2, 4, STAY, NONE, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 8, 4, WALK, 2, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, CELADON_HOTEL_WIDTH
+ warp_to 4, 7, CELADON_HOTEL_WIDTH
diff --git a/data/maps/objects/CeladonMansion1F.asm b/data/maps/objects/CeladonMansion1F.asm
new file mode 100755
index 00000000..1abd434c
--- /dev/null
+++ b/data/maps/objects/CeladonMansion1F.asm
@@ -0,0 +1,25 @@
+CeladonMansion1F_Object:
+ db $f ; border block
+
+ db 5 ; warps
+ warp 4, 11, 2, -1
+ warp 5, 11, 2, -1
+ warp 4, 0, 4, -1
+ warp 7, 1, 1, CELADON_MANSION_2F
+ warp 2, 1, 2, CELADON_MANSION_2F
+
+ db 1 ; signs
+ sign 4, 9, 5 ; CeladonMansion1Text5
+
+ db 4 ; objects
+ object SPRITE_SLOWBRO, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_OLD_MEDIUM_WOMAN, 1, 5, STAY, DOWN, 2 ; person
+ object SPRITE_CLEFAIRY, 1, 8, WALK, 2, 3 ; person
+ object SPRITE_SLOWBRO, 4, 4, WALK, 1, 4 ; person
+
+ ; warp-to
+ warp_to 4, 11, CELADON_MANSION_1F_WIDTH
+ warp_to 5, 11, CELADON_MANSION_1F_WIDTH
+ warp_to 4, 0, CELADON_MANSION_1F_WIDTH
+ warp_to 7, 1, CELADON_MANSION_1F_WIDTH ; CELADON_MANSION_2F
+ warp_to 2, 1, CELADON_MANSION_1F_WIDTH ; CELADON_MANSION_2F
diff --git a/data/maps/objects/CeladonMansion2F.asm b/data/maps/objects/CeladonMansion2F.asm
new file mode 100755
index 00000000..09c94d29
--- /dev/null
+++ b/data/maps/objects/CeladonMansion2F.asm
@@ -0,0 +1,19 @@
+CeladonMansion2F_Object:
+ db $f ; border block
+
+ db 4 ; warps
+ warp 6, 1, 0, CELADON_MANSION_3F
+ warp 7, 1, 3, CELADON_MANSION_1F
+ warp 2, 1, 4, CELADON_MANSION_1F
+ warp 4, 1, 3, CELADON_MANSION_3F
+
+ db 1 ; signs
+ sign 4, 9, 1 ; CeladonMansion2Text1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 6, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_3F
+ warp_to 7, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_1F
+ warp_to 2, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_1F
+ warp_to 4, 1, CELADON_MANSION_2F_WIDTH ; CELADON_MANSION_3F
diff --git a/data/maps/objects/CeladonMansion3F.asm b/data/maps/objects/CeladonMansion3F.asm
new file mode 100755
index 00000000..32701f14
--- /dev/null
+++ b/data/maps/objects/CeladonMansion3F.asm
@@ -0,0 +1,26 @@
+CeladonMansion3F_Object:
+ db $f ; border block
+
+ db 4 ; warps
+ warp 6, 1, 0, CELADON_MANSION_2F
+ warp 7, 1, 0, CELADON_MANSION_ROOF
+ warp 2, 1, 1, CELADON_MANSION_ROOF
+ warp 4, 1, 3, CELADON_MANSION_2F
+
+ db 4 ; signs
+ sign 1, 3, 5 ; CeladonMansion3Text5
+ sign 4, 3, 6 ; CeladonMansion3Text6
+ sign 1, 6, 7 ; CeladonMansion3Text7
+ sign 4, 9, 8 ; CeladonMansion3Text8
+
+ db 4 ; objects
+ object SPRITE_BIKE_SHOP_GUY, 0, 4, STAY, UP, 1 ; person
+ object SPRITE_MART_GUY, 3, 4, STAY, UP, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 0, 7, STAY, UP, 3 ; person
+ object SPRITE_LAPRAS_GIVER, 2, 3, STAY, NONE, 4 ; person
+
+ ; warp-to
+ warp_to 6, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_2F
+ warp_to 7, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_ROOF
+ warp_to 2, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_ROOF
+ warp_to 4, 1, CELADON_MANSION_3F_WIDTH ; CELADON_MANSION_2F
diff --git a/data/maps/objects/CeladonMansionRoof.asm b/data/maps/objects/CeladonMansionRoof.asm
new file mode 100755
index 00000000..353b0b96
--- /dev/null
+++ b/data/maps/objects/CeladonMansionRoof.asm
@@ -0,0 +1,17 @@
+CeladonMansionRoof_Object:
+ db $9 ; border block
+
+ db 3 ; warps
+ warp 6, 1, 1, CELADON_MANSION_3F
+ warp 2, 1, 2, CELADON_MANSION_3F
+ warp 2, 7, 0, CELADON_MANSION_ROOF_HOUSE
+
+ db 1 ; signs
+ sign 3, 7, 1 ; CeladonMansion4Text1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 6, 1, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_3F
+ warp_to 2, 1, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_3F
+ warp_to 2, 7, CELADON_MANSION_ROOF_WIDTH ; CELADON_MANSION_ROOF_HOUSE
diff --git a/data/maps/objects/CeladonMansionRoofHouse.asm b/data/maps/objects/CeladonMansionRoofHouse.asm
new file mode 100755
index 00000000..b6a6149f
--- /dev/null
+++ b/data/maps/objects/CeladonMansionRoofHouse.asm
@@ -0,0 +1,16 @@
+CeladonMansionRoofHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 2, CELADON_MANSION_ROOF
+ warp 3, 7, 2, CELADON_MANSION_ROOF
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_HIKER, 2, 2, STAY, DOWN, 1 ; person
+ object SPRITE_BALL, 4, 3, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, CELADON_MANSION_ROOF_HOUSE_WIDTH ; CELADON_MANSION_ROOF
+ warp_to 3, 7, CELADON_MANSION_ROOF_HOUSE_WIDTH ; CELADON_MANSION_ROOF
diff --git a/data/maps/objects/CeladonMart1F.asm b/data/maps/objects/CeladonMart1F.asm
new file mode 100755
index 00000000..2037369a
--- /dev/null
+++ b/data/maps/objects/CeladonMart1F.asm
@@ -0,0 +1,25 @@
+CeladonMart1F_Object:
+ db $f ; border block
+
+ db 6 ; warps
+ warp 2, 7, 0, -1
+ warp 3, 7, 0, -1
+ warp 16, 7, 1, -1
+ warp 17, 7, 1, -1
+ warp 12, 1, 0, CELADON_MART_2F
+ warp 1, 1, 0, CELADON_MART_ELEVATOR
+
+ db 2 ; signs
+ sign 11, 4, 2 ; CeladonMart1Text2
+ sign 14, 1, 3 ; CeladonMart1Text3
+
+ db 1 ; objects
+ object SPRITE_CABLE_CLUB_WOMAN, 8, 3, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, CELADON_MART_1F_WIDTH
+ warp_to 3, 7, CELADON_MART_1F_WIDTH
+ warp_to 16, 7, CELADON_MART_1F_WIDTH
+ warp_to 17, 7, CELADON_MART_1F_WIDTH
+ warp_to 12, 1, CELADON_MART_1F_WIDTH ; CELADON_MART_2F
+ warp_to 1, 1, CELADON_MART_1F_WIDTH ; CELADON_MART_ELEVATOR
diff --git a/data/maps/objects/CeladonMart2F.asm b/data/maps/objects/CeladonMart2F.asm
new file mode 100755
index 00000000..2f5f428e
--- /dev/null
+++ b/data/maps/objects/CeladonMart2F.asm
@@ -0,0 +1,21 @@
+CeladonMart2F_Object:
+ db $f ; border block
+
+ db 3 ; warps
+ warp 12, 1, 4, CELADON_MART_1F
+ warp 16, 1, 1, CELADON_MART_3F
+ warp 1, 1, 0, CELADON_MART_ELEVATOR
+
+ db 1 ; signs
+ sign 14, 1, 5 ; CeladonMart2Text5
+
+ db 4 ; objects
+ object SPRITE_MART_GUY, 5, 3, STAY, DOWN, 1 ; person
+ object SPRITE_MART_GUY, 6, 3, STAY, DOWN, 2 ; person
+ object SPRITE_FAT_BALD_GUY, 19, 5, STAY, NONE, 3 ; person
+ object SPRITE_GIRL, 14, 4, WALK, 1, 4 ; person
+
+ ; warp-to
+ warp_to 12, 1, CELADON_MART_2F_WIDTH ; CELADON_MART_1F
+ warp_to 16, 1, CELADON_MART_2F_WIDTH ; CELADON_MART_3F
+ warp_to 1, 1, CELADON_MART_2F_WIDTH ; CELADON_MART_ELEVATOR
diff --git a/data/maps/objects/CeladonMart3F.asm b/data/maps/objects/CeladonMart3F.asm
new file mode 100755
index 00000000..6dfce535
--- /dev/null
+++ b/data/maps/objects/CeladonMart3F.asm
@@ -0,0 +1,33 @@
+CeladonMart3F_Object:
+ db $f ; border block
+
+ db 3 ; warps
+ warp 12, 1, 0, CELADON_MART_4F
+ warp 16, 1, 1, CELADON_MART_2F
+ warp 1, 1, 0, CELADON_MART_ELEVATOR
+
+ db 12 ; signs
+ sign 2, 4, 6 ; CeladonMart3Text6
+ sign 3, 4, 7 ; CeladonMart3Text7
+ sign 5, 4, 8 ; CeladonMart3Text8
+ sign 6, 4, 9 ; CeladonMart3Text9
+ sign 2, 6, 10 ; CeladonMart3Text10
+ sign 3, 6, 11 ; CeladonMart3Text11
+ sign 5, 6, 12 ; CeladonMart3Text12
+ sign 6, 6, 13 ; CeladonMart3Text13
+ sign 14, 1, 14 ; CeladonMart3Text14
+ sign 4, 1, 15 ; CeladonMart3Text15
+ sign 6, 1, 16 ; CeladonMart3Text16
+ sign 10, 1, 17 ; CeladonMart3Text17
+
+ db 5 ; objects
+ object SPRITE_MART_GUY, 16, 5, STAY, NONE, 1 ; person
+ object SPRITE_GAMEBOY_KID_COPY, 11, 6, STAY, RIGHT, 2 ; person
+ object SPRITE_GAMEBOY_KID_COPY, 7, 2, STAY, DOWN, 3 ; person
+ object SPRITE_GAMEBOY_KID_COPY, 8, 2, STAY, DOWN, 4 ; person
+ object SPRITE_YOUNG_BOY, 2, 5, STAY, UP, 5 ; person
+
+ ; warp-to
+ warp_to 12, 1, CELADON_MART_3F_WIDTH ; CELADON_MART_4F
+ warp_to 16, 1, CELADON_MART_3F_WIDTH ; CELADON_MART_2F
+ warp_to 1, 1, CELADON_MART_3F_WIDTH ; CELADON_MART_ELEVATOR
diff --git a/data/maps/objects/CeladonMart4F.asm b/data/maps/objects/CeladonMart4F.asm
new file mode 100755
index 00000000..18ba3bdc
--- /dev/null
+++ b/data/maps/objects/CeladonMart4F.asm
@@ -0,0 +1,20 @@
+CeladonMart4F_Object:
+ db $f ; border block
+
+ db 3 ; warps
+ warp 12, 1, 0, CELADON_MART_3F
+ warp 16, 1, 1, CELADON_MART_5F
+ warp 1, 1, 0, CELADON_MART_ELEVATOR
+
+ db 1 ; signs
+ sign 14, 1, 4 ; CeladonMart4Text4
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 5, 7, STAY, NONE, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 15, 5, WALK, 2, 2 ; person
+ object SPRITE_BUG_CATCHER, 5, 2, WALK, 2, 3 ; person
+
+ ; warp-to
+ warp_to 12, 1, CELADON_MART_4F_WIDTH ; CELADON_MART_3F
+ warp_to 16, 1, CELADON_MART_4F_WIDTH ; CELADON_MART_5F
+ warp_to 1, 1, CELADON_MART_4F_WIDTH ; CELADON_MART_ELEVATOR
diff --git a/data/maps/objects/CeladonMart5F.asm b/data/maps/objects/CeladonMart5F.asm
new file mode 100755
index 00000000..fb1201c9
--- /dev/null
+++ b/data/maps/objects/CeladonMart5F.asm
@@ -0,0 +1,21 @@
+CeladonMart5F_Object:
+ db $f ; border block
+
+ db 3 ; warps
+ warp 12, 1, 0, CELADON_MART_ROOF
+ warp 16, 1, 1, CELADON_MART_4F
+ warp 1, 1, 0, CELADON_MART_ELEVATOR
+
+ db 1 ; signs
+ sign 14, 1, 5 ; CeladonMart5Text5
+
+ db 4 ; objects
+ object SPRITE_GENTLEMAN, 14, 5, WALK, 1, 1 ; person
+ object SPRITE_SAILOR, 2, 6, STAY, NONE, 2 ; person
+ object SPRITE_MART_GUY, 5, 3, STAY, DOWN, 3 ; person
+ object SPRITE_MART_GUY, 6, 3, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 12, 1, CELADON_MART_5F_WIDTH ; CELADON_MART_ROOF
+ warp_to 16, 1, CELADON_MART_5F_WIDTH ; CELADON_MART_4F
+ warp_to 1, 1, CELADON_MART_5F_WIDTH ; CELADON_MART_ELEVATOR
diff --git a/data/maps/objects/CeladonMartElevator.asm b/data/maps/objects/CeladonMartElevator.asm
new file mode 100755
index 00000000..9688daef
--- /dev/null
+++ b/data/maps/objects/CeladonMartElevator.asm
@@ -0,0 +1,15 @@
+CeladonMartElevator_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 1, 3, 5, CELADON_MART_1F
+ warp 2, 3, 5, CELADON_MART_1F
+
+ db 1 ; signs
+ sign 3, 0, 1 ; CeladonMartElevatorText1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 1, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1F
+ warp_to 2, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1F
diff --git a/data/maps/objects/CeladonMartRoof.asm b/data/maps/objects/CeladonMartRoof.asm
new file mode 100755
index 00000000..05cef2d4
--- /dev/null
+++ b/data/maps/objects/CeladonMartRoof.asm
@@ -0,0 +1,18 @@
+CeladonMartRoof_Object:
+ db $42 ; border block
+
+ db 1 ; warps
+ warp 15, 2, 0, CELADON_MART_5F
+
+ db 4 ; signs
+ sign 10, 1, 3 ; CeladonMartRoofText3
+ sign 11, 1, 4 ; CeladonMartRoofText4
+ sign 12, 2, 5 ; CeladonMartRoofText5
+ sign 13, 2, 6 ; CeladonMartRoofText6
+
+ db 2 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 10, 4, STAY, LEFT, 1 ; person
+ object SPRITE_LITTLE_GIRL, 5, 5, WALK, 0, 2 ; person
+
+ ; warp-to
+ warp_to 15, 2, CELADON_MART_ROOF_WIDTH ; CELADON_MART_5F
diff --git a/data/maps/objects/CeladonPokecenter.asm b/data/maps/objects/CeladonPokecenter.asm
new file mode 100755
index 00000000..da5d595f
--- /dev/null
+++ b/data/maps/objects/CeladonPokecenter.asm
@@ -0,0 +1,18 @@
+CeladonPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 5, -1
+ warp 4, 7, 5, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_GENTLEMAN, 7, 3, WALK, 2, 2 ; person
+ object SPRITE_FOULARD_WOMAN, 10, 5, WALK, 0, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, CELADON_POKECENTER_WIDTH
+ warp_to 4, 7, CELADON_POKECENTER_WIDTH
diff --git a/data/maps/objects/CeruleanBadgeHouse.asm b/data/maps/objects/CeruleanBadgeHouse.asm
new file mode 100755
index 00000000..62a6873b
--- /dev/null
+++ b/data/maps/objects/CeruleanBadgeHouse.asm
@@ -0,0 +1,17 @@
+CeruleanBadgeHouse_Object:
+ db $c ; border block
+
+ db 3 ; warps
+ warp 2, 0, 9, -1
+ warp 2, 7, 8, -1
+ warp 3, 7, 8, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FAT_BALD_GUY, 5, 3, STAY, RIGHT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 0, CERULEAN_BADGE_HOUSE_WIDTH
+ warp_to 2, 7, CERULEAN_BADGE_HOUSE_WIDTH
+ warp_to 3, 7, CERULEAN_BADGE_HOUSE_WIDTH
diff --git a/data/maps/objects/CeruleanCave1F.asm b/data/maps/objects/CeruleanCave1F.asm
new file mode 100755
index 00000000..f9670482
--- /dev/null
+++ b/data/maps/objects/CeruleanCave1F.asm
@@ -0,0 +1,31 @@
+CeruleanCave1F_Object:
+ db $7d ; border block
+
+ db 9 ; warps
+ warp 24, 17, 6, -1
+ warp 25, 17, 6, -1
+ warp 27, 1, 0, CERULEAN_CAVE_2F
+ warp 23, 7, 1, CERULEAN_CAVE_2F
+ warp 18, 9, 2, CERULEAN_CAVE_2F
+ warp 7, 1, 3, CERULEAN_CAVE_2F
+ warp 1, 3, 4, CERULEAN_CAVE_2F
+ warp 3, 11, 5, CERULEAN_CAVE_2F
+ warp 0, 6, 0, CERULEAN_CAVE_B1F
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_BALL, 7, 13, STAY, NONE, 1, FULL_RESTORE
+ object SPRITE_BALL, 19, 3, STAY, NONE, 2, MAX_ELIXER
+ object SPRITE_BALL, 5, 0, STAY, NONE, 3, NUGGET
+
+ ; warp-to
+ warp_to 24, 17, CERULEAN_CAVE_1F_WIDTH
+ warp_to 25, 17, CERULEAN_CAVE_1F_WIDTH
+ warp_to 27, 1, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F
+ warp_to 23, 7, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F
+ warp_to 18, 9, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F
+ warp_to 7, 1, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F
+ warp_to 1, 3, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F
+ warp_to 3, 11, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_2F
+ warp_to 0, 6, CERULEAN_CAVE_1F_WIDTH ; CERULEAN_CAVE_B1F
diff --git a/data/maps/objects/CeruleanCave2F.asm b/data/maps/objects/CeruleanCave2F.asm
new file mode 100755
index 00000000..f8312da0
--- /dev/null
+++ b/data/maps/objects/CeruleanCave2F.asm
@@ -0,0 +1,25 @@
+CeruleanCave2F_Object:
+ db $7d ; border block
+
+ db 6 ; warps
+ warp 29, 1, 2, CERULEAN_CAVE_1F
+ warp 22, 6, 3, CERULEAN_CAVE_1F
+ warp 19, 7, 4, CERULEAN_CAVE_1F
+ warp 9, 1, 5, CERULEAN_CAVE_1F
+ warp 1, 3, 6, CERULEAN_CAVE_1F
+ warp 3, 11, 7, CERULEAN_CAVE_1F
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_BALL, 29, 9, STAY, NONE, 1, PP_UP
+ object SPRITE_BALL, 4, 15, STAY, NONE, 2, ULTRA_BALL
+ object SPRITE_BALL, 13, 6, STAY, NONE, 3, FULL_RESTORE
+
+ ; warp-to
+ warp_to 29, 1, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F
+ warp_to 22, 6, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F
+ warp_to 19, 7, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F
+ warp_to 9, 1, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F
+ warp_to 1, 3, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F
+ warp_to 3, 11, CERULEAN_CAVE_2F_WIDTH ; CERULEAN_CAVE_1F
diff --git a/data/maps/objects/CeruleanCaveB1F.asm b/data/maps/objects/CeruleanCaveB1F.asm
new file mode 100755
index 00000000..461f77aa
--- /dev/null
+++ b/data/maps/objects/CeruleanCaveB1F.asm
@@ -0,0 +1,15 @@
+CeruleanCaveB1F_Object:
+ db $7d ; border block
+
+ db 1 ; warps
+ warp 3, 6, 8, CERULEAN_CAVE_1F
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_SLOWBRO, 27, 13, STAY, DOWN, 1, MEWTWO, 70
+ object SPRITE_BALL, 16, 9, STAY, NONE, 2, ULTRA_BALL
+ object SPRITE_BALL, 18, 1, STAY, NONE, 3, MAX_REVIVE
+
+ ; warp-to
+ warp_to 3, 6, CERULEAN_CAVE_B1F_WIDTH ; CERULEAN_CAVE_1F
diff --git a/data/maps/objects/CeruleanCity.asm b/data/maps/objects/CeruleanCity.asm
new file mode 100755
index 00000000..d5adcfd7
--- /dev/null
+++ b/data/maps/objects/CeruleanCity.asm
@@ -0,0 +1,47 @@
+CeruleanCity_Object:
+ db $f ; border block
+
+ db 10 ; warps
+ warp 27, 11, 0, CERULEAN_TRASHED_HOUSE
+ warp 13, 15, 0, CERULEAN_TRADE_HOUSE
+ warp 19, 17, 0, CERULEAN_POKECENTER
+ warp 30, 19, 0, CERULEAN_GYM
+ warp 13, 25, 0, BIKE_SHOP
+ warp 25, 25, 0, CERULEAN_MART
+ warp 4, 11, 0, CERULEAN_CAVE_1F
+ warp 27, 9, 2, CERULEAN_TRASHED_HOUSE
+ warp 9, 11, 1, CERULEAN_BADGE_HOUSE
+ warp 9, 9, 0, CERULEAN_BADGE_HOUSE
+
+ db 6 ; signs
+ sign 23, 19, 12 ; CeruleanCityText12
+ sign 17, 29, 13 ; CeruleanCityText13
+ sign 26, 25, 14 ; MartSignText
+ sign 20, 17, 15 ; PokeCenterSignText
+ sign 11, 25, 16 ; CeruleanCityText16
+ sign 27, 21, 17 ; CeruleanCityText17
+
+ db 11 ; objects
+ object SPRITE_BLUE, 20, 2, STAY, DOWN, 1 ; person
+ object SPRITE_ROCKET, 30, 8, STAY, NONE, 2, OPP_ROCKET, 5
+ object SPRITE_BLACK_HAIR_BOY_1, 31, 20, STAY, DOWN, 3 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 15, 18, WALK, 1, 4 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 9, 21, WALK, 2, 5 ; person
+ object SPRITE_GUARD, 28, 12, STAY, DOWN, 6 ; person
+ object SPRITE_LASS, 29, 26, STAY, LEFT, 7 ; person
+ object SPRITE_SLOWBRO, 28, 26, STAY, DOWN, 8 ; person
+ object SPRITE_LASS, 9, 27, WALK, 2, 9 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 4, 12, STAY, DOWN, 10 ; person
+ object SPRITE_GUARD, 27, 12, STAY, DOWN, 11 ; person
+
+ ; warp-to
+ warp_to 27, 11, CERULEAN_CITY_WIDTH ; CERULEAN_TRASHED_HOUSE
+ warp_to 13, 15, CERULEAN_CITY_WIDTH ; CERULEAN_TRADE_HOUSE
+ warp_to 19, 17, CERULEAN_CITY_WIDTH ; CERULEAN_POKECENTER
+ warp_to 30, 19, CERULEAN_CITY_WIDTH ; CERULEAN_GYM
+ warp_to 13, 25, CERULEAN_CITY_WIDTH ; BIKE_SHOP
+ warp_to 25, 25, CERULEAN_CITY_WIDTH ; CERULEAN_MART
+ warp_to 4, 11, CERULEAN_CITY_WIDTH ; CERULEAN_CAVE_1F
+ warp_to 27, 9, CERULEAN_CITY_WIDTH ; CERULEAN_TRASHED_HOUSE
+ warp_to 9, 11, CERULEAN_CITY_WIDTH ; CERULEAN_BADGE_HOUSE
+ warp_to 9, 9, CERULEAN_CITY_WIDTH ; CERULEAN_BADGE_HOUSE
diff --git a/data/maps/objects/CeruleanGym.asm b/data/maps/objects/CeruleanGym.asm
new file mode 100755
index 00000000..96713648
--- /dev/null
+++ b/data/maps/objects/CeruleanGym.asm
@@ -0,0 +1,18 @@
+CeruleanGym_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 13, 3, -1
+ warp 5, 13, 3, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_BRUNETTE_GIRL, 4, 2, STAY, DOWN, 1, OPP_MISTY, 1
+ object SPRITE_LASS, 2, 3, STAY, RIGHT, 2, OPP_JR_TRAINER_F, 1
+ object SPRITE_SWIMMER, 8, 7, STAY, LEFT, 3, OPP_SWIMMER, 1
+ object SPRITE_GYM_HELPER, 7, 10, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 4, 13, CERULEAN_GYM_WIDTH
+ warp_to 5, 13, CERULEAN_GYM_WIDTH
diff --git a/data/maps/objects/CeruleanMart.asm b/data/maps/objects/CeruleanMart.asm
new file mode 100755
index 00000000..4659375f
--- /dev/null
+++ b/data/maps/objects/CeruleanMart.asm
@@ -0,0 +1,17 @@
+CeruleanMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 5, -1
+ warp 4, 7, 5, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 3, 4, WALK, 1, 2 ; person
+ object SPRITE_LASS, 6, 2, WALK, 2, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, CERULEAN_MART_WIDTH
+ warp_to 4, 7, CERULEAN_MART_WIDTH
diff --git a/data/maps/objects/CeruleanPokecenter.asm b/data/maps/objects/CeruleanPokecenter.asm
new file mode 100755
index 00000000..f65db52c
--- /dev/null
+++ b/data/maps/objects/CeruleanPokecenter.asm
@@ -0,0 +1,18 @@
+CeruleanPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 2, -1
+ warp 4, 7, 2, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 10, 5, WALK, 0, 2 ; person
+ object SPRITE_GENTLEMAN, 4, 3, STAY, DOWN, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, CERULEAN_POKECENTER_WIDTH
+ warp_to 4, 7, CERULEAN_POKECENTER_WIDTH
diff --git a/data/maps/objects/CeruleanTradeHouse.asm b/data/maps/objects/CeruleanTradeHouse.asm
new file mode 100755
index 00000000..a4a46e9b
--- /dev/null
+++ b/data/maps/objects/CeruleanTradeHouse.asm
@@ -0,0 +1,16 @@
+CeruleanTradeHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 1, -1
+ warp 3, 7, 1, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_OLD_MEDIUM_WOMAN, 5, 4, STAY, LEFT, 1 ; person
+ object SPRITE_GAMBLER, 1, 2, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, CERULEAN_TRADE_HOUSE_WIDTH
+ warp_to 3, 7, CERULEAN_TRADE_HOUSE_WIDTH
diff --git a/data/maps/objects/CeruleanTrashedHouse.asm b/data/maps/objects/CeruleanTrashedHouse.asm
new file mode 100755
index 00000000..44b7cf20
--- /dev/null
+++ b/data/maps/objects/CeruleanTrashedHouse.asm
@@ -0,0 +1,19 @@
+CeruleanTrashedHouse_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 2, 7, 0, -1
+ warp 3, 7, 0, -1
+ warp 3, 0, 7, -1
+
+ db 1 ; signs
+ sign 3, 0, 3 ; CeruleanHouseTrashedText3
+
+ db 2 ; objects
+ object SPRITE_FISHER, 2, 1, STAY, DOWN, 1 ; person
+ object SPRITE_GIRL, 5, 6, WALK, 2, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, CERULEAN_TRASHED_HOUSE_WIDTH
+ warp_to 3, 7, CERULEAN_TRASHED_HOUSE_WIDTH
+ warp_to 3, 0, CERULEAN_TRASHED_HOUSE_WIDTH
diff --git a/data/maps/objects/ChampionsRoom.asm b/data/maps/objects/ChampionsRoom.asm
new file mode 100755
index 00000000..1e0cb7f4
--- /dev/null
+++ b/data/maps/objects/ChampionsRoom.asm
@@ -0,0 +1,20 @@
+ChampionsRoom_Object:
+ db $3 ; border block
+
+ db 4 ; warps
+ warp 3, 7, 1, LANCES_ROOM
+ warp 4, 7, 2, LANCES_ROOM
+ warp 3, 0, 0, HALL_OF_FAME
+ warp 4, 0, 0, HALL_OF_FAME
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BLUE, 4, 2, STAY, DOWN, 1 ; person
+ object SPRITE_OAK, 3, 7, STAY, UP, 2 ; person
+
+ ; warp-to
+ warp_to 3, 7, CHAMPIONS_ROOM_WIDTH ; LANCES_ROOM
+ warp_to 4, 7, CHAMPIONS_ROOM_WIDTH ; LANCES_ROOM
+ warp_to 3, 0, CHAMPIONS_ROOM_WIDTH ; HALL_OF_FAME
+ warp_to 4, 0, CHAMPIONS_ROOM_WIDTH ; HALL_OF_FAME
diff --git a/data/maps/objects/CinnabarGym.asm b/data/maps/objects/CinnabarGym.asm
new file mode 100755
index 00000000..ab204d43
--- /dev/null
+++ b/data/maps/objects/CinnabarGym.asm
@@ -0,0 +1,23 @@
+CinnabarGym_Object:
+ db $2e ; border block
+
+ db 2 ; warps
+ warp 16, 17, 1, -1
+ warp 17, 17, 1, -1
+
+ db 0 ; signs
+
+ db 9 ; objects
+ object SPRITE_FAT_BALD_GUY, 3, 3, STAY, DOWN, 1, OPP_BLAINE, 1
+ object SPRITE_BLACK_HAIR_BOY_2, 17, 2, STAY, DOWN, 2, OPP_SUPER_NERD, 9
+ object SPRITE_BLACK_HAIR_BOY_2, 17, 8, STAY, DOWN, 3, OPP_BURGLAR, 4
+ object SPRITE_BLACK_HAIR_BOY_2, 11, 4, STAY, DOWN, 4, OPP_SUPER_NERD, 10
+ object SPRITE_BLACK_HAIR_BOY_2, 11, 8, STAY, DOWN, 5, OPP_BURGLAR, 5
+ object SPRITE_BLACK_HAIR_BOY_2, 11, 14, STAY, DOWN, 6, OPP_SUPER_NERD, 11
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 14, STAY, DOWN, 7, OPP_BURGLAR, 6
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 8, STAY, DOWN, 8, OPP_SUPER_NERD, 12
+ object SPRITE_GYM_HELPER, 16, 13, STAY, DOWN, 9 ; person
+
+ ; warp-to
+ warp_to 16, 17, CINNABAR_GYM_WIDTH
+ warp_to 17, 17, CINNABAR_GYM_WIDTH
diff --git a/data/maps/objects/CinnabarIsland.asm b/data/maps/objects/CinnabarIsland.asm
new file mode 100755
index 00000000..1932e134
--- /dev/null
+++ b/data/maps/objects/CinnabarIsland.asm
@@ -0,0 +1,27 @@
+CinnabarIsland_Object:
+ db $43 ; border block
+
+ db 5 ; warps
+ warp 6, 3, 1, POKEMON_MANSION_1F
+ warp 18, 3, 0, CINNABAR_GYM
+ warp 6, 9, 0, CINNABAR_LAB
+ warp 11, 11, 0, CINNABAR_POKECENTER
+ warp 15, 11, 0, CINNABAR_MART
+
+ db 5 ; signs
+ sign 9, 5, 3 ; CinnabarIslandText3
+ sign 16, 11, 4 ; MartSignText
+ sign 12, 11, 5 ; PokeCenterSignText
+ sign 9, 11, 6 ; CinnabarIslandText6
+ sign 13, 3, 7 ; CinnabarIslandText7
+
+ db 2 ; objects
+ object SPRITE_GIRL, 12, 5, WALK, 2, 1 ; person
+ object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 6, 3, CINNABAR_ISLAND_WIDTH ; POKEMON_MANSION_1F
+ warp_to 18, 3, CINNABAR_ISLAND_WIDTH ; CINNABAR_GYM
+ warp_to 6, 9, CINNABAR_ISLAND_WIDTH ; CINNABAR_LAB
+ warp_to 11, 11, CINNABAR_ISLAND_WIDTH ; CINNABAR_POKECENTER
+ warp_to 15, 11, CINNABAR_ISLAND_WIDTH ; CINNABAR_MART
diff --git a/data/maps/objects/CinnabarLab.asm b/data/maps/objects/CinnabarLab.asm
new file mode 100755
index 00000000..deb5d8ed
--- /dev/null
+++ b/data/maps/objects/CinnabarLab.asm
@@ -0,0 +1,25 @@
+CinnabarLab_Object:
+ db $17 ; border block
+
+ db 5 ; warps
+ warp 2, 7, 2, -1
+ warp 3, 7, 2, -1
+ warp 8, 4, 0, CINNABAR_LAB_TRADE_ROOM
+ warp 12, 4, 0, CINNABAR_LAB_METRONOME_ROOM
+ warp 16, 4, 0, CINNABAR_LAB_FOSSIL_ROOM
+
+ db 4 ; signs
+ sign 3, 2, 2 ; Lab1Text2
+ sign 9, 4, 3 ; Lab1Text3
+ sign 13, 4, 4 ; Lab1Text4
+ sign 17, 4, 5 ; Lab1Text5
+
+ db 1 ; objects
+ object SPRITE_FISHER, 1, 3, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, CINNABAR_LAB_WIDTH
+ warp_to 3, 7, CINNABAR_LAB_WIDTH
+ warp_to 8, 4, CINNABAR_LAB_WIDTH ; CINNABAR_LAB_TRADE_ROOM
+ warp_to 12, 4, CINNABAR_LAB_WIDTH ; CINNABAR_LAB_METRONOME_ROOM
+ warp_to 16, 4, CINNABAR_LAB_WIDTH ; CINNABAR_LAB_FOSSIL_ROOM
diff --git a/data/maps/objects/CinnabarLabFossilRoom.asm b/data/maps/objects/CinnabarLabFossilRoom.asm
new file mode 100755
index 00000000..d31502e6
--- /dev/null
+++ b/data/maps/objects/CinnabarLabFossilRoom.asm
@@ -0,0 +1,16 @@
+CinnabarLabFossilRoom_Object:
+ db $17 ; border block
+
+ db 2 ; warps
+ warp 2, 7, 4, CINNABAR_LAB
+ warp 3, 7, 4, CINNABAR_LAB
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_OAK_AIDE, 5, 2, WALK, 2, 1 ; person
+ object SPRITE_OAK_AIDE, 7, 6, STAY, UP, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, CINNABAR_LAB_FOSSIL_ROOM_WIDTH ; CINNABAR_LAB
+ warp_to 3, 7, CINNABAR_LAB_FOSSIL_ROOM_WIDTH ; CINNABAR_LAB
diff --git a/data/maps/objects/CinnabarLabMetronomeRoom.asm b/data/maps/objects/CinnabarLabMetronomeRoom.asm
new file mode 100755
index 00000000..37f93d43
--- /dev/null
+++ b/data/maps/objects/CinnabarLabMetronomeRoom.asm
@@ -0,0 +1,19 @@
+CinnabarLabMetronomeRoom_Object:
+ db $17 ; border block
+
+ db 2 ; warps
+ warp 2, 7, 3, CINNABAR_LAB
+ warp 3, 7, 3, CINNABAR_LAB
+
+ db 3 ; signs
+ sign 0, 4, 3 ; Lab3Text3
+ sign 1, 4, 4 ; Lab3Text4
+ sign 2, 1, 5 ; Lab3Text5
+
+ db 2 ; objects
+ object SPRITE_OAK_AIDE, 7, 2, STAY, DOWN, 1 ; person
+ object SPRITE_OAK_AIDE, 2, 3, WALK, 2, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, CINNABAR_LAB_METRONOME_ROOM_WIDTH ; CINNABAR_LAB
+ warp_to 3, 7, CINNABAR_LAB_METRONOME_ROOM_WIDTH ; CINNABAR_LAB
diff --git a/data/maps/objects/CinnabarLabTradeRoom.asm b/data/maps/objects/CinnabarLabTradeRoom.asm
new file mode 100755
index 00000000..449cc914
--- /dev/null
+++ b/data/maps/objects/CinnabarLabTradeRoom.asm
@@ -0,0 +1,17 @@
+CinnabarLabTradeRoom_Object:
+ db $17 ; border block
+
+ db 2 ; warps
+ warp 2, 7, 2, CINNABAR_LAB
+ warp 3, 7, 2, CINNABAR_LAB
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 2, STAY, DOWN, 1 ; person
+ object SPRITE_OLD_PERSON, 1, 4, STAY, NONE, 2 ; person
+ object SPRITE_FOULARD_WOMAN, 5, 5, STAY, UP, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, CINNABAR_LAB_TRADE_ROOM_WIDTH ; CINNABAR_LAB
+ warp_to 3, 7, CINNABAR_LAB_TRADE_ROOM_WIDTH ; CINNABAR_LAB
diff --git a/data/maps/objects/CinnabarMart.asm b/data/maps/objects/CinnabarMart.asm
new file mode 100755
index 00000000..af88ddf0
--- /dev/null
+++ b/data/maps/objects/CinnabarMart.asm
@@ -0,0 +1,17 @@
+CinnabarMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 4, -1
+ warp 4, 7, 4, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_ERIKA, 6, 2, STAY, NONE, 2 ; person
+ object SPRITE_OAK_AIDE, 3, 4, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, CINNABAR_MART_WIDTH
+ warp_to 4, 7, CINNABAR_MART_WIDTH
diff --git a/data/maps/objects/CinnabarPokecenter.asm b/data/maps/objects/CinnabarPokecenter.asm
new file mode 100755
index 00000000..9583ef2a
--- /dev/null
+++ b/data/maps/objects/CinnabarPokecenter.asm
@@ -0,0 +1,18 @@
+CinnabarPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 3, -1
+ warp 4, 7, 3, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_LASS, 9, 4, WALK, 0, 2 ; person
+ object SPRITE_GENTLEMAN, 2, 6, STAY, NONE, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, CINNABAR_POKECENTER_WIDTH
+ warp_to 4, 7, CINNABAR_POKECENTER_WIDTH
diff --git a/data/maps/objects/Colosseum.asm b/data/maps/objects/Colosseum.asm
new file mode 100755
index 00000000..18762584
--- /dev/null
+++ b/data/maps/objects/Colosseum.asm
@@ -0,0 +1,9 @@
+Colosseum_Object:
+ db $e ; border block
+
+ db 0 ; warps
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_RED, 2, 2, STAY, 0, 1 ; person
diff --git a/data/maps/objects/CopycatsHouse1F.asm b/data/maps/objects/CopycatsHouse1F.asm
new file mode 100755
index 00000000..cb4dbb0b
--- /dev/null
+++ b/data/maps/objects/CopycatsHouse1F.asm
@@ -0,0 +1,19 @@
+CopycatsHouse1F_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 2, 7, 0, -1
+ warp 3, 7, 0, -1
+ warp 7, 1, 0, COPYCATS_HOUSE_2F
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MOM_GEISHA, 2, 2, STAY, DOWN, 1 ; person
+ object SPRITE_FAT_BALD_GUY, 5, 4, STAY, LEFT, 2 ; person
+ object SPRITE_CLEFAIRY, 1, 4, WALK, 1, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, COPYCATS_HOUSE_1F_WIDTH
+ warp_to 3, 7, COPYCATS_HOUSE_1F_WIDTH
+ warp_to 7, 1, COPYCATS_HOUSE_1F_WIDTH ; COPYCATS_HOUSE_2F
diff --git a/data/maps/objects/CopycatsHouse2F.asm b/data/maps/objects/CopycatsHouse2F.asm
new file mode 100755
index 00000000..18b56419
--- /dev/null
+++ b/data/maps/objects/CopycatsHouse2F.asm
@@ -0,0 +1,19 @@
+CopycatsHouse2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 1, 2, COPYCATS_HOUSE_1F
+
+ db 2 ; signs
+ sign 3, 5, 6 ; CopycatsHouse2FText6
+ sign 0, 1, 7 ; CopycatsHouse2FText7
+
+ db 5 ; objects
+ object SPRITE_BRUNETTE_GIRL, 4, 3, WALK, 0, 1 ; person
+ object SPRITE_BIRD, 4, 6, WALK, 2, 2 ; person
+ object SPRITE_SLOWBRO, 5, 1, STAY, DOWN, 3 ; person
+ object SPRITE_BIRD, 2, 0, STAY, DOWN, 4 ; person
+ object SPRITE_CLEFAIRY, 1, 6, STAY, RIGHT, 5 ; person
+
+ ; warp-to
+ warp_to 7, 1, COPYCATS_HOUSE_2F_WIDTH ; COPYCATS_HOUSE_1F
diff --git a/data/maps/objects/Daycare.asm b/data/maps/objects/Daycare.asm
new file mode 100755
index 00000000..c58c83e4
--- /dev/null
+++ b/data/maps/objects/Daycare.asm
@@ -0,0 +1,15 @@
+Daycare_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 4, -1
+ warp 3, 7, 4, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GENTLEMAN, 2, 3, STAY, RIGHT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, DAYCARE_WIDTH
+ warp_to 3, 7, DAYCARE_WIDTH
diff --git a/data/maps/objects/DiglettsCave.asm b/data/maps/objects/DiglettsCave.asm
new file mode 100755
index 00000000..b4fd0af8
--- /dev/null
+++ b/data/maps/objects/DiglettsCave.asm
@@ -0,0 +1,14 @@
+DiglettsCave_Object:
+ db $19 ; border block
+
+ db 2 ; warps
+ warp 5, 5, 2, DIGLETTS_CAVE_ROUTE_2
+ warp 37, 31, 2, DIGLETTS_CAVE_ROUTE_11
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 5, 5, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_ROUTE_2
+ warp_to 37, 31, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_ROUTE_11
diff --git a/data/maps/objects/DiglettsCaveRoute11.asm b/data/maps/objects/DiglettsCaveRoute11.asm
new file mode 100755
index 00000000..a4c70f06
--- /dev/null
+++ b/data/maps/objects/DiglettsCaveRoute11.asm
@@ -0,0 +1,17 @@
+DiglettsCaveRoute11_Object:
+ db $7d ; border block
+
+ db 3 ; warps
+ warp 2, 7, 4, -1
+ warp 3, 7, 4, -1
+ warp 4, 4, 1, DIGLETTS_CAVE
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GAMBLER, 2, 3, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, DIGLETTS_CAVE_ROUTE_11_WIDTH
+ warp_to 3, 7, DIGLETTS_CAVE_ROUTE_11_WIDTH
+ warp_to 4, 4, DIGLETTS_CAVE_ROUTE_11_WIDTH ; DIGLETTS_CAVE
diff --git a/data/maps/objects/DiglettsCaveRoute2.asm b/data/maps/objects/DiglettsCaveRoute2.asm
new file mode 100755
index 00000000..0567fee6
--- /dev/null
+++ b/data/maps/objects/DiglettsCaveRoute2.asm
@@ -0,0 +1,17 @@
+DiglettsCaveRoute2_Object:
+ db $7d ; border block
+
+ db 3 ; warps
+ warp 2, 7, 0, -1
+ warp 3, 7, 0, -1
+ warp 4, 4, 0, DIGLETTS_CAVE
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FISHER, 3, 3, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, DIGLETTS_CAVE_ROUTE_2_WIDTH
+ warp_to 3, 7, DIGLETTS_CAVE_ROUTE_2_WIDTH
+ warp_to 4, 4, DIGLETTS_CAVE_ROUTE_2_WIDTH ; DIGLETTS_CAVE
diff --git a/data/maps/objects/FightingDojo.asm b/data/maps/objects/FightingDojo.asm
new file mode 100755
index 00000000..fdc7b838
--- /dev/null
+++ b/data/maps/objects/FightingDojo.asm
@@ -0,0 +1,21 @@
+FightingDojo_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 11, 1, -1
+ warp 5, 11, 1, -1
+
+ db 0 ; signs
+
+ db 7 ; objects
+ object SPRITE_HIKER, 5, 3, STAY, DOWN, 1, OPP_BLACKBELT, 1
+ object SPRITE_HIKER, 3, 4, STAY, RIGHT, 2, OPP_BLACKBELT, 2
+ object SPRITE_HIKER, 3, 6, STAY, RIGHT, 3, OPP_BLACKBELT, 3
+ object SPRITE_HIKER, 5, 5, STAY, LEFT, 4, OPP_BLACKBELT, 4
+ object SPRITE_HIKER, 5, 7, STAY, LEFT, 5, OPP_BLACKBELT, 5
+ object SPRITE_BALL, 4, 1, STAY, NONE, 6 ; person
+ object SPRITE_BALL, 5, 1, STAY, NONE, 7 ; person
+
+ ; warp-to
+ warp_to 4, 11, FIGHTING_DOJO_WIDTH
+ warp_to 5, 11, FIGHTING_DOJO_WIDTH
diff --git a/data/maps/objects/FuchsiaBillsGrandpasHouse.asm b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm
new file mode 100755
index 00000000..363b56f9
--- /dev/null
+++ b/data/maps/objects/FuchsiaBillsGrandpasHouse.asm
@@ -0,0 +1,17 @@
+FuchsiaBillsGrandpasHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 1, -1
+ warp 3, 7, 1, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MOM_GEISHA, 2, 3, STAY, RIGHT, 1 ; person
+ object SPRITE_GAMBLER, 7, 2, STAY, UP, 2 ; person
+ object SPRITE_BUG_CATCHER, 5, 5, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, FUCHSIA_BILLS_GRANDPAS_HOUSE_WIDTH
+ warp_to 3, 7, FUCHSIA_BILLS_GRANDPAS_HOUSE_WIDTH
diff --git a/data/maps/objects/FuchsiaCity.asm b/data/maps/objects/FuchsiaCity.asm
new file mode 100755
index 00000000..09c97b02
--- /dev/null
+++ b/data/maps/objects/FuchsiaCity.asm
@@ -0,0 +1,52 @@
+FuchsiaCity_Object:
+ db $f ; border block
+
+ db 9 ; warps
+ warp 5, 13, 0, FUCHSIA_MART
+ warp 11, 27, 0, FUCHSIA_BILLS_GRANDPAS_HOUSE
+ warp 19, 27, 0, FUCHSIA_POKECENTER
+ warp 27, 27, 0, WARDENS_HOUSE
+ warp 18, 3, 0, SAFARI_ZONE_GATE
+ warp 5, 27, 0, FUCHSIA_GYM
+ warp 22, 13, 0, FUCHSIA_MEETING_ROOM
+ warp 31, 27, 1, FUCHSIA_GOOD_ROD_HOUSE
+ warp 31, 24, 0, FUCHSIA_GOOD_ROD_HOUSE
+
+ db 14 ; signs
+ sign 15, 23, 11 ; FuchsiaCityText11
+ sign 25, 15, 12 ; FuchsiaCityText12
+ sign 17, 5, 13 ; FuchsiaCityText13
+ sign 6, 13, 14 ; MartSignText
+ sign 20, 27, 15 ; PokeCenterSignText
+ sign 27, 29, 16 ; FuchsiaCityText16
+ sign 21, 15, 17 ; FuchsiaCityText17
+ sign 5, 29, 18 ; FuchsiaCityText18
+ sign 33, 7, 19 ; FuchsiaCityText19
+ sign 27, 7, 20 ; FuchsiaCityText20
+ sign 13, 7, 21 ; FuchsiaCityText21
+ sign 31, 13, 22 ; FuchsiaCityText22
+ sign 13, 15, 23 ; FuchsiaCityText23
+ sign 7, 7, 24 ; FuchsiaCityText24
+
+ db 10 ; objects
+ object SPRITE_BUG_CATCHER, 10, 12, WALK, 2, 1 ; person
+ object SPRITE_GAMBLER, 28, 17, WALK, 2, 2 ; person
+ object SPRITE_FISHER2, 30, 14, STAY, DOWN, 3 ; person
+ object SPRITE_BUG_CATCHER, 24, 8, STAY, UP, 4 ; person
+ object SPRITE_CLEFAIRY, 31, 5, WALK, 0, 5 ; person
+ object SPRITE_BALL, 25, 6, STAY, NONE, 6 ; person
+ object SPRITE_SLOWBRO, 12, 6, WALK, 2, 7 ; person
+ object SPRITE_SLOWBRO, 30, 12, WALK, 2, 8 ; person
+ object SPRITE_SEEL, 8, 17, WALK, 0, 9 ; person
+ object SPRITE_OMANYTE, 6, 5, STAY, NONE, 10 ; person
+
+ ; warp-to
+ warp_to 5, 13, FUCHSIA_CITY_WIDTH ; FUCHSIA_MART
+ warp_to 11, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_BILLS_GRANDPAS_HOUSE
+ warp_to 19, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_POKECENTER
+ warp_to 27, 27, FUCHSIA_CITY_WIDTH ; WARDENS_HOUSE
+ warp_to 18, 3, FUCHSIA_CITY_WIDTH ; SAFARI_ZONE_GATE
+ warp_to 5, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_GYM
+ warp_to 22, 13, FUCHSIA_CITY_WIDTH ; FUCHSIA_MEETING_ROOM
+ warp_to 31, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_GOOD_ROD_HOUSE
+ warp_to 31, 24, FUCHSIA_CITY_WIDTH ; FUCHSIA_GOOD_ROD_HOUSE
diff --git a/data/maps/objects/FuchsiaGoodRodHouse.asm b/data/maps/objects/FuchsiaGoodRodHouse.asm
new file mode 100755
index 00000000..390447c8
--- /dev/null
+++ b/data/maps/objects/FuchsiaGoodRodHouse.asm
@@ -0,0 +1,17 @@
+FuchsiaGoodRodHouse_Object:
+ db $c ; border block
+
+ db 3 ; warps
+ warp 2, 0, 8, -1
+ warp 2, 7, 7, -1
+ warp 3, 7, 7, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FISHER, 5, 3, STAY, RIGHT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 0, FUCHSIA_GOOD_ROD_HOUSE_WIDTH
+ warp_to 2, 7, FUCHSIA_GOOD_ROD_HOUSE_WIDTH
+ warp_to 3, 7, FUCHSIA_GOOD_ROD_HOUSE_WIDTH
diff --git a/data/maps/objects/FuchsiaGym.asm b/data/maps/objects/FuchsiaGym.asm
new file mode 100755
index 00000000..5d707d53
--- /dev/null
+++ b/data/maps/objects/FuchsiaGym.asm
@@ -0,0 +1,22 @@
+FuchsiaGym_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 17, 5, -1
+ warp 5, 17, 5, -1
+
+ db 0 ; signs
+
+ db 8 ; objects
+ object SPRITE_BLACKBELT, 4, 10, STAY, DOWN, 1, OPP_KOGA, 1
+ object SPRITE_ROCKER, 8, 13, STAY, DOWN, 2, OPP_JUGGLER, 7
+ object SPRITE_ROCKER, 7, 8, STAY, RIGHT, 3, OPP_JUGGLER, 3
+ object SPRITE_ROCKER, 1, 12, STAY, DOWN, 4, OPP_JUGGLER, 8
+ object SPRITE_ROCKER, 3, 5, STAY, UP, 5, OPP_TAMER, 1
+ object SPRITE_ROCKER, 8, 2, STAY, DOWN, 6, OPP_TAMER, 2
+ object SPRITE_ROCKER, 2, 7, STAY, LEFT, 7, OPP_JUGGLER, 4
+ object SPRITE_GYM_HELPER, 7, 15, STAY, DOWN, 8 ; person
+
+ ; warp-to
+ warp_to 4, 17, FUCHSIA_GYM_WIDTH
+ warp_to 5, 17, FUCHSIA_GYM_WIDTH
diff --git a/data/maps/objects/FuchsiaMart.asm b/data/maps/objects/FuchsiaMart.asm
new file mode 100755
index 00000000..cfa71d8d
--- /dev/null
+++ b/data/maps/objects/FuchsiaMart.asm
@@ -0,0 +1,17 @@
+FuchsiaMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 0, -1
+ warp 4, 7, 0, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_FAT_BALD_GUY, 4, 2, STAY, NONE, 2 ; person
+ object SPRITE_LASS, 6, 5, WALK, 1, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, FUCHSIA_MART_WIDTH
+ warp_to 4, 7, FUCHSIA_MART_WIDTH
diff --git a/data/maps/objects/FuchsiaMeetingRoom.asm b/data/maps/objects/FuchsiaMeetingRoom.asm
new file mode 100755
index 00000000..9130d920
--- /dev/null
+++ b/data/maps/objects/FuchsiaMeetingRoom.asm
@@ -0,0 +1,17 @@
+FuchsiaMeetingRoom_Object:
+ db $17 ; border block
+
+ db 2 ; warps
+ warp 4, 7, 6, -1
+ warp 5, 7, 6, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_WHITE_PLAYER, 4, 1, STAY, DOWN, 1 ; person
+ object SPRITE_WHITE_PLAYER, 0, 2, STAY, UP, 2 ; person
+ object SPRITE_WHITE_PLAYER, 10, 1, STAY, DOWN, 3 ; person
+
+ ; warp-to
+ warp_to 4, 7, FUCHSIA_MEETING_ROOM_WIDTH
+ warp_to 5, 7, FUCHSIA_MEETING_ROOM_WIDTH
diff --git a/data/maps/objects/FuchsiaPokecenter.asm b/data/maps/objects/FuchsiaPokecenter.asm
new file mode 100755
index 00000000..73dc529d
--- /dev/null
+++ b/data/maps/objects/FuchsiaPokecenter.asm
@@ -0,0 +1,18 @@
+FuchsiaPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 2, -1
+ warp 4, 7, 2, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_ROCKER, 2, 3, STAY, NONE, 2 ; person
+ object SPRITE_LASS, 6, 5, WALK, 2, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, FUCHSIA_POKECENTER_WIDTH
+ warp_to 4, 7, FUCHSIA_POKECENTER_WIDTH
diff --git a/data/maps/objects/GameCorner.asm b/data/maps/objects/GameCorner.asm
new file mode 100755
index 00000000..2704f6ab
--- /dev/null
+++ b/data/maps/objects/GameCorner.asm
@@ -0,0 +1,28 @@
+GameCorner_Object:
+ db $f ; border block
+
+ db 3 ; warps
+ warp 15, 17, 7, -1
+ warp 16, 17, 7, -1
+ warp 17, 4, 1, ROCKET_HIDEOUT_B1F
+
+ db 1 ; signs
+ sign 9, 4, 12 ; CeladonGameCornerText12
+
+ db 11 ; objects
+ object SPRITE_FOULARD_WOMAN, 2, 6, STAY, DOWN, 1 ; person
+ object SPRITE_MART_GUY, 5, 6, STAY, DOWN, 2 ; person
+ object SPRITE_FAT_BALD_GUY, 2, 10, STAY, LEFT, 3 ; person
+ object SPRITE_FOULARD_WOMAN, 2, 13, STAY, LEFT, 4 ; person
+ object SPRITE_FISHER, 5, 11, STAY, RIGHT, 5 ; person
+ object SPRITE_MOM_GEISHA, 8, 11, STAY, LEFT, 6 ; person
+ object SPRITE_GYM_HELPER, 8, 14, STAY, LEFT, 7 ; person
+ object SPRITE_GAMBLER, 11, 15, STAY, RIGHT, 8 ; person
+ object SPRITE_MART_GUY, 14, 11, STAY, LEFT, 9 ; person
+ object SPRITE_GENTLEMAN, 17, 13, STAY, RIGHT, 10 ; person
+ object SPRITE_ROCKET, 9, 5, STAY, UP, 11, OPP_ROCKET, 7
+
+ ; warp-to
+ warp_to 15, 17, GAME_CORNER_WIDTH
+ warp_to 16, 17, GAME_CORNER_WIDTH
+ warp_to 17, 4, GAME_CORNER_WIDTH ; ROCKET_HIDEOUT_B1F
diff --git a/data/maps/objects/GameCornerPrizeRoom.asm b/data/maps/objects/GameCornerPrizeRoom.asm
new file mode 100755
index 00000000..35cd3ac8
--- /dev/null
+++ b/data/maps/objects/GameCornerPrizeRoom.asm
@@ -0,0 +1,19 @@
+GameCornerPrizeRoom_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 4, 7, 9, -1
+ warp 5, 7, 9, -1
+
+ db 3 ; signs
+ sign 2, 2, 3 ; CeladonPrizeRoomText3
+ sign 4, 2, 4 ; CeladonPrizeRoomText4
+ sign 6, 2, 5 ; CeladonPrizeRoomText5
+
+ db 2 ; objects
+ object SPRITE_BALDING_GUY, 1, 4, STAY, NONE, 1 ; person
+ object SPRITE_GAMBLER, 7, 3, WALK, 2, 2 ; person
+
+ ; warp-to
+ warp_to 4, 7, GAME_CORNER_PRIZE_ROOM_WIDTH
+ warp_to 5, 7, GAME_CORNER_PRIZE_ROOM_WIDTH
diff --git a/data/maps/objects/HallOfFame.asm b/data/maps/objects/HallOfFame.asm
new file mode 100755
index 00000000..3762d871
--- /dev/null
+++ b/data/maps/objects/HallOfFame.asm
@@ -0,0 +1,15 @@
+HallOfFame_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 7, 2, CHAMPIONS_ROOM
+ warp 5, 7, 3, CHAMPIONS_ROOM
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_OAK, 5, 2, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 4, 7, HALL_OF_FAME_WIDTH ; CHAMPIONS_ROOM
+ warp_to 5, 7, HALL_OF_FAME_WIDTH ; CHAMPIONS_ROOM
diff --git a/data/maps/objects/IndigoPlateau.asm b/data/maps/objects/IndigoPlateau.asm
new file mode 100755
index 00000000..1447be11
--- /dev/null
+++ b/data/maps/objects/IndigoPlateau.asm
@@ -0,0 +1,14 @@
+IndigoPlateau_Object:
+ db $e ; border block
+
+ db 2 ; warps
+ warp 9, 5, 0, INDIGO_PLATEAU_LOBBY
+ warp 10, 5, 0, INDIGO_PLATEAU_LOBBY
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 9, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY
+ warp_to 10, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY
diff --git a/data/maps/objects/IndigoPlateauLobby.asm b/data/maps/objects/IndigoPlateauLobby.asm
new file mode 100755
index 00000000..ea113a16
--- /dev/null
+++ b/data/maps/objects/IndigoPlateauLobby.asm
@@ -0,0 +1,21 @@
+IndigoPlateauLobby_Object:
+ db $0 ; border block
+
+ db 3 ; warps
+ warp 7, 11, 0, -1
+ warp 8, 11, 1, -1
+ warp 8, 0, 0, LORELEIS_ROOM
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_NURSE, 7, 5, STAY, DOWN, 1 ; person
+ object SPRITE_GYM_HELPER, 4, 9, STAY, RIGHT, 2 ; person
+ object SPRITE_LASS, 5, 1, STAY, DOWN, 3 ; person
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 4 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 13, 6, STAY, DOWN, 5 ; person
+
+ ; warp-to
+ warp_to 7, 11, INDIGO_PLATEAU_LOBBY_WIDTH
+ warp_to 8, 11, INDIGO_PLATEAU_LOBBY_WIDTH
+ warp_to 8, 0, INDIGO_PLATEAU_LOBBY_WIDTH ; LORELEIS_ROOM
diff --git a/data/maps/objects/LancesRoom.asm b/data/maps/objects/LancesRoom.asm
new file mode 100755
index 00000000..6f22631a
--- /dev/null
+++ b/data/maps/objects/LancesRoom.asm
@@ -0,0 +1,17 @@
+LancesRoom_Object:
+ db $3 ; border block
+
+ db 3 ; warps
+ warp 24, 16, 2, AGATHAS_ROOM
+ warp 5, 0, 0, CHAMPIONS_ROOM
+ warp 6, 0, 0, CHAMPIONS_ROOM
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_LANCE, 6, 1, STAY, DOWN, 1, OPP_LANCE, 1
+
+ ; warp-to
+ warp_to 24, 16, LANCES_ROOM_WIDTH ; AGATHAS_ROOM
+ warp_to 5, 0, LANCES_ROOM_WIDTH ; CHAMPIONS_ROOM
+ warp_to 6, 0, LANCES_ROOM_WIDTH ; CHAMPIONS_ROOM
diff --git a/data/maps/objects/LavenderCuboneHouse.asm b/data/maps/objects/LavenderCuboneHouse.asm
new file mode 100755
index 00000000..96f1b3ba
--- /dev/null
+++ b/data/maps/objects/LavenderCuboneHouse.asm
@@ -0,0 +1,16 @@
+LavenderCuboneHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 4, -1
+ warp 3, 7, 4, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_SLOWBRO, 3, 5, STAY, UP, 1 ; person
+ object SPRITE_BRUNETTE_GIRL, 2, 4, STAY, RIGHT, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, LAVENDER_CUBONE_HOUSE_WIDTH
+ warp_to 3, 7, LAVENDER_CUBONE_HOUSE_WIDTH
diff --git a/data/maps/objects/LavenderMart.asm b/data/maps/objects/LavenderMart.asm
new file mode 100755
index 00000000..df14ad39
--- /dev/null
+++ b/data/maps/objects/LavenderMart.asm
@@ -0,0 +1,17 @@
+LavenderMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 3, -1
+ warp 4, 7, 3, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_BALDING_GUY, 3, 4, STAY, NONE, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 7, 2, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, LAVENDER_MART_WIDTH
+ warp_to 4, 7, LAVENDER_MART_WIDTH
diff --git a/data/maps/objects/LavenderPokecenter.asm b/data/maps/objects/LavenderPokecenter.asm
new file mode 100755
index 00000000..89e25571
--- /dev/null
+++ b/data/maps/objects/LavenderPokecenter.asm
@@ -0,0 +1,18 @@
+LavenderPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 0, -1
+ warp 4, 7, 0, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_GENTLEMAN, 5, 3, STAY, NONE, 2 ; person
+ object SPRITE_LITTLE_GIRL, 2, 6, WALK, 1, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, LAVENDER_POKECENTER_WIDTH
+ warp_to 4, 7, LAVENDER_POKECENTER_WIDTH
diff --git a/data/maps/objects/LavenderTown.asm b/data/maps/objects/LavenderTown.asm
new file mode 100755
index 00000000..4aead666
--- /dev/null
+++ b/data/maps/objects/LavenderTown.asm
@@ -0,0 +1,31 @@
+LavenderTown_Object:
+ db $2c ; border block
+
+ db 6 ; warps
+ warp 3, 5, 0, LAVENDER_POKECENTER
+ warp 14, 5, 0, POKEMON_TOWER_1F
+ warp 7, 9, 0, MR_FUJIS_HOUSE
+ warp 15, 13, 0, LAVENDER_MART
+ warp 3, 13, 0, LAVENDER_CUBONE_HOUSE
+ warp 7, 13, 0, NAME_RATERS_HOUSE
+
+ db 6 ; signs
+ sign 11, 9, 4 ; LavenderTownText4
+ sign 9, 3, 5 ; LavenderTownText5
+ sign 16, 13, 6 ; MartSignText
+ sign 4, 5, 7 ; PokeCenterSignText
+ sign 5, 9, 8 ; LavenderTownText8
+ sign 17, 7, 9 ; LavenderTownText9
+
+ db 3 ; objects
+ object SPRITE_LITTLE_GIRL, 15, 9, WALK, 0, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 9, 10, STAY, NONE, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 8, 7, WALK, 2, 3 ; person
+
+ ; warp-to
+ warp_to 3, 5, LAVENDER_TOWN_WIDTH ; LAVENDER_POKECENTER
+ warp_to 14, 5, LAVENDER_TOWN_WIDTH ; POKEMON_TOWER_1F
+ warp_to 7, 9, LAVENDER_TOWN_WIDTH ; MR_FUJIS_HOUSE
+ warp_to 15, 13, LAVENDER_TOWN_WIDTH ; LAVENDER_MART
+ warp_to 3, 13, LAVENDER_TOWN_WIDTH ; LAVENDER_CUBONE_HOUSE
+ warp_to 7, 13, LAVENDER_TOWN_WIDTH ; NAME_RATERS_HOUSE
diff --git a/data/maps/objects/LoreleisRoom.asm b/data/maps/objects/LoreleisRoom.asm
new file mode 100755
index 00000000..06450bb4
--- /dev/null
+++ b/data/maps/objects/LoreleisRoom.asm
@@ -0,0 +1,19 @@
+LoreleisRoom_Object:
+ db $3 ; border block
+
+ db 4 ; warps
+ warp 4, 11, 2, INDIGO_PLATEAU_LOBBY
+ warp 5, 11, 2, INDIGO_PLATEAU_LOBBY
+ warp 4, 0, 0, BRUNOS_ROOM
+ warp 5, 0, 1, BRUNOS_ROOM
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_LORELEI, 5, 2, STAY, DOWN, 1, OPP_LORELEI, 1
+
+ ; warp-to
+ warp_to 4, 11, LORELEIS_ROOM_WIDTH ; INDIGO_PLATEAU_LOBBY
+ warp_to 5, 11, LORELEIS_ROOM_WIDTH ; INDIGO_PLATEAU_LOBBY
+ warp_to 4, 0, LORELEIS_ROOM_WIDTH ; BRUNOS_ROOM
+ warp_to 5, 0, LORELEIS_ROOM_WIDTH ; BRUNOS_ROOM
diff --git a/data/maps/objects/MrFujisHouse.asm b/data/maps/objects/MrFujisHouse.asm
new file mode 100755
index 00000000..5b6ca2a6
--- /dev/null
+++ b/data/maps/objects/MrFujisHouse.asm
@@ -0,0 +1,20 @@
+MrFujisHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 2, -1
+ warp 3, 7, 2, -1
+
+ db 0 ; signs
+
+ db 6 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 5, STAY, NONE, 1 ; person
+ object SPRITE_LITTLE_GIRL, 6, 3, STAY, DOWN, 2 ; person
+ object SPRITE_SLOWBRO, 6, 4, STAY, UP, 3 ; person
+ object SPRITE_SLOWBRO, 1, 3, STAY, NONE, 4 ; person
+ object SPRITE_MR_FUJI, 3, 1, STAY, NONE, 5 ; person
+ object SPRITE_BOOK_MAP_DEX, 3, 3, STAY, NONE, 6 ; person
+
+ ; warp-to
+ warp_to 2, 7, MR_FUJIS_HOUSE_WIDTH
+ warp_to 3, 7, MR_FUJIS_HOUSE_WIDTH
diff --git a/data/maps/objects/MrPsychicsHouse.asm b/data/maps/objects/MrPsychicsHouse.asm
new file mode 100755
index 00000000..01f9e11c
--- /dev/null
+++ b/data/maps/objects/MrPsychicsHouse.asm
@@ -0,0 +1,15 @@
+MrPsychicsHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 7, -1
+ warp 3, 7, 7, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FISHER, 5, 3, STAY, LEFT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, MR_PSYCHICS_HOUSE_WIDTH
+ warp_to 3, 7, MR_PSYCHICS_HOUSE_WIDTH
diff --git a/data/maps/objects/MtMoon1F.asm b/data/maps/objects/MtMoon1F.asm
new file mode 100755
index 00000000..56820161
--- /dev/null
+++ b/data/maps/objects/MtMoon1F.asm
@@ -0,0 +1,34 @@
+MtMoon1F_Object:
+ db $3 ; border block
+
+ db 5 ; warps
+ warp 14, 35, 1, -1
+ warp 15, 35, 1, -1
+ warp 5, 5, 0, MT_MOON_B1F
+ warp 17, 11, 2, MT_MOON_B1F
+ warp 25, 15, 3, MT_MOON_B1F
+
+ db 1 ; signs
+ sign 15, 23, 14 ; MtMoon1Text14
+
+ db 13 ; objects
+ object SPRITE_HIKER, 5, 6, STAY, DOWN, 1, OPP_HIKER, 1
+ object SPRITE_BUG_CATCHER, 12, 16, STAY, RIGHT, 2, OPP_YOUNGSTER, 3
+ object SPRITE_LASS, 30, 4, STAY, DOWN, 3, OPP_LASS, 5
+ object SPRITE_BLACK_HAIR_BOY_2, 24, 31, STAY, UP, 4, OPP_SUPER_NERD, 1
+ object SPRITE_LASS, 16, 23, STAY, DOWN, 5, OPP_LASS, 6
+ object SPRITE_BUG_CATCHER, 7, 22, STAY, DOWN, 6, OPP_BUG_CATCHER, 7
+ object SPRITE_BUG_CATCHER, 30, 27, STAY, RIGHT, 7, OPP_BUG_CATCHER, 8
+ object SPRITE_BALL, 2, 20, STAY, NONE, 8, POTION
+ object SPRITE_BALL, 2, 2, STAY, NONE, 9, MOON_STONE
+ object SPRITE_BALL, 35, 31, STAY, NONE, 10, RARE_CANDY
+ object SPRITE_BALL, 36, 23, STAY, NONE, 11, ESCAPE_ROPE
+ object SPRITE_BALL, 20, 33, STAY, NONE, 12, POTION
+ object SPRITE_BALL, 5, 32, STAY, NONE, 13, TM_12
+
+ ; warp-to
+ warp_to 14, 35, MT_MOON_1F_WIDTH
+ warp_to 15, 35, MT_MOON_1F_WIDTH
+ warp_to 5, 5, MT_MOON_1F_WIDTH ; MT_MOON_B1F
+ warp_to 17, 11, MT_MOON_1F_WIDTH ; MT_MOON_B1F
+ warp_to 25, 15, MT_MOON_1F_WIDTH ; MT_MOON_B1F
diff --git a/data/maps/objects/MtMoonB1F.asm b/data/maps/objects/MtMoonB1F.asm
new file mode 100755
index 00000000..a8365ba7
--- /dev/null
+++ b/data/maps/objects/MtMoonB1F.asm
@@ -0,0 +1,26 @@
+MtMoonB1F_Object:
+ db $3 ; border block
+
+ db 8 ; warps
+ warp 5, 5, 2, MT_MOON_1F
+ warp 17, 11, 0, MT_MOON_B2F
+ warp 25, 9, 3, MT_MOON_1F
+ warp 25, 15, 4, MT_MOON_1F
+ warp 21, 17, 1, MT_MOON_B2F
+ warp 13, 27, 2, MT_MOON_B2F
+ warp 23, 3, 3, MT_MOON_B2F
+ warp 27, 3, 2, -1
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 5, 5, MT_MOON_B1F_WIDTH ; MT_MOON_1F
+ warp_to 17, 11, MT_MOON_B1F_WIDTH ; MT_MOON_B2F
+ warp_to 25, 9, MT_MOON_B1F_WIDTH ; MT_MOON_1F
+ warp_to 25, 15, MT_MOON_B1F_WIDTH ; MT_MOON_1F
+ warp_to 21, 17, MT_MOON_B1F_WIDTH ; MT_MOON_B2F
+ warp_to 13, 27, MT_MOON_B1F_WIDTH ; MT_MOON_B2F
+ warp_to 23, 3, MT_MOON_B1F_WIDTH ; MT_MOON_B2F
+ warp_to 27, 3, MT_MOON_B1F_WIDTH
diff --git a/data/maps/objects/MtMoonB2F.asm b/data/maps/objects/MtMoonB2F.asm
new file mode 100755
index 00000000..27b2383f
--- /dev/null
+++ b/data/maps/objects/MtMoonB2F.asm
@@ -0,0 +1,27 @@
+MtMoonB2F_Object:
+ db $3 ; border block
+
+ db 4 ; warps
+ warp 25, 9, 1, MT_MOON_B1F
+ warp 21, 17, 4, MT_MOON_B1F
+ warp 15, 27, 5, MT_MOON_B1F
+ warp 5, 7, 6, MT_MOON_B1F
+
+ db 0 ; signs
+
+ db 9 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 12, 8, STAY, RIGHT, 1, OPP_SUPER_NERD, 2
+ object SPRITE_ROCKET, 11, 16, STAY, DOWN, 2, OPP_ROCKET, 1
+ object SPRITE_ROCKET, 15, 22, STAY, DOWN, 3, OPP_ROCKET, 2
+ object SPRITE_ROCKET, 29, 11, STAY, UP, 4, OPP_ROCKET, 3
+ object SPRITE_ROCKET, 29, 17, STAY, LEFT, 5, OPP_ROCKET, 4
+ object SPRITE_OMANYTE, 12, 6, STAY, NONE, 6 ; person
+ object SPRITE_OMANYTE, 13, 6, STAY, NONE, 7 ; person
+ object SPRITE_BALL, 25, 21, STAY, NONE, 8, HP_UP
+ object SPRITE_BALL, 29, 5, STAY, NONE, 9, TM_01
+
+ ; warp-to
+ warp_to 25, 9, MT_MOON_B2F_WIDTH ; MT_MOON_B1F
+ warp_to 21, 17, MT_MOON_B2F_WIDTH ; MT_MOON_B1F
+ warp_to 15, 27, MT_MOON_B2F_WIDTH ; MT_MOON_B1F
+ warp_to 5, 7, MT_MOON_B2F_WIDTH ; MT_MOON_B1F
diff --git a/data/maps/objects/MtMoonPokecenter.asm b/data/maps/objects/MtMoonPokecenter.asm
new file mode 100755
index 00000000..b23703e6
--- /dev/null
+++ b/data/maps/objects/MtMoonPokecenter.asm
@@ -0,0 +1,20 @@
+MtMoonPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 0, -1
+ warp 4, 7, 0, -1
+
+ db 0 ; signs
+
+ db 6 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_BUG_CATCHER, 4, 3, STAY, UP, 2 ; person
+ object SPRITE_GENTLEMAN, 7, 3, STAY, UP, 3 ; person
+ object SPRITE_FAT_BALD_GUY, 10, 6, WALK, 2, 4 ; person
+ object SPRITE_CLIPBOARD, 7, 2, STAY, NONE, 5 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 6 ; person
+
+ ; warp-to
+ warp_to 3, 7, MT_MOON_POKECENTER_WIDTH
+ warp_to 4, 7, MT_MOON_POKECENTER_WIDTH
diff --git a/data/maps/objects/Museum1F.asm b/data/maps/objects/Museum1F.asm
new file mode 100755
index 00000000..1cfd2c68
--- /dev/null
+++ b/data/maps/objects/Museum1F.asm
@@ -0,0 +1,25 @@
+Museum1F_Object:
+ db $a ; border block
+
+ db 5 ; warps
+ warp 10, 7, 0, -1
+ warp 11, 7, 0, -1
+ warp 16, 7, 1, -1
+ warp 17, 7, 1, -1
+ warp 7, 7, 0, MUSEUM_2F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_OAK_AIDE, 12, 4, STAY, LEFT, 1 ; person
+ object SPRITE_GAMBLER, 1, 4, STAY, NONE, 2 ; person
+ object SPRITE_OAK_AIDE, 15, 2, STAY, DOWN, 3 ; person
+ object SPRITE_OAK_AIDE, 17, 4, STAY, NONE, 4 ; person
+ object SPRITE_OLD_AMBER, 16, 2, STAY, NONE, 5 ; person
+
+ ; warp-to
+ warp_to 10, 7, MUSEUM_1F_WIDTH
+ warp_to 11, 7, MUSEUM_1F_WIDTH
+ warp_to 16, 7, MUSEUM_1F_WIDTH
+ warp_to 17, 7, MUSEUM_1F_WIDTH
+ warp_to 7, 7, MUSEUM_1F_WIDTH ; MUSEUM_2F
diff --git a/data/maps/objects/Museum2F.asm b/data/maps/objects/Museum2F.asm
new file mode 100755
index 00000000..80815820
--- /dev/null
+++ b/data/maps/objects/Museum2F.asm
@@ -0,0 +1,19 @@
+Museum2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 7, 4, MUSEUM_1F
+
+ db 2 ; signs
+ sign 11, 2, 6 ; Museum2FText6
+ sign 2, 5, 7 ; Museum2FText7
+
+ db 5 ; objects
+ object SPRITE_BUG_CATCHER, 1, 7, WALK, 2, 1 ; person
+ object SPRITE_OLD_PERSON, 0, 5, STAY, DOWN, 2 ; person
+ object SPRITE_OAK_AIDE, 7, 5, STAY, DOWN, 3 ; person
+ object SPRITE_BRUNETTE_GIRL, 11, 5, STAY, NONE, 4 ; person
+ object SPRITE_HIKER, 12, 5, STAY, DOWN, 5 ; person
+
+ ; warp-to
+ warp_to 7, 7, MUSEUM_2F_WIDTH ; MUSEUM_1F
diff --git a/data/maps/objects/NameRatersHouse.asm b/data/maps/objects/NameRatersHouse.asm
new file mode 100755
index 00000000..da95bc43
--- /dev/null
+++ b/data/maps/objects/NameRatersHouse.asm
@@ -0,0 +1,15 @@
+NameRatersHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 5, -1
+ warp 3, 7, 5, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_MR_MASTERBALL, 5, 3, STAY, LEFT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, NAME_RATERS_HOUSE_WIDTH
+ warp_to 3, 7, NAME_RATERS_HOUSE_WIDTH
diff --git a/data/maps/objects/OaksLab.asm b/data/maps/objects/OaksLab.asm
new file mode 100755
index 00000000..fa78ccdf
--- /dev/null
+++ b/data/maps/objects/OaksLab.asm
@@ -0,0 +1,25 @@
+OaksLab_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 11, 2, -1
+ warp 5, 11, 2, -1
+
+ db 0 ; signs
+
+ db 11 ; objects
+ object SPRITE_BLUE, 4, 3, STAY, NONE, 1, OPP_SONY1, 1
+ object SPRITE_BALL, 6, 3, STAY, NONE, 2 ; person
+ object SPRITE_BALL, 7, 3, STAY, NONE, 3 ; person
+ object SPRITE_BALL, 8, 3, STAY, NONE, 4 ; person
+ object SPRITE_OAK, 5, 2, STAY, DOWN, 5 ; person
+ object SPRITE_BOOK_MAP_DEX, 2, 1, STAY, NONE, 6 ; person
+ object SPRITE_BOOK_MAP_DEX, 3, 1, STAY, NONE, 7 ; person
+ object SPRITE_OAK, 5, 10, STAY, UP, 8 ; person
+ object SPRITE_GIRL, 1, 9, WALK, 1, 9 ; person
+ object SPRITE_OAK_AIDE, 2, 10, STAY, NONE, 10 ; person
+ object SPRITE_OAK_AIDE, 8, 10, STAY, NONE, 11 ; person
+
+ ; warp-to
+ warp_to 4, 11, OAKS_LAB_WIDTH
+ warp_to 5, 11, OAKS_LAB_WIDTH
diff --git a/data/maps/objects/PalletTown.asm b/data/maps/objects/PalletTown.asm
new file mode 100755
index 00000000..68b01175
--- /dev/null
+++ b/data/maps/objects/PalletTown.asm
@@ -0,0 +1,23 @@
+PalletTown_Object:
+ db $b ; border block
+
+ db 3 ; warps
+ warp 5, 5, 0, REDS_HOUSE_1F
+ warp 13, 5, 0, BLUES_HOUSE
+ warp 12, 11, 1, OAKS_LAB
+
+ db 4 ; signs
+ sign 13, 13, 4 ; PalletTownText4
+ sign 7, 9, 5 ; PalletTownText5
+ sign 3, 5, 6 ; PalletTownText6
+ sign 11, 5, 7 ; PalletTownText7
+
+ db 3 ; objects
+ object SPRITE_OAK, 8, 5, STAY, NONE, 1 ; person
+ object SPRITE_GIRL, 3, 8, WALK, 0, 2 ; person
+ object SPRITE_FISHER2, 11, 14, WALK, 0, 3 ; person
+
+ ; warp-to
+ warp_to 5, 5, PALLET_TOWN_WIDTH ; REDS_HOUSE_1F
+ warp_to 13, 5, PALLET_TOWN_WIDTH ; BLUES_HOUSE
+ warp_to 12, 11, PALLET_TOWN_WIDTH ; OAKS_LAB
diff --git a/data/maps/objects/PewterCity.asm b/data/maps/objects/PewterCity.asm
new file mode 100755
index 00000000..e1a3eecb
--- /dev/null
+++ b/data/maps/objects/PewterCity.asm
@@ -0,0 +1,36 @@
+PewterCity_Object:
+ db $a ; border block
+
+ db 7 ; warps
+ warp 14, 7, 0, MUSEUM_1F
+ warp 19, 5, 2, MUSEUM_1F
+ warp 16, 17, 0, PEWTER_GYM
+ warp 29, 13, 0, PEWTER_NIDORAN_HOUSE
+ warp 23, 17, 0, PEWTER_MART
+ warp 7, 29, 0, PEWTER_SPEECH_HOUSE
+ warp 13, 25, 0, PEWTER_POKECENTER
+
+ db 7 ; signs
+ sign 19, 29, 6 ; PewterCityText6
+ sign 33, 19, 7 ; PewterCityText7
+ sign 24, 17, 8 ; MartSignText
+ sign 14, 25, 9 ; PokeCenterSignText
+ sign 15, 9, 10 ; PewterCityText10
+ sign 11, 17, 11 ; PewterCityText11
+ sign 25, 23, 12 ; PewterCityText12
+
+ db 5 ; objects
+ object SPRITE_LASS, 8, 15, STAY, NONE, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 17, 25, STAY, NONE, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 27, 17, STAY, NONE, 3 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 26, 25, WALK, 2, 4 ; person
+ object SPRITE_BUG_CATCHER, 35, 16, STAY, DOWN, 5 ; person
+
+ ; warp-to
+ warp_to 14, 7, PEWTER_CITY_WIDTH ; MUSEUM_1F
+ warp_to 19, 5, PEWTER_CITY_WIDTH ; MUSEUM_1F
+ warp_to 16, 17, PEWTER_CITY_WIDTH ; PEWTER_GYM
+ warp_to 29, 13, PEWTER_CITY_WIDTH ; PEWTER_NIDORAN_HOUSE
+ warp_to 23, 17, PEWTER_CITY_WIDTH ; PEWTER_MART
+ warp_to 7, 29, PEWTER_CITY_WIDTH ; PEWTER_SPEECH_HOUSE
+ warp_to 13, 25, PEWTER_CITY_WIDTH ; PEWTER_POKECENTER
diff --git a/data/maps/objects/PewterGym.asm b/data/maps/objects/PewterGym.asm
new file mode 100755
index 00000000..538c3923
--- /dev/null
+++ b/data/maps/objects/PewterGym.asm
@@ -0,0 +1,17 @@
+PewterGym_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 13, 2, -1
+ warp 5, 13, 2, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 4, 1, STAY, DOWN, 1, OPP_BROCK, 1
+ object SPRITE_BLACK_HAIR_BOY_1, 3, 6, STAY, RIGHT, 2, OPP_JR_TRAINER_M, 1
+ object SPRITE_GYM_HELPER, 7, 10, STAY, DOWN, 3 ; person
+
+ ; warp-to
+ warp_to 4, 13, PEWTER_GYM_WIDTH
+ warp_to 5, 13, PEWTER_GYM_WIDTH
diff --git a/data/maps/objects/PewterMart.asm b/data/maps/objects/PewterMart.asm
new file mode 100755
index 00000000..9b983316
--- /dev/null
+++ b/data/maps/objects/PewterMart.asm
@@ -0,0 +1,17 @@
+PewterMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 4, -1
+ warp 4, 7, 4, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_BUG_CATCHER, 3, 3, WALK, 1, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 5, 5, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, PEWTER_MART_WIDTH
+ warp_to 4, 7, PEWTER_MART_WIDTH
diff --git a/data/maps/objects/PewterNidoranHouse.asm b/data/maps/objects/PewterNidoranHouse.asm
new file mode 100755
index 00000000..f00317d1
--- /dev/null
+++ b/data/maps/objects/PewterNidoranHouse.asm
@@ -0,0 +1,17 @@
+PewterNidoranHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 3, -1
+ warp 3, 7, 3, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_SLOWBRO, 4, 5, STAY, LEFT, 1 ; person
+ object SPRITE_YOUNG_BOY, 3, 5, STAY, RIGHT, 2 ; person
+ object SPRITE_FAT_BALD_GUY, 1, 2, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, PEWTER_NIDORAN_HOUSE_WIDTH
+ warp_to 3, 7, PEWTER_NIDORAN_HOUSE_WIDTH
diff --git a/data/maps/objects/PewterPokecenter.asm b/data/maps/objects/PewterPokecenter.asm
new file mode 100755
index 00000000..2b375bf9
--- /dev/null
+++ b/data/maps/objects/PewterPokecenter.asm
@@ -0,0 +1,18 @@
+PewterPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 6, -1
+ warp 4, 7, 6, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_GENTLEMAN, 11, 7, STAY, LEFT, 2 ; person
+ object SPRITE_CLEFAIRY, 1, 3, STAY, DOWN, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, PEWTER_POKECENTER_WIDTH
+ warp_to 4, 7, PEWTER_POKECENTER_WIDTH
diff --git a/data/maps/objects/PewterSpeechHouse.asm b/data/maps/objects/PewterSpeechHouse.asm
new file mode 100755
index 00000000..e7134cb5
--- /dev/null
+++ b/data/maps/objects/PewterSpeechHouse.asm
@@ -0,0 +1,16 @@
+PewterSpeechHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 5, -1
+ warp 3, 7, 5, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_GAMBLER, 2, 3, STAY, RIGHT, 1 ; person
+ object SPRITE_BUG_CATCHER, 4, 5, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, PEWTER_SPEECH_HOUSE_WIDTH
+ warp_to 3, 7, PEWTER_SPEECH_HOUSE_WIDTH
diff --git a/data/maps/objects/PokemonFanClub.asm b/data/maps/objects/PokemonFanClub.asm
new file mode 100755
index 00000000..e1f175f0
--- /dev/null
+++ b/data/maps/objects/PokemonFanClub.asm
@@ -0,0 +1,22 @@
+PokemonFanClub_Object:
+ db $d ; border block
+
+ db 2 ; warps
+ warp 2, 7, 1, -1
+ warp 3, 7, 1, -1
+
+ db 2 ; signs
+ sign 1, 0, 7 ; FanClubText7
+ sign 6, 0, 8 ; FanClubText8
+
+ db 6 ; objects
+ object SPRITE_FISHER2, 6, 3, STAY, LEFT, 1 ; person
+ object SPRITE_GIRL, 1, 3, STAY, RIGHT, 2 ; person
+ object SPRITE_CLEFAIRY, 6, 4, STAY, LEFT, 3 ; person
+ object SPRITE_SEEL, 1, 4, STAY, RIGHT, 4 ; person
+ object SPRITE_GENTLEMAN, 3, 1, STAY, DOWN, 5 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 5, 1, STAY, DOWN, 6 ; person
+
+ ; warp-to
+ warp_to 2, 7, POKEMON_FAN_CLUB_WIDTH
+ warp_to 3, 7, POKEMON_FAN_CLUB_WIDTH
diff --git a/data/maps/objects/PokemonMansion1F.asm b/data/maps/objects/PokemonMansion1F.asm
new file mode 100755
index 00000000..109b5b8e
--- /dev/null
+++ b/data/maps/objects/PokemonMansion1F.asm
@@ -0,0 +1,29 @@
+PokemonMansion1F_Object:
+ db $2e ; border block
+
+ db 8 ; warps
+ warp 4, 27, 0, -1
+ warp 5, 27, 0, -1
+ warp 6, 27, 0, -1
+ warp 7, 27, 0, -1
+ warp 5, 10, 0, POKEMON_MANSION_2F
+ warp 21, 23, 0, POKEMON_MANSION_B1F
+ warp 26, 27, 0, -1
+ warp 27, 27, 0, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_OAK_AIDE, 17, 17, STAY, LEFT, 1, OPP_SCIENTIST, 4
+ object SPRITE_BALL, 14, 3, STAY, NONE, 2, ESCAPE_ROPE
+ object SPRITE_BALL, 18, 21, STAY, NONE, 3, CARBOS
+
+ ; warp-to
+ warp_to 4, 27, POKEMON_MANSION_1F_WIDTH
+ warp_to 5, 27, POKEMON_MANSION_1F_WIDTH
+ warp_to 6, 27, POKEMON_MANSION_1F_WIDTH
+ warp_to 7, 27, POKEMON_MANSION_1F_WIDTH
+ warp_to 5, 10, POKEMON_MANSION_1F_WIDTH ; POKEMON_MANSION_2F
+ warp_to 21, 23, POKEMON_MANSION_1F_WIDTH ; POKEMON_MANSION_B1F
+ warp_to 26, 27, POKEMON_MANSION_1F_WIDTH
+ warp_to 27, 27, POKEMON_MANSION_1F_WIDTH
diff --git a/data/maps/objects/PokemonMansion2F.asm b/data/maps/objects/PokemonMansion2F.asm
new file mode 100755
index 00000000..6c0cc5f8
--- /dev/null
+++ b/data/maps/objects/PokemonMansion2F.asm
@@ -0,0 +1,22 @@
+PokemonMansion2F_Object:
+ db $1 ; border block
+
+ db 4 ; warps
+ warp 5, 10, 4, POKEMON_MANSION_1F
+ warp 7, 10, 0, POKEMON_MANSION_3F
+ warp 25, 14, 2, POKEMON_MANSION_3F
+ warp 6, 1, 1, POKEMON_MANSION_3F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 17, WALK, 2, 1, OPP_BURGLAR, 7
+ object SPRITE_BALL, 28, 7, STAY, NONE, 2, CALCIUM
+ object SPRITE_BOOK_MAP_DEX, 18, 2, STAY, NONE, 3 ; person
+ object SPRITE_BOOK_MAP_DEX, 3, 22, STAY, NONE, 4 ; person
+
+ ; warp-to
+ warp_to 5, 10, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_1F
+ warp_to 7, 10, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_3F
+ warp_to 25, 14, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_3F
+ warp_to 6, 1, POKEMON_MANSION_2F_WIDTH ; POKEMON_MANSION_3F
diff --git a/data/maps/objects/PokemonMansion3F.asm b/data/maps/objects/PokemonMansion3F.asm
new file mode 100755
index 00000000..7c8c9c22
--- /dev/null
+++ b/data/maps/objects/PokemonMansion3F.asm
@@ -0,0 +1,21 @@
+PokemonMansion3F_Object:
+ db $1 ; border block
+
+ db 3 ; warps
+ warp 7, 10, 1, POKEMON_MANSION_2F
+ warp 6, 1, 3, POKEMON_MANSION_2F
+ warp 25, 14, 2, POKEMON_MANSION_2F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 5, 11, WALK, 2, 1, OPP_BURGLAR, 8
+ object SPRITE_OAK_AIDE, 20, 11, STAY, LEFT, 2, OPP_SCIENTIST, 12
+ object SPRITE_BALL, 1, 16, STAY, NONE, 3, MAX_POTION
+ object SPRITE_BALL, 25, 5, STAY, NONE, 4, IRON
+ object SPRITE_BOOK_MAP_DEX, 6, 12, STAY, NONE, 5 ; person
+
+ ; warp-to
+ warp_to 7, 10, POKEMON_MANSION_3F_WIDTH ; POKEMON_MANSION_2F
+ warp_to 6, 1, POKEMON_MANSION_3F_WIDTH ; POKEMON_MANSION_2F
+ warp_to 25, 14, POKEMON_MANSION_3F_WIDTH ; POKEMON_MANSION_2F
diff --git a/data/maps/objects/PokemonMansionB1F.asm b/data/maps/objects/PokemonMansionB1F.asm
new file mode 100755
index 00000000..ac232799
--- /dev/null
+++ b/data/maps/objects/PokemonMansionB1F.asm
@@ -0,0 +1,20 @@
+PokemonMansionB1F_Object:
+ db $1 ; border block
+
+ db 1 ; warps
+ warp 23, 22, 5, POKEMON_MANSION_1F
+
+ db 0 ; signs
+
+ db 8 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 16, 23, STAY, NONE, 1, OPP_BURGLAR, 9
+ object SPRITE_OAK_AIDE, 27, 11, STAY, DOWN, 2, OPP_SCIENTIST, 13
+ object SPRITE_BALL, 10, 2, STAY, NONE, 3, RARE_CANDY
+ object SPRITE_BALL, 1, 22, STAY, NONE, 4, FULL_RESTORE
+ object SPRITE_BALL, 19, 25, STAY, NONE, 5, TM_14
+ object SPRITE_BALL, 5, 4, STAY, NONE, 6, TM_22
+ object SPRITE_BOOK_MAP_DEX, 16, 20, STAY, NONE, 7 ; person
+ object SPRITE_BALL, 5, 13, STAY, NONE, 8, SECRET_KEY
+
+ ; warp-to
+ warp_to 23, 22, POKEMON_MANSION_B1F_WIDTH ; POKEMON_MANSION_1F
diff --git a/data/maps/objects/PokemonTower1F.asm b/data/maps/objects/PokemonTower1F.asm
new file mode 100755
index 00000000..cf62836b
--- /dev/null
+++ b/data/maps/objects/PokemonTower1F.asm
@@ -0,0 +1,21 @@
+PokemonTower1F_Object:
+ db $1 ; border block
+
+ db 3 ; warps
+ warp 10, 17, 1, -1
+ warp 11, 17, 1, -1
+ warp 18, 9, 1, POKEMON_TOWER_2F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_CABLE_CLUB_WOMAN, 15, 13, STAY, UP, 1 ; person
+ object SPRITE_MOM_GEISHA, 6, 8, STAY, NONE, 2 ; person
+ object SPRITE_BALDING_GUY, 8, 12, STAY, NONE, 3 ; person
+ object SPRITE_GIRL, 13, 7, STAY, NONE, 4 ; person
+ object SPRITE_MEDIUM, 17, 7, STAY, LEFT, 5 ; person
+
+ ; warp-to
+ warp_to 10, 17, POKEMON_TOWER_1F_WIDTH
+ warp_to 11, 17, POKEMON_TOWER_1F_WIDTH
+ warp_to 18, 9, POKEMON_TOWER_1F_WIDTH ; POKEMON_TOWER_2F
diff --git a/data/maps/objects/PokemonTower2F.asm b/data/maps/objects/PokemonTower2F.asm
new file mode 100755
index 00000000..5ce437d1
--- /dev/null
+++ b/data/maps/objects/PokemonTower2F.asm
@@ -0,0 +1,16 @@
+PokemonTower2F_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 3, 9, 0, POKEMON_TOWER_3F
+ warp 18, 9, 2, POKEMON_TOWER_1F
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BLUE, 14, 5, STAY, NONE, 1 ; person
+ object SPRITE_MEDIUM, 3, 7, STAY, RIGHT, 2 ; person
+
+ ; warp-to
+ warp_to 3, 9, POKEMON_TOWER_2F_WIDTH ; POKEMON_TOWER_3F
+ warp_to 18, 9, POKEMON_TOWER_2F_WIDTH ; POKEMON_TOWER_1F
diff --git a/data/maps/objects/PokemonTower3F.asm b/data/maps/objects/PokemonTower3F.asm
new file mode 100755
index 00000000..79b83f88
--- /dev/null
+++ b/data/maps/objects/PokemonTower3F.asm
@@ -0,0 +1,18 @@
+PokemonTower3F_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 3, 9, 0, POKEMON_TOWER_2F
+ warp 18, 9, 1, POKEMON_TOWER_4F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_MEDIUM, 12, 3, STAY, LEFT, 1, OPP_CHANNELER, 5
+ object SPRITE_MEDIUM, 9, 8, STAY, DOWN, 2, OPP_CHANNELER, 6
+ object SPRITE_MEDIUM, 10, 13, STAY, DOWN, 3, OPP_CHANNELER, 8
+ object SPRITE_BALL, 12, 1, STAY, NONE, 4, ESCAPE_ROPE
+
+ ; warp-to
+ warp_to 3, 9, POKEMON_TOWER_3F_WIDTH ; POKEMON_TOWER_2F
+ warp_to 18, 9, POKEMON_TOWER_3F_WIDTH ; POKEMON_TOWER_4F
diff --git a/data/maps/objects/PokemonTower4F.asm b/data/maps/objects/PokemonTower4F.asm
new file mode 100755
index 00000000..db86c02c
--- /dev/null
+++ b/data/maps/objects/PokemonTower4F.asm
@@ -0,0 +1,20 @@
+PokemonTower4F_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 3, 9, 0, POKEMON_TOWER_5F
+ warp 18, 9, 1, POKEMON_TOWER_3F
+
+ db 0 ; signs
+
+ db 6 ; objects
+ object SPRITE_MEDIUM, 5, 10, STAY, RIGHT, 1, OPP_CHANNELER, 9
+ object SPRITE_MEDIUM, 15, 7, STAY, DOWN, 2, OPP_CHANNELER, 10
+ object SPRITE_MEDIUM, 14, 12, STAY, LEFT, 3, OPP_CHANNELER, 12
+ object SPRITE_BALL, 12, 10, STAY, NONE, 4, ELIXER
+ object SPRITE_BALL, 9, 10, STAY, NONE, 5, AWAKENING
+ object SPRITE_BALL, 12, 16, STAY, NONE, 6, HP_UP
+
+ ; warp-to
+ warp_to 3, 9, POKEMON_TOWER_4F_WIDTH ; POKEMON_TOWER_5F
+ warp_to 18, 9, POKEMON_TOWER_4F_WIDTH ; POKEMON_TOWER_3F
diff --git a/data/maps/objects/PokemonTower5F.asm b/data/maps/objects/PokemonTower5F.asm
new file mode 100755
index 00000000..b482871f
--- /dev/null
+++ b/data/maps/objects/PokemonTower5F.asm
@@ -0,0 +1,20 @@
+PokemonTower5F_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 3, 9, 0, POKEMON_TOWER_4F
+ warp 18, 9, 0, POKEMON_TOWER_6F
+
+ db 0 ; signs
+
+ db 6 ; objects
+ object SPRITE_MEDIUM, 12, 8, STAY, NONE, 1 ; person
+ object SPRITE_MEDIUM, 17, 7, STAY, LEFT, 2, OPP_CHANNELER, 14
+ object SPRITE_MEDIUM, 14, 3, STAY, LEFT, 3, OPP_CHANNELER, 16
+ object SPRITE_MEDIUM, 6, 10, STAY, RIGHT, 4, OPP_CHANNELER, 17
+ object SPRITE_MEDIUM, 9, 16, STAY, RIGHT, 5, OPP_CHANNELER, 18
+ object SPRITE_BALL, 6, 14, STAY, NONE, 6, NUGGET
+
+ ; warp-to
+ warp_to 3, 9, POKEMON_TOWER_5F_WIDTH ; POKEMON_TOWER_4F
+ warp_to 18, 9, POKEMON_TOWER_5F_WIDTH ; POKEMON_TOWER_6F
diff --git a/data/maps/objects/PokemonTower6F.asm b/data/maps/objects/PokemonTower6F.asm
new file mode 100755
index 00000000..823fe78a
--- /dev/null
+++ b/data/maps/objects/PokemonTower6F.asm
@@ -0,0 +1,19 @@
+PokemonTower6F_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 18, 9, 1, POKEMON_TOWER_5F
+ warp 9, 16, 0, POKEMON_TOWER_7F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_MEDIUM, 12, 10, STAY, RIGHT, 1, OPP_CHANNELER, 19
+ object SPRITE_MEDIUM, 9, 5, STAY, DOWN, 2, OPP_CHANNELER, 20
+ object SPRITE_MEDIUM, 16, 5, STAY, LEFT, 3, OPP_CHANNELER, 21
+ object SPRITE_BALL, 6, 8, STAY, NONE, 4, RARE_CANDY
+ object SPRITE_BALL, 14, 14, STAY, NONE, 5, X_ACCURACY
+
+ ; warp-to
+ warp_to 18, 9, POKEMON_TOWER_6F_WIDTH ; POKEMON_TOWER_5F
+ warp_to 9, 16, POKEMON_TOWER_6F_WIDTH ; POKEMON_TOWER_7F
diff --git a/data/maps/objects/PokemonTower7F.asm b/data/maps/objects/PokemonTower7F.asm
new file mode 100755
index 00000000..79cb5b0d
--- /dev/null
+++ b/data/maps/objects/PokemonTower7F.asm
@@ -0,0 +1,16 @@
+PokemonTower7F_Object:
+ db $1 ; border block
+
+ db 1 ; warps
+ warp 9, 16, 1, POKEMON_TOWER_6F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_ROCKET, 9, 11, STAY, RIGHT, 1, OPP_ROCKET, 19
+ object SPRITE_ROCKET, 12, 9, STAY, LEFT, 2, OPP_ROCKET, 20
+ object SPRITE_ROCKET, 9, 7, STAY, RIGHT, 3, OPP_ROCKET, 21
+ object SPRITE_MR_FUJI, 10, 3, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 9, 16, POKEMON_TOWER_7F_WIDTH ; POKEMON_TOWER_6F
diff --git a/data/maps/objects/PowerPlant.asm b/data/maps/objects/PowerPlant.asm
new file mode 100755
index 00000000..a8548b1c
--- /dev/null
+++ b/data/maps/objects/PowerPlant.asm
@@ -0,0 +1,30 @@
+PowerPlant_Object:
+ db $2e ; border block
+
+ db 3 ; warps
+ warp 4, 35, 3, -1
+ warp 5, 35, 3, -1
+ warp 0, 11, 3, -1
+
+ db 0 ; signs
+
+ db 14 ; objects
+ object SPRITE_BALL, 9, 20, STAY, NONE, 1, VOLTORB, 40
+ object SPRITE_BALL, 32, 18, STAY, NONE, 2, VOLTORB, 40
+ object SPRITE_BALL, 21, 25, STAY, NONE, 3, VOLTORB, 40
+ object SPRITE_BALL, 25, 18, STAY, NONE, 4, ELECTRODE, 43
+ object SPRITE_BALL, 23, 34, STAY, NONE, 5, VOLTORB, 40
+ object SPRITE_BALL, 26, 28, STAY, NONE, 6, VOLTORB, 40
+ object SPRITE_BALL, 21, 14, STAY, NONE, 7, ELECTRODE, 43
+ object SPRITE_BALL, 37, 32, STAY, NONE, 8, VOLTORB, 40
+ object SPRITE_BIRD, 4, 9, STAY, UP, 9, ZAPDOS, 50
+ object SPRITE_BALL, 7, 25, STAY, NONE, 10, CARBOS
+ object SPRITE_BALL, 28, 3, STAY, NONE, 11, HP_UP
+ object SPRITE_BALL, 34, 3, STAY, NONE, 12, RARE_CANDY
+ object SPRITE_BALL, 26, 32, STAY, NONE, 13, TM_25
+ object SPRITE_BALL, 20, 32, STAY, NONE, 14, TM_33
+
+ ; warp-to
+ warp_to 4, 35, POWER_PLANT_WIDTH
+ warp_to 5, 35, POWER_PLANT_WIDTH
+ warp_to 0, 11, POWER_PLANT_WIDTH
diff --git a/data/maps/objects/RedsHouse1F.asm b/data/maps/objects/RedsHouse1F.asm
new file mode 100755
index 00000000..a54b5411
--- /dev/null
+++ b/data/maps/objects/RedsHouse1F.asm
@@ -0,0 +1,18 @@
+RedsHouse1F_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 2, 7, 0, -1 ; exit1
+ warp 3, 7, 0, -1 ; exit2
+ warp 7, 1, 0, REDS_HOUSE_2F ; staircase
+
+ db 1 ; signs
+ sign 3, 1, 2 ; TV
+
+ db 1 ; objects
+ object SPRITE_MOM, 5, 4, STAY, LEFT, 1 ; Mom
+
+ ; warp-to
+ warp_to 2, 7, REDS_HOUSE_1F_WIDTH
+ warp_to 3, 7, REDS_HOUSE_1F_WIDTH
+ warp_to 7, 1, REDS_HOUSE_1F_WIDTH
diff --git a/data/maps/objects/RedsHouse2F.asm b/data/maps/objects/RedsHouse2F.asm
new file mode 100755
index 00000000..98e9c236
--- /dev/null
+++ b/data/maps/objects/RedsHouse2F.asm
@@ -0,0 +1,12 @@
+RedsHouse2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 1, 2, REDS_HOUSE_1F
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 7, 1, REDS_HOUSE_2F_WIDTH
diff --git a/data/maps/objects/RockTunnel1F.asm b/data/maps/objects/RockTunnel1F.asm
new file mode 100755
index 00000000..1cf5a12f
--- /dev/null
+++ b/data/maps/objects/RockTunnel1F.asm
@@ -0,0 +1,34 @@
+RockTunnel1F_Object:
+ db $3 ; border block
+
+ db 8 ; warps
+ warp 15, 3, 1, -1
+ warp 15, 0, 1, -1
+ warp 15, 33, 2, -1
+ warp 15, 35, 2, -1
+ warp 37, 3, 0, ROCK_TUNNEL_B1F
+ warp 5, 3, 1, ROCK_TUNNEL_B1F
+ warp 17, 11, 2, ROCK_TUNNEL_B1F
+ warp 37, 17, 3, ROCK_TUNNEL_B1F
+
+ db 1 ; signs
+ sign 11, 29, 8 ; RockTunnel1Text8
+
+ db 7 ; objects
+ object SPRITE_HIKER, 7, 5, STAY, DOWN, 1, OPP_HIKER, 12
+ object SPRITE_HIKER, 5, 16, STAY, DOWN, 2, OPP_HIKER, 13
+ object SPRITE_HIKER, 17, 15, STAY, LEFT, 3, OPP_HIKER, 14
+ object SPRITE_BLACK_HAIR_BOY_2, 23, 8, STAY, LEFT, 4, OPP_POKEMANIAC, 7
+ object SPRITE_LASS, 37, 21, STAY, LEFT, 5, OPP_JR_TRAINER_F, 17
+ object SPRITE_LASS, 22, 24, STAY, DOWN, 6, OPP_JR_TRAINER_F, 18
+ object SPRITE_LASS, 32, 24, STAY, RIGHT, 7, OPP_JR_TRAINER_F, 19
+
+ ; warp-to
+ warp_to 15, 3, ROCK_TUNNEL_1F_WIDTH
+ warp_to 15, 0, ROCK_TUNNEL_1F_WIDTH
+ warp_to 15, 33, ROCK_TUNNEL_1F_WIDTH
+ warp_to 15, 35, ROCK_TUNNEL_1F_WIDTH
+ warp_to 37, 3, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F
+ warp_to 5, 3, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F
+ warp_to 17, 11, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F
+ warp_to 37, 17, ROCK_TUNNEL_1F_WIDTH ; ROCK_TUNNEL_B1F
diff --git a/data/maps/objects/RockTunnelB1F.asm b/data/maps/objects/RockTunnelB1F.asm
new file mode 100755
index 00000000..f562168e
--- /dev/null
+++ b/data/maps/objects/RockTunnelB1F.asm
@@ -0,0 +1,26 @@
+RockTunnelB1F_Object:
+ db $3 ; border block
+
+ db 4 ; warps
+ warp 33, 25, 4, ROCK_TUNNEL_1F
+ warp 27, 3, 5, ROCK_TUNNEL_1F
+ warp 23, 11, 6, ROCK_TUNNEL_1F
+ warp 3, 3, 7, ROCK_TUNNEL_1F
+
+ db 0 ; signs
+
+ db 8 ; objects
+ object SPRITE_LASS, 11, 13, STAY, DOWN, 1, OPP_JR_TRAINER_F, 9
+ object SPRITE_HIKER, 6, 10, STAY, DOWN, 2, OPP_HIKER, 9
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 5, STAY, DOWN, 3, OPP_POKEMANIAC, 3
+ object SPRITE_BLACK_HAIR_BOY_2, 20, 21, STAY, RIGHT, 4, OPP_POKEMANIAC, 4
+ object SPRITE_HIKER, 30, 10, STAY, DOWN, 5, OPP_HIKER, 10
+ object SPRITE_LASS, 14, 28, STAY, RIGHT, 6, OPP_JR_TRAINER_F, 10
+ object SPRITE_HIKER, 33, 5, STAY, RIGHT, 7, OPP_HIKER, 11
+ object SPRITE_BLACK_HAIR_BOY_2, 26, 30, STAY, DOWN, 8, OPP_POKEMANIAC, 5
+
+ ; warp-to
+ warp_to 33, 25, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F
+ warp_to 27, 3, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F
+ warp_to 23, 11, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F
+ warp_to 3, 3, ROCK_TUNNEL_B1F_WIDTH ; ROCK_TUNNEL_1F
diff --git a/data/maps/objects/RockTunnelPokecenter.asm b/data/maps/objects/RockTunnelPokecenter.asm
new file mode 100755
index 00000000..a7619f7f
--- /dev/null
+++ b/data/maps/objects/RockTunnelPokecenter.asm
@@ -0,0 +1,18 @@
+RockTunnelPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 0, -1
+ warp 4, 7, 0, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_GENTLEMAN, 7, 3, WALK, 2, 2 ; person
+ object SPRITE_FISHER2, 2, 5, STAY, NONE, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, ROCK_TUNNEL_POKECENTER_WIDTH
+ warp_to 4, 7, ROCK_TUNNEL_POKECENTER_WIDTH
diff --git a/data/maps/objects/RocketHideoutB1F.asm b/data/maps/objects/RocketHideoutB1F.asm
new file mode 100755
index 00000000..99537510
--- /dev/null
+++ b/data/maps/objects/RocketHideoutB1F.asm
@@ -0,0 +1,27 @@
+RocketHideoutB1F_Object:
+ db $2e ; border block
+
+ db 5 ; warps
+ warp 23, 2, 0, ROCKET_HIDEOUT_B2F
+ warp 21, 2, 2, GAME_CORNER
+ warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR
+ warp 21, 24, 3, ROCKET_HIDEOUT_B2F
+ warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR
+
+ db 0 ; signs
+
+ db 7 ; objects
+ object SPRITE_ROCKET, 26, 8, STAY, LEFT, 1, OPP_ROCKET, 8
+ object SPRITE_ROCKET, 12, 6, STAY, RIGHT, 2, OPP_ROCKET, 9
+ object SPRITE_ROCKET, 18, 17, STAY, DOWN, 3, OPP_ROCKET, 10
+ object SPRITE_ROCKET, 15, 25, STAY, RIGHT, 4, OPP_ROCKET, 11
+ object SPRITE_ROCKET, 28, 18, STAY, LEFT, 5, OPP_ROCKET, 12
+ object SPRITE_BALL, 11, 14, STAY, NONE, 6, ESCAPE_ROPE
+ object SPRITE_BALL, 9, 17, STAY, NONE, 7, HYPER_POTION
+
+ ; warp-to
+ warp_to 23, 2, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_B2F
+ warp_to 21, 2, ROCKET_HIDEOUT_B1F_WIDTH ; GAME_CORNER
+ warp_to 24, 19, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
+ warp_to 21, 24, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_B2F
+ warp_to 25, 19, ROCKET_HIDEOUT_B1F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
diff --git a/data/maps/objects/RocketHideoutB2F.asm b/data/maps/objects/RocketHideoutB2F.asm
new file mode 100755
index 00000000..36fe9289
--- /dev/null
+++ b/data/maps/objects/RocketHideoutB2F.asm
@@ -0,0 +1,25 @@
+RocketHideoutB2F_Object:
+ db $2e ; border block
+
+ db 5 ; warps
+ warp 27, 8, 0, ROCKET_HIDEOUT_B1F
+ warp 21, 8, 0, ROCKET_HIDEOUT_B3F
+ warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR
+ warp 21, 22, 3, ROCKET_HIDEOUT_B1F
+ warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_ROCKET, 20, 12, STAY, DOWN, 1, OPP_ROCKET, 13
+ object SPRITE_BALL, 1, 11, STAY, NONE, 2, MOON_STONE
+ object SPRITE_BALL, 16, 8, STAY, NONE, 3, NUGGET
+ object SPRITE_BALL, 6, 12, STAY, NONE, 4, TM_07
+ object SPRITE_BALL, 3, 21, STAY, NONE, 5, SUPER_POTION
+
+ ; warp-to
+ warp_to 27, 8, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_B1F
+ warp_to 21, 8, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_B3F
+ warp_to 24, 19, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
+ warp_to 21, 22, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_B1F
+ warp_to 25, 19, ROCKET_HIDEOUT_B2F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
diff --git a/data/maps/objects/RocketHideoutB3F.asm b/data/maps/objects/RocketHideoutB3F.asm
new file mode 100755
index 00000000..6169dbed
--- /dev/null
+++ b/data/maps/objects/RocketHideoutB3F.asm
@@ -0,0 +1,18 @@
+RocketHideoutB3F_Object:
+ db $2e ; border block
+
+ db 2 ; warps
+ warp 25, 6, 1, ROCKET_HIDEOUT_B2F
+ warp 19, 18, 0, ROCKET_HIDEOUT_B4F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_ROCKET, 10, 22, STAY, RIGHT, 1, OPP_ROCKET, 14
+ object SPRITE_ROCKET, 26, 12, STAY, UP, 2, OPP_ROCKET, 15
+ object SPRITE_BALL, 26, 17, STAY, NONE, 3, TM_10
+ object SPRITE_BALL, 20, 14, STAY, NONE, 4, RARE_CANDY
+
+ ; warp-to
+ warp_to 25, 6, ROCKET_HIDEOUT_B3F_WIDTH ; ROCKET_HIDEOUT_B2F
+ warp_to 19, 18, ROCKET_HIDEOUT_B3F_WIDTH ; ROCKET_HIDEOUT_B4F
diff --git a/data/maps/objects/RocketHideoutB4F.asm b/data/maps/objects/RocketHideoutB4F.asm
new file mode 100755
index 00000000..be353f25
--- /dev/null
+++ b/data/maps/objects/RocketHideoutB4F.asm
@@ -0,0 +1,25 @@
+RocketHideoutB4F_Object:
+ db $2e ; border block
+
+ db 3 ; warps
+ warp 19, 10, 1, ROCKET_HIDEOUT_B3F
+ warp 24, 15, 0, ROCKET_HIDEOUT_ELEVATOR
+ warp 25, 15, 1, ROCKET_HIDEOUT_ELEVATOR
+
+ db 0 ; signs
+
+ db 9 ; objects
+ object SPRITE_GIOVANNI, 25, 3, STAY, DOWN, 1, OPP_GIOVANNI, 1
+ object SPRITE_ROCKET, 23, 12, STAY, DOWN, 2, OPP_ROCKET, 16
+ object SPRITE_ROCKET, 26, 12, STAY, DOWN, 3, OPP_ROCKET, 17
+ object SPRITE_ROCKET, 11, 2, STAY, DOWN, 4, OPP_ROCKET, 18
+ object SPRITE_BALL, 10, 12, STAY, NONE, 5, HP_UP
+ object SPRITE_BALL, 9, 4, STAY, NONE, 6, TM_02
+ object SPRITE_BALL, 12, 20, STAY, NONE, 7, IRON
+ object SPRITE_BALL, 25, 2, STAY, NONE, 8, SILPH_SCOPE
+ object SPRITE_BALL, 10, 2, STAY, NONE, 9, LIFT_KEY
+
+ ; warp-to
+ warp_to 19, 10, ROCKET_HIDEOUT_B4F_WIDTH ; ROCKET_HIDEOUT_B3F
+ warp_to 24, 15, ROCKET_HIDEOUT_B4F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
+ warp_to 25, 15, ROCKET_HIDEOUT_B4F_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
diff --git a/data/maps/objects/RocketHideoutElevator.asm b/data/maps/objects/RocketHideoutElevator.asm
new file mode 100755
index 00000000..bc4fd7ff
--- /dev/null
+++ b/data/maps/objects/RocketHideoutElevator.asm
@@ -0,0 +1,15 @@
+RocketHideoutElevator_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 2, 1, 2, ROCKET_HIDEOUT_B1F
+ warp 3, 1, 4, ROCKET_HIDEOUT_B1F
+
+ db 1 ; signs
+ sign 1, 1, 1 ; RocketHideoutElevatorText1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 2, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_B1F
+ warp_to 3, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_B1F
diff --git a/data/maps/objects/Route1.asm b/data/maps/objects/Route1.asm
new file mode 100755
index 00000000..0815fe67
--- /dev/null
+++ b/data/maps/objects/Route1.asm
@@ -0,0 +1,14 @@
+Route1_Object:
+ db $b ; border block
+
+ db 0 ; warps
+
+ db 1 ; signs
+ sign 9, 27, 3 ; Route1Text3
+
+ db 2 ; objects
+ object SPRITE_BUG_CATCHER, 5, 24, WALK, 1, 1 ; person
+ object SPRITE_BUG_CATCHER, 15, 13, WALK, 2, 2 ; person
+
+ ; warp-to (unused)
+ warp_to 2, 7, 4
diff --git a/data/maps/objects/Route10.asm b/data/maps/objects/Route10.asm
new file mode 100755
index 00000000..12850577
--- /dev/null
+++ b/data/maps/objects/Route10.asm
@@ -0,0 +1,28 @@
+Route10_Object:
+ db $2c ; border block
+
+ db 4 ; warps
+ warp 11, 19, 0, ROCK_TUNNEL_POKECENTER
+ warp 8, 17, 0, ROCK_TUNNEL_1F
+ warp 8, 53, 2, ROCK_TUNNEL_1F
+ warp 6, 39, 0, POWER_PLANT
+
+ db 4 ; signs
+ sign 7, 19, 7 ; Route10Text7
+ sign 12, 19, 8 ; PokeCenterSignText
+ sign 9, 55, 9 ; Route10Text9
+ sign 5, 41, 10 ; Route10Text10
+
+ db 6 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 10, 44, STAY, LEFT, 1, OPP_POKEMANIAC, 1
+ object SPRITE_HIKER, 3, 57, STAY, UP, 2, OPP_HIKER, 7
+ object SPRITE_BLACK_HAIR_BOY_2, 14, 64, STAY, LEFT, 3, OPP_POKEMANIAC, 2
+ object SPRITE_LASS, 7, 25, STAY, LEFT, 4, OPP_JR_TRAINER_F, 7
+ object SPRITE_HIKER, 3, 61, STAY, DOWN, 5, OPP_HIKER, 8
+ object SPRITE_LASS, 7, 54, STAY, DOWN, 6, OPP_JR_TRAINER_F, 8
+
+ ; warp-to
+ warp_to 11, 19, ROUTE_10_WIDTH ; ROCK_TUNNEL_POKECENTER
+ warp_to 8, 17, ROUTE_10_WIDTH ; ROCK_TUNNEL_1F
+ warp_to 8, 53, ROUTE_10_WIDTH ; ROCK_TUNNEL_1F
+ warp_to 6, 39, ROUTE_10_WIDTH ; POWER_PLANT
diff --git a/data/maps/objects/Route11.asm b/data/maps/objects/Route11.asm
new file mode 100755
index 00000000..5ed232f5
--- /dev/null
+++ b/data/maps/objects/Route11.asm
@@ -0,0 +1,31 @@
+Route11_Object:
+ db $f ; border block
+
+ db 5 ; warps
+ warp 49, 8, 0, ROUTE_11_GATE_1F
+ warp 49, 9, 1, ROUTE_11_GATE_1F
+ warp 58, 8, 2, ROUTE_11_GATE_1F
+ warp 58, 9, 3, ROUTE_11_GATE_1F
+ warp 4, 5, 0, DIGLETTS_CAVE_ROUTE_11
+
+ db 1 ; signs
+ sign 1, 5, 11 ; Route11Text11
+
+ db 10 ; objects
+ object SPRITE_GAMBLER, 10, 14, STAY, DOWN, 1, OPP_GAMBLER, 1
+ object SPRITE_GAMBLER, 26, 9, STAY, DOWN, 2, OPP_GAMBLER, 2
+ object SPRITE_BUG_CATCHER, 13, 5, STAY, LEFT, 3, OPP_YOUNGSTER, 9
+ object SPRITE_BLACK_HAIR_BOY_2, 36, 11, STAY, DOWN, 4, OPP_ENGINEER, 2
+ object SPRITE_BUG_CATCHER, 22, 4, STAY, UP, 5, OPP_YOUNGSTER, 10
+ object SPRITE_GAMBLER, 45, 7, STAY, DOWN, 6, OPP_GAMBLER, 3
+ object SPRITE_GAMBLER, 33, 3, STAY, UP, 7, OPP_GAMBLER, 4
+ object SPRITE_BUG_CATCHER, 43, 5, STAY, RIGHT, 8, OPP_YOUNGSTER, 11
+ object SPRITE_BLACK_HAIR_BOY_2, 45, 16, STAY, LEFT, 9, OPP_ENGINEER, 3
+ object SPRITE_BUG_CATCHER, 22, 12, STAY, UP, 10, OPP_YOUNGSTER, 12
+
+ ; warp-to
+ warp_to 49, 8, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F
+ warp_to 49, 9, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F
+ warp_to 58, 8, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F
+ warp_to 58, 9, ROUTE_11_WIDTH ; ROUTE_11_GATE_1F
+ warp_to 4, 5, ROUTE_11_WIDTH ; DIGLETTS_CAVE_ROUTE_11
diff --git a/data/maps/objects/Route11Gate1F.asm b/data/maps/objects/Route11Gate1F.asm
new file mode 100755
index 00000000..5c4a120c
--- /dev/null
+++ b/data/maps/objects/Route11Gate1F.asm
@@ -0,0 +1,21 @@
+Route11Gate1F_Object:
+ db $a ; border block
+
+ db 5 ; warps
+ warp 0, 4, 0, -1
+ warp 0, 5, 1, -1
+ warp 7, 4, 2, -1
+ warp 7, 5, 3, -1
+ warp 6, 8, 0, ROUTE_11_GATE_2F
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 0, 4, ROUTE_11_GATE_1F_WIDTH
+ warp_to 0, 5, ROUTE_11_GATE_1F_WIDTH
+ warp_to 7, 4, ROUTE_11_GATE_1F_WIDTH
+ warp_to 7, 5, ROUTE_11_GATE_1F_WIDTH
+ warp_to 6, 8, ROUTE_11_GATE_1F_WIDTH ; ROUTE_11_GATE_2F
diff --git a/data/maps/objects/Route11Gate2F.asm b/data/maps/objects/Route11Gate2F.asm
new file mode 100755
index 00000000..bf305bba
--- /dev/null
+++ b/data/maps/objects/Route11Gate2F.asm
@@ -0,0 +1,16 @@
+Route11Gate2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 7, 4, ROUTE_11_GATE_1F
+
+ db 2 ; signs
+ sign 1, 2, 3 ; Route11GateUpstairsText3
+ sign 6, 2, 4 ; Route11GateUpstairsText4
+
+ db 2 ; objects
+ object SPRITE_BUG_CATCHER, 4, 2, WALK, 2, 1 ; person
+ object SPRITE_OAK_AIDE, 2, 6, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 7, 7, ROUTE_11_GATE_2F_WIDTH ; ROUTE_11_GATE_1F
diff --git a/data/maps/objects/Route12.asm b/data/maps/objects/Route12.asm
new file mode 100755
index 00000000..a9d84cf0
--- /dev/null
+++ b/data/maps/objects/Route12.asm
@@ -0,0 +1,30 @@
+Route12_Object:
+ db $43 ; border block
+
+ db 4 ; warps
+ warp 10, 15, 0, ROUTE_12_GATE_1F
+ warp 11, 15, 1, ROUTE_12_GATE_1F
+ warp 10, 21, 2, ROUTE_12_GATE_1F
+ warp 11, 77, 0, ROUTE_12_SUPER_ROD_HOUSE
+
+ db 2 ; signs
+ sign 13, 13, 11 ; Route12Text11
+ sign 11, 63, 12 ; Route12Text12
+
+ db 10 ; objects
+ object SPRITE_SNORLAX, 10, 62, STAY, DOWN, 1 ; person
+ object SPRITE_FISHER2, 14, 31, STAY, LEFT, 2, OPP_FISHER, 3
+ object SPRITE_FISHER2, 5, 39, STAY, UP, 3, OPP_FISHER, 4
+ object SPRITE_BLACK_HAIR_BOY_1, 11, 92, STAY, LEFT, 4, OPP_JR_TRAINER_M, 9
+ object SPRITE_BLACK_HAIR_BOY_2, 14, 76, STAY, UP, 5, OPP_ROCKER, 2
+ object SPRITE_FISHER2, 12, 40, STAY, LEFT, 6, OPP_FISHER, 5
+ object SPRITE_FISHER2, 9, 52, STAY, RIGHT, 7, OPP_FISHER, 6
+ object SPRITE_FISHER2, 6, 87, STAY, DOWN, 8, OPP_FISHER, 11
+ object SPRITE_BALL, 14, 35, STAY, NONE, 9, TM_16
+ object SPRITE_BALL, 5, 89, STAY, NONE, 10, IRON
+
+ ; warp-to
+ warp_to 10, 15, ROUTE_12_WIDTH ; ROUTE_12_GATE_1F
+ warp_to 11, 15, ROUTE_12_WIDTH ; ROUTE_12_GATE_1F
+ warp_to 10, 21, ROUTE_12_WIDTH ; ROUTE_12_GATE_1F
+ warp_to 11, 77, ROUTE_12_WIDTH ; ROUTE_12_SUPER_ROD_HOUSE
diff --git a/data/maps/objects/Route12Gate1F.asm b/data/maps/objects/Route12Gate1F.asm
new file mode 100755
index 00000000..94f6b91a
--- /dev/null
+++ b/data/maps/objects/Route12Gate1F.asm
@@ -0,0 +1,21 @@
+Route12Gate1F_Object:
+ db $a ; border block
+
+ db 5 ; warps
+ warp 4, 0, 0, -1
+ warp 5, 0, 1, -1
+ warp 4, 7, 2, -1
+ warp 5, 7, 2, -1
+ warp 8, 6, 0, ROUTE_12_GATE_2F
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 1, 3, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 4, 0, ROUTE_12_GATE_1F_WIDTH
+ warp_to 5, 0, ROUTE_12_GATE_1F_WIDTH
+ warp_to 4, 7, ROUTE_12_GATE_1F_WIDTH
+ warp_to 5, 7, ROUTE_12_GATE_1F_WIDTH
+ warp_to 8, 6, ROUTE_12_GATE_1F_WIDTH ; ROUTE_12_GATE_2F
diff --git a/data/maps/objects/Route12Gate2F.asm b/data/maps/objects/Route12Gate2F.asm
new file mode 100755
index 00000000..cc6c1c19
--- /dev/null
+++ b/data/maps/objects/Route12Gate2F.asm
@@ -0,0 +1,15 @@
+Route12Gate2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 7, 4, ROUTE_12_GATE_1F
+
+ db 2 ; signs
+ sign 1, 2, 2 ; Route12GateUpstairsText2
+ sign 6, 2, 3 ; Route12GateUpstairsText3
+
+ db 1 ; objects
+ object SPRITE_BRUNETTE_GIRL, 3, 4, WALK, 1, 1 ; person
+
+ ; warp-to
+ warp_to 7, 7, ROUTE_12_GATE_2F_WIDTH ; ROUTE_12_GATE_1F
diff --git a/data/maps/objects/Route12SuperRodHouse.asm b/data/maps/objects/Route12SuperRodHouse.asm
new file mode 100755
index 00000000..458378a2
--- /dev/null
+++ b/data/maps/objects/Route12SuperRodHouse.asm
@@ -0,0 +1,15 @@
+Route12SuperRodHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 3, -1
+ warp 3, 7, 3, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FISHER, 2, 4, STAY, RIGHT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, ROUTE_12_SUPER_ROD_HOUSE_WIDTH
+ warp_to 3, 7, ROUTE_12_SUPER_ROD_HOUSE_WIDTH
diff --git a/data/maps/objects/Route13.asm b/data/maps/objects/Route13.asm
new file mode 100755
index 00000000..3f460901
--- /dev/null
+++ b/data/maps/objects/Route13.asm
@@ -0,0 +1,21 @@
+Route13_Object:
+ db $43 ; border block
+
+ db 0 ; warps
+
+ db 3 ; signs
+ sign 15, 13, 11 ; Route13Text11
+ sign 33, 5, 12 ; Route13Text12
+ sign 31, 11, 13 ; Route13Text13
+
+ db 10 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 49, 10, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 1
+ object SPRITE_LASS, 48, 10, STAY, DOWN, 2, OPP_JR_TRAINER_F, 12
+ object SPRITE_LASS, 27, 9, STAY, DOWN, 3, OPP_JR_TRAINER_F, 13
+ object SPRITE_LASS, 23, 10, STAY, LEFT, 4, OPP_JR_TRAINER_F, 14
+ object SPRITE_LASS, 50, 5, STAY, DOWN, 5, OPP_JR_TRAINER_F, 15
+ object SPRITE_BLACK_HAIR_BOY_1, 12, 4, STAY, RIGHT, 6, OPP_BIRD_KEEPER, 2
+ object SPRITE_FOULARD_WOMAN, 33, 6, STAY, DOWN, 7, OPP_BEAUTY, 4
+ object SPRITE_FOULARD_WOMAN, 32, 6, STAY, DOWN, 8, OPP_BEAUTY, 5
+ object SPRITE_BIKER, 10, 7, STAY, UP, 9, OPP_BIKER, 1
+ object SPRITE_BLACK_HAIR_BOY_1, 7, 13, STAY, UP, 10, OPP_BIRD_KEEPER, 3
diff --git a/data/maps/objects/Route14.asm b/data/maps/objects/Route14.asm
new file mode 100755
index 00000000..565e587f
--- /dev/null
+++ b/data/maps/objects/Route14.asm
@@ -0,0 +1,19 @@
+Route14_Object:
+ db $43 ; border block
+
+ db 0 ; warps
+
+ db 1 ; signs
+ sign 17, 13, 11 ; Route14Text11
+
+ db 10 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 4, 4, STAY, DOWN, 1, OPP_BIRD_KEEPER, 14
+ object SPRITE_BLACK_HAIR_BOY_1, 15, 6, STAY, DOWN, 2, OPP_BIRD_KEEPER, 15
+ object SPRITE_BLACK_HAIR_BOY_1, 12, 11, STAY, DOWN, 3, OPP_BIRD_KEEPER, 16
+ object SPRITE_BLACK_HAIR_BOY_1, 14, 15, STAY, UP, 4, OPP_BIRD_KEEPER, 17
+ object SPRITE_BLACK_HAIR_BOY_1, 15, 31, STAY, LEFT, 5, OPP_BIRD_KEEPER, 4
+ object SPRITE_BLACK_HAIR_BOY_1, 6, 49, STAY, UP, 6, OPP_BIRD_KEEPER, 5
+ object SPRITE_BIKER, 5, 39, STAY, DOWN, 7, OPP_BIKER, 13
+ object SPRITE_BIKER, 4, 30, STAY, RIGHT, 8, OPP_BIKER, 14
+ object SPRITE_BIKER, 15, 30, STAY, LEFT, 9, OPP_BIKER, 15
+ object SPRITE_BIKER, 4, 31, STAY, RIGHT, 10, OPP_BIKER, 2
diff --git a/data/maps/objects/Route15.asm b/data/maps/objects/Route15.asm
new file mode 100755
index 00000000..f52cc1b8
--- /dev/null
+++ b/data/maps/objects/Route15.asm
@@ -0,0 +1,30 @@
+Route15_Object:
+ db $43 ; border block
+
+ db 4 ; warps
+ warp 7, 8, 0, ROUTE_15_GATE_1F
+ warp 7, 9, 1, ROUTE_15_GATE_1F
+ warp 14, 8, 2, ROUTE_15_GATE_1F
+ warp 14, 9, 3, ROUTE_15_GATE_1F
+
+ db 1 ; signs
+ sign 39, 9, 12 ; Route15Text12
+
+ db 11 ; objects
+ object SPRITE_LASS, 41, 11, STAY, DOWN, 1, OPP_JR_TRAINER_F, 20
+ object SPRITE_LASS, 53, 10, STAY, LEFT, 2, OPP_JR_TRAINER_F, 21
+ object SPRITE_BLACK_HAIR_BOY_1, 31, 13, STAY, UP, 3, OPP_BIRD_KEEPER, 6
+ object SPRITE_BLACK_HAIR_BOY_1, 35, 13, STAY, UP, 4, OPP_BIRD_KEEPER, 7
+ object SPRITE_FOULARD_WOMAN, 53, 11, STAY, DOWN, 5, OPP_BEAUTY, 9
+ object SPRITE_FOULARD_WOMAN, 41, 10, STAY, RIGHT, 6, OPP_BEAUTY, 10
+ object SPRITE_BIKER, 48, 10, STAY, DOWN, 7, OPP_BIKER, 3
+ object SPRITE_BIKER, 46, 10, STAY, DOWN, 8, OPP_BIKER, 4
+ object SPRITE_LASS, 37, 5, STAY, RIGHT, 9, OPP_JR_TRAINER_F, 22
+ object SPRITE_LASS, 18, 13, STAY, UP, 10, OPP_JR_TRAINER_F, 23
+ object SPRITE_BALL, 18, 5, STAY, NONE, 11, TM_20
+
+ ; warp-to
+ warp_to 7, 8, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F
+ warp_to 7, 9, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F
+ warp_to 14, 8, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F
+ warp_to 14, 9, ROUTE_15_WIDTH ; ROUTE_15_GATE_1F
diff --git a/data/maps/objects/Route15Gate1F.asm b/data/maps/objects/Route15Gate1F.asm
new file mode 100755
index 00000000..23b1f5a7
--- /dev/null
+++ b/data/maps/objects/Route15Gate1F.asm
@@ -0,0 +1,21 @@
+Route15Gate1F_Object:
+ db $a ; border block
+
+ db 5 ; warps
+ warp 0, 4, 0, -1
+ warp 0, 5, 1, -1
+ warp 7, 4, 2, -1
+ warp 7, 5, 3, -1
+ warp 6, 8, 0, ROUTE_15_GATE_2F
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 0, 4, ROUTE_15_GATE_1F_WIDTH
+ warp_to 0, 5, ROUTE_15_GATE_1F_WIDTH
+ warp_to 7, 4, ROUTE_15_GATE_1F_WIDTH
+ warp_to 7, 5, ROUTE_15_GATE_1F_WIDTH
+ warp_to 6, 8, ROUTE_15_GATE_1F_WIDTH ; ROUTE_15_GATE_2F
diff --git a/data/maps/objects/Route15Gate2F.asm b/data/maps/objects/Route15Gate2F.asm
new file mode 100755
index 00000000..162f2b1f
--- /dev/null
+++ b/data/maps/objects/Route15Gate2F.asm
@@ -0,0 +1,14 @@
+Route15Gate2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 7, 4, ROUTE_15_GATE_1F
+
+ db 1 ; signs
+ sign 6, 2, 2 ; Route15GateUpstairsText2
+
+ db 1 ; objects
+ object SPRITE_OAK_AIDE, 4, 2, STAY, DOWN, 1
+
+ ; warp-to
+ warp_to 7, 7, ROUTE_15_GATE_2F_WIDTH ; ROUTE_15_GATE_1F
diff --git a/data/maps/objects/Route16.asm b/data/maps/objects/Route16.asm
new file mode 100755
index 00000000..fb23e6ca
--- /dev/null
+++ b/data/maps/objects/Route16.asm
@@ -0,0 +1,37 @@
+Route16_Object:
+ db $f ; border block
+
+ db 9 ; warps
+ warp 17, 10, 0, ROUTE_16_GATE_1F
+ warp 17, 11, 1, ROUTE_16_GATE_1F
+ warp 24, 10, 2, ROUTE_16_GATE_1F
+ warp 24, 11, 3, ROUTE_16_GATE_1F
+ warp 17, 4, 4, ROUTE_16_GATE_1F
+ warp 17, 5, 5, ROUTE_16_GATE_1F
+ warp 24, 4, 6, ROUTE_16_GATE_1F
+ warp 24, 5, 7, ROUTE_16_GATE_1F
+ warp 7, 5, 0, ROUTE_16_FLY_HOUSE
+
+ db 2 ; signs
+ sign 27, 11, 8 ; Route16Text8
+ sign 5, 17, 9 ; Route16Text9
+
+ db 7 ; objects
+ object SPRITE_BIKER, 17, 12, STAY, LEFT, 1, OPP_BIKER, 5
+ object SPRITE_BIKER, 14, 13, STAY, RIGHT, 2, OPP_CUE_BALL, 1
+ object SPRITE_BIKER, 11, 12, STAY, UP, 3, OPP_CUE_BALL, 2
+ object SPRITE_BIKER, 9, 11, STAY, LEFT, 4, OPP_BIKER, 6
+ object SPRITE_BIKER, 6, 10, STAY, RIGHT, 5, OPP_CUE_BALL, 3
+ object SPRITE_BIKER, 3, 12, STAY, RIGHT, 6, OPP_BIKER, 7
+ object SPRITE_SNORLAX, 26, 10, STAY, DOWN, 7 ; person
+
+ ; warp-to
+ warp_to 17, 10, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 17, 11, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 24, 10, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 24, 11, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 17, 4, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 17, 5, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 24, 4, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 24, 5, ROUTE_16_WIDTH ; ROUTE_16_GATE_1F
+ warp_to 7, 5, ROUTE_16_WIDTH ; ROUTE_16_FLY_HOUSE
diff --git a/data/maps/objects/Route16FlyHouse.asm b/data/maps/objects/Route16FlyHouse.asm
new file mode 100755
index 00000000..ec493fef
--- /dev/null
+++ b/data/maps/objects/Route16FlyHouse.asm
@@ -0,0 +1,16 @@
+Route16FlyHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 8, -1
+ warp 3, 7, 8, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person
+ object SPRITE_BIRD, 6, 4, WALK, 0, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, ROUTE_16_FLY_HOUSE_WIDTH
+ warp_to 3, 7, ROUTE_16_FLY_HOUSE_WIDTH
diff --git a/data/maps/objects/Route16Gate1F.asm b/data/maps/objects/Route16Gate1F.asm
new file mode 100755
index 00000000..1d5baa1d
--- /dev/null
+++ b/data/maps/objects/Route16Gate1F.asm
@@ -0,0 +1,30 @@
+Route16Gate1F_Object:
+ db $a ; border block
+
+ db 9 ; warps
+ warp 0, 8, 0, -1
+ warp 0, 9, 1, -1
+ warp 7, 8, 2, -1
+ warp 7, 9, 2, -1
+ warp 0, 2, 4, -1
+ warp 0, 3, 5, -1
+ warp 7, 2, 6, -1
+ warp 7, 3, 7, -1
+ warp 6, 12, 0, ROUTE_16_GATE_2F
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_GUARD, 4, 5, STAY, DOWN, 1 ; person
+ object SPRITE_GAMBLER, 4, 3, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 0, 8, ROUTE_16_GATE_1F_WIDTH
+ warp_to 0, 9, ROUTE_16_GATE_1F_WIDTH
+ warp_to 7, 8, ROUTE_16_GATE_1F_WIDTH
+ warp_to 7, 9, ROUTE_16_GATE_1F_WIDTH
+ warp_to 0, 2, ROUTE_16_GATE_1F_WIDTH
+ warp_to 0, 3, ROUTE_16_GATE_1F_WIDTH
+ warp_to 7, 2, ROUTE_16_GATE_1F_WIDTH
+ warp_to 7, 3, ROUTE_16_GATE_1F_WIDTH
+ warp_to 6, 12, ROUTE_16_GATE_1F_WIDTH ; ROUTE_16_GATE_2F
diff --git a/data/maps/objects/Route16Gate2F.asm b/data/maps/objects/Route16Gate2F.asm
new file mode 100755
index 00000000..5914f854
--- /dev/null
+++ b/data/maps/objects/Route16Gate2F.asm
@@ -0,0 +1,16 @@
+Route16Gate2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 7, 8, ROUTE_16_GATE_1F
+
+ db 2 ; signs
+ sign 1, 2, 3 ; Route16GateUpstairsText3
+ sign 6, 2, 4 ; Route16GateUpstairsText4
+
+ db 2 ; objects
+ object SPRITE_YOUNG_BOY, 4, 2, STAY, NONE, 1 ; person
+ object SPRITE_LITTLE_GIRL, 2, 5, WALK, 2, 2 ; person
+
+ ; warp-to
+ warp_to 7, 7, ROUTE_16_GATE_2F_WIDTH ; ROUTE_16_GATE_1F
diff --git a/data/maps/objects/Route17.asm b/data/maps/objects/Route17.asm
new file mode 100755
index 00000000..f5bc4307
--- /dev/null
+++ b/data/maps/objects/Route17.asm
@@ -0,0 +1,24 @@
+Route17_Object:
+ db $43 ; border block
+
+ db 0 ; warps
+
+ db 6 ; signs
+ sign 9, 51, 11 ; Route17Text11
+ sign 9, 63, 12 ; Route17Text12
+ sign 9, 75, 13 ; Route17Text13
+ sign 9, 87, 14 ; Route17Text14
+ sign 9, 111, 15 ; Route17Text15
+ sign 9, 141, 16 ; Route17Text16
+
+ db 10 ; objects
+ object SPRITE_BIKER, 12, 19, STAY, LEFT, 1, OPP_CUE_BALL, 4
+ object SPRITE_BIKER, 11, 16, STAY, RIGHT, 2, OPP_CUE_BALL, 5
+ object SPRITE_BIKER, 4, 18, STAY, UP, 3, OPP_BIKER, 8
+ object SPRITE_BIKER, 7, 32, STAY, LEFT, 4, OPP_BIKER, 9
+ object SPRITE_BIKER, 14, 34, STAY, RIGHT, 5, OPP_BIKER, 10
+ object SPRITE_BIKER, 17, 58, STAY, LEFT, 6, OPP_CUE_BALL, 6
+ object SPRITE_BIKER, 2, 68, STAY, RIGHT, 7, OPP_CUE_BALL, 7
+ object SPRITE_BIKER, 14, 98, STAY, RIGHT, 8, OPP_CUE_BALL, 8
+ object SPRITE_BIKER, 5, 98, STAY, LEFT, 9, OPP_BIKER, 11
+ object SPRITE_BIKER, 10, 118, STAY, DOWN, 10, OPP_BIKER, 12
diff --git a/data/maps/objects/Route18.asm b/data/maps/objects/Route18.asm
new file mode 100755
index 00000000..8bacd6c0
--- /dev/null
+++ b/data/maps/objects/Route18.asm
@@ -0,0 +1,23 @@
+Route18_Object:
+ db $43 ; border block
+
+ db 4 ; warps
+ warp 33, 8, 0, ROUTE_18_GATE_1F
+ warp 33, 9, 1, ROUTE_18_GATE_1F
+ warp 40, 8, 2, ROUTE_18_GATE_1F
+ warp 40, 9, 3, ROUTE_18_GATE_1F
+
+ db 2 ; signs
+ sign 43, 7, 4 ; Route18Text4
+ sign 33, 5, 5 ; Route18Text5
+
+ db 3 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 36, 11, STAY, RIGHT, 1, OPP_BIRD_KEEPER, 8
+ object SPRITE_BLACK_HAIR_BOY_1, 40, 15, STAY, LEFT, 2, OPP_BIRD_KEEPER, 9
+ object SPRITE_BLACK_HAIR_BOY_1, 42, 13, STAY, LEFT, 3, OPP_BIRD_KEEPER, 10
+
+ ; warp-to
+ warp_to 33, 8, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F
+ warp_to 33, 9, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F
+ warp_to 40, 8, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F
+ warp_to 40, 9, ROUTE_18_WIDTH ; ROUTE_18_GATE_1F
diff --git a/data/maps/objects/Route18Gate1F.asm b/data/maps/objects/Route18Gate1F.asm
new file mode 100755
index 00000000..83cb386a
--- /dev/null
+++ b/data/maps/objects/Route18Gate1F.asm
@@ -0,0 +1,21 @@
+Route18Gate1F_Object:
+ db $a ; border block
+
+ db 5 ; warps
+ warp 0, 4, 0, -1
+ warp 0, 5, 1, -1
+ warp 7, 4, 2, -1
+ warp 7, 5, 3, -1
+ warp 6, 8, 0, ROUTE_18_GATE_2F
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 4, 1, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 0, 4, ROUTE_18_GATE_1F_WIDTH
+ warp_to 0, 5, ROUTE_18_GATE_1F_WIDTH
+ warp_to 7, 4, ROUTE_18_GATE_1F_WIDTH
+ warp_to 7, 5, ROUTE_18_GATE_1F_WIDTH
+ warp_to 6, 8, ROUTE_18_GATE_1F_WIDTH ; ROUTE_18_GATE_2F
diff --git a/data/maps/objects/Route18Gate2F.asm b/data/maps/objects/Route18Gate2F.asm
new file mode 100755
index 00000000..e48ec3b8
--- /dev/null
+++ b/data/maps/objects/Route18Gate2F.asm
@@ -0,0 +1,15 @@
+Route18Gate2F_Object:
+ db $a ; border block
+
+ db 1 ; warps
+ warp 7, 7, 4, ROUTE_18_GATE_1F
+
+ db 2 ; signs
+ sign 1, 2, 2 ; Route18GateUpstairsText2
+ sign 6, 2, 3 ; Route18GateUpstairsText3
+
+ db 1 ; objects
+ object SPRITE_BUG_CATCHER, 4, 2, WALK, 2, 1 ; person
+
+ ; warp-to
+ warp_to 7, 7, ROUTE_18_GATE_2F_WIDTH ; ROUTE_18_GATE_1F
diff --git a/data/maps/objects/Route19.asm b/data/maps/objects/Route19.asm
new file mode 100755
index 00000000..9b39618e
--- /dev/null
+++ b/data/maps/objects/Route19.asm
@@ -0,0 +1,21 @@
+Route19_Object:
+ db $43 ; border block
+
+ db 0 ; warps
+
+ db 1 ; signs
+ sign 11, 9, 11 ; Route19Text11
+
+ db 10 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 8, 7, STAY, LEFT, 1, OPP_SWIMMER, 2
+ object SPRITE_BLACK_HAIR_BOY_1, 13, 7, STAY, LEFT, 2, OPP_SWIMMER, 3
+ object SPRITE_SWIMMER, 13, 25, STAY, LEFT, 3, OPP_SWIMMER, 4
+ object SPRITE_SWIMMER, 4, 27, STAY, RIGHT, 4, OPP_SWIMMER, 5
+ object SPRITE_SWIMMER, 16, 31, STAY, UP, 5, OPP_SWIMMER, 6
+ object SPRITE_SWIMMER, 9, 11, STAY, DOWN, 6, OPP_SWIMMER, 7
+ object SPRITE_SWIMMER, 8, 43, STAY, LEFT, 7, OPP_BEAUTY, 12
+ object SPRITE_SWIMMER, 11, 43, STAY, RIGHT, 8, OPP_BEAUTY, 13
+ object SPRITE_SWIMMER, 9, 42, STAY, UP, 9, OPP_SWIMMER, 8
+ object SPRITE_SWIMMER, 10, 44, STAY, DOWN, 10, OPP_BEAUTY, 14
+
+ ; warp-to
diff --git a/data/maps/objects/Route2.asm b/data/maps/objects/Route2.asm
new file mode 100755
index 00000000..b27ad199
--- /dev/null
+++ b/data/maps/objects/Route2.asm
@@ -0,0 +1,33 @@
+Route2_Object:
+ db $f ; border block
+
+ db 6 ; warps
+ warp 12, 9, 0, DIGLETTS_CAVE_ROUTE_2
+ warp 3, 11, 1, VIRIDIAN_FOREST_NORTH_GATE
+ warp 15, 19, 0, ROUTE_2_TRADE_HOUSE
+ warp 16, 35, 1, ROUTE_2_GATE
+ warp 15, 39, 2, ROUTE_2_GATE
+ warp 3, 43, 2, VIRIDIAN_FOREST_SOUTH_GATE
+
+ db 2 ; signs
+ sign 5, 65, 3 ; Route2Text3
+ sign 11, 11, 4 ; Route2Text4
+
+ db 2 ; objects
+ object SPRITE_BALL, 13, 54, STAY, NONE, 1, MOON_STONE
+ object SPRITE_BALL, 13, 45, STAY, NONE, 2, HP_UP
+
+ ; warp-to
+ warp_to 12, 9, ROUTE_2_WIDTH ; DIGLETTS_CAVE_ROUTE_2
+ warp_to 3, 11, ROUTE_2_WIDTH ; VIRIDIAN_FOREST_NORTH_GATE
+ warp_to 15, 19, ROUTE_2_WIDTH ; ROUTE_2_TRADE_HOUSE
+ warp_to 16, 35, ROUTE_2_WIDTH ; ROUTE_2_GATE
+ warp_to 15, 39, ROUTE_2_WIDTH ; ROUTE_2_GATE
+ warp_to 3, 43, ROUTE_2_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE
+
+ ; unused
+ warp_to 2, 7, 4
+ db $12, $c7, $9, $7
+ warp_to 2, 7, 4
+ warp_to 2, 7, 4
+ warp_to 2, 7, 4
diff --git a/data/maps/objects/Route20.asm b/data/maps/objects/Route20.asm
new file mode 100755
index 00000000..7bceef97
--- /dev/null
+++ b/data/maps/objects/Route20.asm
@@ -0,0 +1,26 @@
+Route20_Object:
+ db $43 ; border block
+
+ db 2 ; warps
+ warp 48, 5, 0, SEAFOAM_ISLANDS_1F
+ warp 58, 9, 2, SEAFOAM_ISLANDS_1F
+
+ db 2 ; signs
+ sign 51, 7, 11 ; Route20Text11
+ sign 57, 11, 12 ; Route20Text12
+
+ db 10 ; objects
+ object SPRITE_SWIMMER, 87, 8, STAY, UP, 1, OPP_SWIMMER, 9
+ object SPRITE_SWIMMER, 68, 11, STAY, UP, 2, OPP_BEAUTY, 15
+ object SPRITE_SWIMMER, 45, 10, STAY, DOWN, 3, OPP_BEAUTY, 6
+ object SPRITE_SWIMMER, 55, 14, STAY, RIGHT, 4, OPP_JR_TRAINER_F, 24
+ object SPRITE_SWIMMER, 38, 13, STAY, DOWN, 5, OPP_SWIMMER, 10
+ object SPRITE_SWIMMER, 87, 13, STAY, UP, 6, OPP_SWIMMER, 11
+ object SPRITE_BLACK_HAIR_BOY_1, 34, 9, STAY, UP, 7, OPP_BIRD_KEEPER, 11
+ object SPRITE_SWIMMER, 25, 7, STAY, UP, 8, OPP_BEAUTY, 7
+ object SPRITE_SWIMMER, 24, 12, STAY, DOWN, 9, OPP_JR_TRAINER_F, 16
+ object SPRITE_SWIMMER, 15, 8, STAY, UP, 10, OPP_BEAUTY, 8
+
+ ; warp-to
+ warp_to 48, 5, ROUTE_20_WIDTH ; SEAFOAM_ISLANDS_1F
+ warp_to 58, 9, ROUTE_20_WIDTH ; SEAFOAM_ISLANDS_1F
diff --git a/data/maps/objects/Route21.asm b/data/maps/objects/Route21.asm
new file mode 100755
index 00000000..b7759b59
--- /dev/null
+++ b/data/maps/objects/Route21.asm
@@ -0,0 +1,17 @@
+Route21_Object:
+ db $43 ; border block
+
+ db 0 ; warps
+
+ db 0 ; signs
+
+ db 9 ; objects
+ object SPRITE_FISHER2, 4, 24, STAY, LEFT, 1, OPP_FISHER, 7
+ object SPRITE_FISHER2, 6, 25, STAY, DOWN, 2, OPP_FISHER, 9
+ object SPRITE_SWIMMER, 10, 31, STAY, UP, 3, OPP_SWIMMER, 12
+ object SPRITE_SWIMMER, 12, 30, STAY, RIGHT, 4, OPP_CUE_BALL, 9
+ object SPRITE_SWIMMER, 16, 63, STAY, DOWN, 5, OPP_SWIMMER, 13
+ object SPRITE_SWIMMER, 5, 71, STAY, RIGHT, 6, OPP_SWIMMER, 14
+ object SPRITE_SWIMMER, 15, 71, STAY, LEFT, 7, OPP_SWIMMER, 15
+ object SPRITE_FISHER2, 14, 56, STAY, LEFT, 8, OPP_FISHER, 8
+ object SPRITE_FISHER2, 17, 57, STAY, RIGHT, 9, OPP_FISHER, 10
diff --git a/data/maps/objects/Route22.asm b/data/maps/objects/Route22.asm
new file mode 100755
index 00000000..56e759fd
--- /dev/null
+++ b/data/maps/objects/Route22.asm
@@ -0,0 +1,15 @@
+Route22_Object:
+ db $2c ; border block
+
+ db 1 ; warps
+ warp 8, 5, 0, ROUTE_22_GATE
+
+ db 1 ; signs
+ sign 7, 11, 3 ; Route22FrontGateText
+
+ db 2 ; objects
+ object SPRITE_BLUE, 25, 5, STAY, NONE, 1 ; person
+ object SPRITE_BLUE, 25, 5, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 8, 5, ROUTE_22_WIDTH ; ROUTE_22_GATE
diff --git a/data/maps/objects/Route22Gate.asm b/data/maps/objects/Route22Gate.asm
new file mode 100755
index 00000000..3f693c7f
--- /dev/null
+++ b/data/maps/objects/Route22Gate.asm
@@ -0,0 +1,19 @@
+Route22Gate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 4, 7, 0, -1
+ warp 5, 7, 0, -1
+ warp 4, 0, 0, -1
+ warp 5, 0, 1, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person
+
+ ; warp-to
+ warp_to 4, 7, ROUTE_22_GATE_WIDTH
+ warp_to 5, 7, ROUTE_22_GATE_WIDTH
+ warp_to 4, 0, ROUTE_22_GATE_WIDTH
+ warp_to 5, 0, ROUTE_22_GATE_WIDTH
diff --git a/data/maps/objects/Route23.asm b/data/maps/objects/Route23.asm
new file mode 100755
index 00000000..b510c285
--- /dev/null
+++ b/data/maps/objects/Route23.asm
@@ -0,0 +1,26 @@
+Route23_Object:
+ db $f ; border block
+
+ db 4 ; warps
+ warp 7, 139, 2, ROUTE_22_GATE
+ warp 8, 139, 3, ROUTE_22_GATE
+ warp 4, 31, 0, VICTORY_ROAD_1F
+ warp 14, 31, 1, VICTORY_ROAD_2F
+
+ db 1 ; signs
+ sign 3, 33, 8 ; Route23Text8
+
+ db 7 ; objects
+ object SPRITE_GUARD, 4, 35, STAY, DOWN, 1 ; person
+ object SPRITE_GUARD, 10, 56, STAY, DOWN, 2 ; person
+ object SPRITE_SWIMMER, 8, 85, STAY, DOWN, 3 ; person
+ object SPRITE_SWIMMER, 11, 96, STAY, DOWN, 4 ; person
+ object SPRITE_GUARD, 12, 105, STAY, DOWN, 5 ; person
+ object SPRITE_GUARD, 8, 119, STAY, DOWN, 6 ; person
+ object SPRITE_GUARD, 8, 136, STAY, DOWN, 7 ; person
+
+ ; warp-to
+ warp_to 7, 139, ROUTE_23_WIDTH ; ROUTE_22_GATE
+ warp_to 8, 139, ROUTE_23_WIDTH ; ROUTE_22_GATE
+ warp_to 4, 31, ROUTE_23_WIDTH ; VICTORY_ROAD_1F
+ warp_to 14, 31, ROUTE_23_WIDTH ; VICTORY_ROAD_2F
diff --git a/data/maps/objects/Route24.asm b/data/maps/objects/Route24.asm
new file mode 100755
index 00000000..8ef0d2b9
--- /dev/null
+++ b/data/maps/objects/Route24.asm
@@ -0,0 +1,16 @@
+Route24_Object:
+ db $2c ; border block
+
+ db 0 ; warps
+
+ db 0 ; signs
+
+ db 8 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 11, 15, STAY, LEFT, 1, OPP_ROCKET, 6
+ object SPRITE_BLACK_HAIR_BOY_1, 5, 20, STAY, UP, 2, OPP_JR_TRAINER_M, 2
+ object SPRITE_BLACK_HAIR_BOY_1, 11, 19, STAY, LEFT, 3, OPP_JR_TRAINER_M, 3
+ object SPRITE_LASS, 10, 22, STAY, RIGHT, 4, OPP_LASS, 7
+ object SPRITE_BUG_CATCHER, 11, 25, STAY, LEFT, 5, OPP_YOUNGSTER, 4
+ object SPRITE_LASS, 10, 28, STAY, RIGHT, 6, OPP_LASS, 8
+ object SPRITE_BUG_CATCHER, 11, 31, STAY, LEFT, 7, OPP_BUG_CATCHER, 9
+ object SPRITE_BALL, 10, 5, STAY, NONE, 8, TM_45
diff --git a/data/maps/objects/Route25.asm b/data/maps/objects/Route25.asm
new file mode 100755
index 00000000..a85f85ca
--- /dev/null
+++ b/data/maps/objects/Route25.asm
@@ -0,0 +1,23 @@
+Route25_Object:
+ db $2c ; border block
+
+ db 1 ; warps
+ warp 45, 3, 0, BILLS_HOUSE
+
+ db 1 ; signs
+ sign 43, 3, 11 ; Route25Text11
+
+ db 10 ; objects
+ object SPRITE_BUG_CATCHER, 14, 2, STAY, DOWN, 1, OPP_YOUNGSTER, 5
+ object SPRITE_BUG_CATCHER, 18, 5, STAY, UP, 2, OPP_YOUNGSTER, 6
+ object SPRITE_BLACK_HAIR_BOY_1, 24, 4, STAY, DOWN, 3, OPP_JR_TRAINER_M, 2
+ object SPRITE_LASS, 18, 8, STAY, RIGHT, 4, OPP_LASS, 9
+ object SPRITE_BUG_CATCHER, 32, 3, STAY, LEFT, 5, OPP_YOUNGSTER, 7
+ object SPRITE_LASS, 37, 4, STAY, DOWN, 6, OPP_LASS, 10
+ object SPRITE_HIKER, 8, 4, STAY, RIGHT, 7, OPP_HIKER, 2
+ object SPRITE_HIKER, 23, 9, STAY, UP, 8, OPP_HIKER, 3
+ object SPRITE_HIKER, 13, 7, STAY, RIGHT, 9, OPP_HIKER, 4
+ object SPRITE_BALL, 22, 2, STAY, NONE, 10, TM_19
+
+ ; warp-to
+ warp_to 45, 3, ROUTE_25_WIDTH ; BILLS_HOUSE
diff --git a/data/maps/objects/Route2Gate.asm b/data/maps/objects/Route2Gate.asm
new file mode 100755
index 00000000..a7feb780
--- /dev/null
+++ b/data/maps/objects/Route2Gate.asm
@@ -0,0 +1,20 @@
+Route2Gate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 4, 0, 3, -1
+ warp 5, 0, 3, -1
+ warp 4, 7, 4, -1
+ warp 5, 7, 4, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_OAK_AIDE, 1, 4, STAY, LEFT, 1 ; person
+ object SPRITE_BUG_CATCHER, 5, 4, WALK, 2, 2 ; person
+
+ ; warp-to
+ warp_to 4, 0, ROUTE_2_GATE_WIDTH
+ warp_to 5, 0, ROUTE_2_GATE_WIDTH
+ warp_to 4, 7, ROUTE_2_GATE_WIDTH
+ warp_to 5, 7, ROUTE_2_GATE_WIDTH
diff --git a/data/maps/objects/Route2TradeHouse.asm b/data/maps/objects/Route2TradeHouse.asm
new file mode 100755
index 00000000..89ece3ea
--- /dev/null
+++ b/data/maps/objects/Route2TradeHouse.asm
@@ -0,0 +1,16 @@
+Route2TradeHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 2, -1
+ warp 3, 7, 2, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_OAK_AIDE, 2, 4, STAY, RIGHT, 1 ; person
+ object SPRITE_GAMEBOY_KID_COPY, 4, 1, STAY, DOWN, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, ROUTE_2_TRADE_HOUSE_WIDTH
+ warp_to 3, 7, ROUTE_2_TRADE_HOUSE_WIDTH
diff --git a/data/maps/objects/Route3.asm b/data/maps/objects/Route3.asm
new file mode 100755
index 00000000..372ea6cf
--- /dev/null
+++ b/data/maps/objects/Route3.asm
@@ -0,0 +1,18 @@
+Route3_Object:
+ db $2c ; border block
+
+ db 0 ; warps
+
+ db 1 ; signs
+ sign 59, 9, 10 ; Route3Text10
+
+ db 9 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 57, 11, STAY, NONE, 1 ; person
+ object SPRITE_BUG_CATCHER, 10, 6, STAY, RIGHT, 2, OPP_BUG_CATCHER, 4
+ object SPRITE_BUG_CATCHER, 14, 4, STAY, DOWN, 3, OPP_YOUNGSTER, 1
+ object SPRITE_LASS, 16, 9, STAY, LEFT, 4, OPP_LASS, 1
+ object SPRITE_BUG_CATCHER, 19, 5, STAY, DOWN, 5, OPP_BUG_CATCHER, 5
+ object SPRITE_LASS, 23, 4, STAY, LEFT, 6, OPP_LASS, 2
+ object SPRITE_BUG_CATCHER, 22, 9, STAY, LEFT, 7, OPP_YOUNGSTER, 2
+ object SPRITE_BUG_CATCHER, 24, 6, STAY, RIGHT, 8, OPP_BUG_CATCHER, 6
+ object SPRITE_LASS, 33, 10, STAY, UP, 9, OPP_LASS, 3
diff --git a/data/maps/objects/Route4.asm b/data/maps/objects/Route4.asm
new file mode 100755
index 00000000..4ab88f8f
--- /dev/null
+++ b/data/maps/objects/Route4.asm
@@ -0,0 +1,22 @@
+Route4_Object:
+ db $2c ; border block
+
+ db 3 ; warps
+ warp 11, 5, 0, MT_MOON_POKECENTER
+ warp 18, 5, 0, MT_MOON_1F
+ warp 24, 5, 7, MT_MOON_B1F
+
+ db 3 ; signs
+ sign 12, 5, 4 ; PokeCenterSignText
+ sign 17, 7, 5 ; Route4Text5
+ sign 27, 7, 6 ; Route4Text6
+
+ db 3 ; objects
+ object SPRITE_LASS, 9, 8, WALK, 0, 1 ; person
+ object SPRITE_LASS, 63, 3, STAY, RIGHT, 2, OPP_LASS, 4
+ object SPRITE_BALL, 57, 3, STAY, NONE, 3, TM_04
+
+ ; warp-to
+ warp_to 11, 5, ROUTE_4_WIDTH ; MT_MOON_POKECENTER
+ warp_to 18, 5, ROUTE_4_WIDTH ; MT_MOON_1F
+ warp_to 24, 5, ROUTE_4_WIDTH ; MT_MOON_B1F
diff --git a/data/maps/objects/Route5.asm b/data/maps/objects/Route5.asm
new file mode 100755
index 00000000..df2c8c03
--- /dev/null
+++ b/data/maps/objects/Route5.asm
@@ -0,0 +1,21 @@
+Route5_Object:
+ db $a ; border block
+
+ db 5 ; warps
+ warp 10, 29, 3, ROUTE_5_GATE
+ warp 9, 29, 2, ROUTE_5_GATE
+ warp 10, 33, 0, ROUTE_5_GATE
+ warp 17, 27, 0, UNDERGROUND_PATH_ROUTE_5
+ warp 10, 21, 0, DAYCARE
+
+ db 1 ; signs
+ sign 17, 29, 1 ; Route5Text1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 10, 29, ROUTE_5_WIDTH ; ROUTE_5_GATE
+ warp_to 9, 29, ROUTE_5_WIDTH ; ROUTE_5_GATE
+ warp_to 10, 33, ROUTE_5_WIDTH ; ROUTE_5_GATE
+ warp_to 17, 27, ROUTE_5_WIDTH ; UNDERGROUND_PATH_ROUTE_5
+ warp_to 10, 21, ROUTE_5_WIDTH ; DAYCARE
diff --git a/data/maps/objects/Route5Gate.asm b/data/maps/objects/Route5Gate.asm
new file mode 100755
index 00000000..e0e06a1d
--- /dev/null
+++ b/data/maps/objects/Route5Gate.asm
@@ -0,0 +1,19 @@
+Route5Gate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 3, 5, 2, -1
+ warp 4, 5, 2, -1
+ warp 3, 0, 1, -1
+ warp 4, 0, 0, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 1, 3, STAY, RIGHT, 1 ; person
+
+ ; warp-to
+ warp_to 3, 5, ROUTE_5_GATE_WIDTH
+ warp_to 4, 5, ROUTE_5_GATE_WIDTH
+ warp_to 3, 0, ROUTE_5_GATE_WIDTH
+ warp_to 4, 0, ROUTE_5_GATE_WIDTH
diff --git a/data/maps/objects/Route6.asm b/data/maps/objects/Route6.asm
new file mode 100755
index 00000000..fc2d7e24
--- /dev/null
+++ b/data/maps/objects/Route6.asm
@@ -0,0 +1,25 @@
+Route6_Object:
+ db $f ; border block
+
+ db 4 ; warps
+ warp 9, 1, 2, ROUTE_6_GATE
+ warp 10, 1, 2, ROUTE_6_GATE
+ warp 10, 7, 0, ROUTE_6_GATE
+ warp 17, 13, 0, UNDERGROUND_PATH_ROUTE_6
+
+ db 1 ; signs
+ sign 19, 15, 7 ; Route6Text7
+
+ db 6 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 10, 21, STAY, RIGHT, 1, OPP_JR_TRAINER_M, 4
+ object SPRITE_LASS, 11, 21, STAY, LEFT, 2, OPP_JR_TRAINER_F, 2
+ object SPRITE_BUG_CATCHER, 0, 15, STAY, RIGHT, 3, OPP_BUG_CATCHER, 10
+ object SPRITE_BLACK_HAIR_BOY_1, 11, 31, STAY, LEFT, 4, OPP_JR_TRAINER_M, 5
+ object SPRITE_LASS, 11, 30, STAY, LEFT, 5, OPP_JR_TRAINER_F, 3
+ object SPRITE_BUG_CATCHER, 19, 26, STAY, LEFT, 6, OPP_BUG_CATCHER, 11
+
+ ; warp-to
+ warp_to 9, 1, ROUTE_6_WIDTH ; ROUTE_6_GATE
+ warp_to 10, 1, ROUTE_6_WIDTH ; ROUTE_6_GATE
+ warp_to 10, 7, ROUTE_6_WIDTH ; ROUTE_6_GATE
+ warp_to 17, 13, ROUTE_6_WIDTH ; UNDERGROUND_PATH_ROUTE_6
diff --git a/data/maps/objects/Route6Gate.asm b/data/maps/objects/Route6Gate.asm
new file mode 100755
index 00000000..8ed96d04
--- /dev/null
+++ b/data/maps/objects/Route6Gate.asm
@@ -0,0 +1,19 @@
+Route6Gate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 3, 5, 2, -1
+ warp 4, 5, 2, -1
+ warp 3, 0, 1, -1
+ warp 4, 0, 1, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person
+
+ ; warp-to
+ warp_to 3, 5, ROUTE_6_GATE_WIDTH
+ warp_to 4, 5, ROUTE_6_GATE_WIDTH
+ warp_to 3, 0, ROUTE_6_GATE_WIDTH
+ warp_to 4, 0, ROUTE_6_GATE_WIDTH
diff --git a/data/maps/objects/Route7.asm b/data/maps/objects/Route7.asm
new file mode 100755
index 00000000..182904ef
--- /dev/null
+++ b/data/maps/objects/Route7.asm
@@ -0,0 +1,21 @@
+Route7_Object:
+ db $f ; border block
+
+ db 5 ; warps
+ warp 18, 9, 2, ROUTE_7_GATE
+ warp 18, 10, 3, ROUTE_7_GATE
+ warp 11, 9, 0, ROUTE_7_GATE
+ warp 11, 10, 1, ROUTE_7_GATE
+ warp 5, 13, 0, UNDERGROUND_PATH_ROUTE_7
+
+ db 1 ; signs
+ sign 3, 13, 1 ; Route7Text1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 18, 9, ROUTE_7_WIDTH ; ROUTE_7_GATE
+ warp_to 18, 10, ROUTE_7_WIDTH ; ROUTE_7_GATE
+ warp_to 11, 9, ROUTE_7_WIDTH ; ROUTE_7_GATE
+ warp_to 11, 10, ROUTE_7_WIDTH ; ROUTE_7_GATE
+ warp_to 5, 13, ROUTE_7_WIDTH ; UNDERGROUND_PATH_ROUTE_7
diff --git a/data/maps/objects/Route7Gate.asm b/data/maps/objects/Route7Gate.asm
new file mode 100755
index 00000000..7f1afe0a
--- /dev/null
+++ b/data/maps/objects/Route7Gate.asm
@@ -0,0 +1,19 @@
+Route7Gate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 0, 3, 3, -1
+ warp 0, 4, 3, -1
+ warp 5, 3, 0, -1
+ warp 5, 4, 1, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 3, 1, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 0, 3, ROUTE_7_GATE_WIDTH
+ warp_to 0, 4, ROUTE_7_GATE_WIDTH
+ warp_to 5, 3, ROUTE_7_GATE_WIDTH
+ warp_to 5, 4, ROUTE_7_GATE_WIDTH
diff --git a/data/maps/objects/Route8.asm b/data/maps/objects/Route8.asm
new file mode 100755
index 00000000..137d70a0
--- /dev/null
+++ b/data/maps/objects/Route8.asm
@@ -0,0 +1,30 @@
+Route8_Object:
+ db $2c ; border block
+
+ db 5 ; warps
+ warp 1, 9, 0, ROUTE_8_GATE
+ warp 1, 10, 1, ROUTE_8_GATE
+ warp 8, 9, 2, ROUTE_8_GATE
+ warp 8, 10, 3, ROUTE_8_GATE
+ warp 13, 3, 0, UNDERGROUND_PATH_ROUTE_8
+
+ db 1 ; signs
+ sign 17, 3, 10 ; Route8Text10
+
+ db 9 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 8, 5, STAY, RIGHT, 1, OPP_SUPER_NERD, 3
+ object SPRITE_GAMBLER, 13, 9, STAY, UP, 2, OPP_GAMBLER, 5
+ object SPRITE_BLACK_HAIR_BOY_2, 42, 6, STAY, UP, 3, OPP_SUPER_NERD, 4
+ object SPRITE_LASS, 26, 3, STAY, LEFT, 4, OPP_LASS, 13
+ object SPRITE_BLACK_HAIR_BOY_2, 26, 4, STAY, RIGHT, 5, OPP_SUPER_NERD, 5
+ object SPRITE_LASS, 26, 5, STAY, LEFT, 6, OPP_LASS, 14
+ object SPRITE_LASS, 26, 6, STAY, RIGHT, 7, OPP_LASS, 15
+ object SPRITE_GAMBLER, 46, 13, STAY, DOWN, 8, OPP_GAMBLER, 7
+ object SPRITE_LASS, 51, 12, STAY, LEFT, 9, OPP_LASS, 16
+
+ ; warp-to
+ warp_to 1, 9, ROUTE_8_WIDTH ; ROUTE_8_GATE
+ warp_to 1, 10, ROUTE_8_WIDTH ; ROUTE_8_GATE
+ warp_to 8, 9, ROUTE_8_WIDTH ; ROUTE_8_GATE
+ warp_to 8, 10, ROUTE_8_WIDTH ; ROUTE_8_GATE
+ warp_to 13, 3, ROUTE_8_WIDTH ; UNDERGROUND_PATH_ROUTE_8
diff --git a/data/maps/objects/Route8Gate.asm b/data/maps/objects/Route8Gate.asm
new file mode 100755
index 00000000..3bba95a0
--- /dev/null
+++ b/data/maps/objects/Route8Gate.asm
@@ -0,0 +1,19 @@
+Route8Gate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 0, 3, 0, -1
+ warp 0, 4, 1, -1
+ warp 5, 3, 2, -1
+ warp 5, 4, 3, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GUARD, 2, 1, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 0, 3, ROUTE_8_GATE_WIDTH
+ warp_to 0, 4, ROUTE_8_GATE_WIDTH
+ warp_to 5, 3, ROUTE_8_GATE_WIDTH
+ warp_to 5, 4, ROUTE_8_GATE_WIDTH
diff --git a/data/maps/objects/Route9.asm b/data/maps/objects/Route9.asm
new file mode 100755
index 00000000..a991c0c7
--- /dev/null
+++ b/data/maps/objects/Route9.asm
@@ -0,0 +1,19 @@
+Route9_Object:
+ db $2c ; border block
+
+ db 0 ; warps
+
+ db 1 ; signs
+ sign 25, 7, 11 ; Route9Text11
+
+ db 10 ; objects
+ object SPRITE_LASS, 13, 10, STAY, LEFT, 1, OPP_JR_TRAINER_F, 5
+ object SPRITE_BLACK_HAIR_BOY_1, 24, 7, STAY, LEFT, 2, OPP_JR_TRAINER_M, 7
+ object SPRITE_BLACK_HAIR_BOY_1, 31, 7, STAY, RIGHT, 3, OPP_JR_TRAINER_M, 8
+ object SPRITE_LASS, 48, 8, STAY, RIGHT, 4, OPP_JR_TRAINER_F, 6
+ object SPRITE_HIKER, 16, 15, STAY, LEFT, 5, OPP_HIKER, 11
+ object SPRITE_HIKER, 43, 3, STAY, LEFT, 6, OPP_HIKER, 6
+ object SPRITE_BUG_CATCHER, 22, 2, STAY, DOWN, 7, OPP_BUG_CATCHER, 13
+ object SPRITE_HIKER, 45, 15, STAY, RIGHT, 8, OPP_HIKER, 5
+ object SPRITE_BUG_CATCHER, 40, 8, STAY, RIGHT, 9, OPP_BUG_CATCHER, 14
+ object SPRITE_BALL, 10, 15, STAY, NONE, 10, TM_30
diff --git a/data/maps/objects/SSAnne1F.asm b/data/maps/objects/SSAnne1F.asm
new file mode 100755
index 00000000..3e454f06
--- /dev/null
+++ b/data/maps/objects/SSAnne1F.asm
@@ -0,0 +1,34 @@
+SSAnne1F_Object:
+ db $c ; border block
+
+ db 11 ; warps
+ warp 26, 0, 1, VERMILION_DOCK
+ warp 27, 0, 1, VERMILION_DOCK
+ warp 31, 8, 0, SS_ANNE_1F_ROOMS
+ warp 23, 8, 1, SS_ANNE_1F_ROOMS
+ warp 19, 8, 2, SS_ANNE_1F_ROOMS
+ warp 15, 8, 3, SS_ANNE_1F_ROOMS
+ warp 11, 8, 4, SS_ANNE_1F_ROOMS
+ warp 7, 8, 5, SS_ANNE_1F_ROOMS
+ warp 2, 6, 6, SS_ANNE_2F
+ warp 37, 15, 5, SS_ANNE_B1F
+ warp 3, 16, 0, SS_ANNE_KITCHEN
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_WAITER, 12, 6, WALK, 2, 1 ; person
+ object SPRITE_SAILOR, 27, 5, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 26, 0, SS_ANNE_1F_WIDTH ; VERMILION_DOCK
+ warp_to 27, 0, SS_ANNE_1F_WIDTH ; VERMILION_DOCK
+ warp_to 31, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS
+ warp_to 23, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS
+ warp_to 19, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS
+ warp_to 15, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS
+ warp_to 11, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS
+ warp_to 7, 8, SS_ANNE_1F_WIDTH ; SS_ANNE_1F_ROOMS
+ warp_to 2, 6, SS_ANNE_1F_WIDTH ; SS_ANNE_2F
+ warp_to 37, 15, SS_ANNE_1F_WIDTH ; SS_ANNE_B1F
+ warp_to 3, 16, SS_ANNE_1F_WIDTH ; SS_ANNE_KITCHEN
diff --git a/data/maps/objects/SSAnne1FRooms.asm b/data/maps/objects/SSAnne1FRooms.asm
new file mode 100755
index 00000000..617d2a55
--- /dev/null
+++ b/data/maps/objects/SSAnne1FRooms.asm
@@ -0,0 +1,33 @@
+SSAnne1FRooms_Object:
+ db $c ; border block
+
+ db 6 ; warps
+ warp 0, 0, 2, SS_ANNE_1F
+ warp 10, 0, 3, SS_ANNE_1F
+ warp 20, 0, 4, SS_ANNE_1F
+ warp 0, 10, 5, SS_ANNE_1F
+ warp 10, 10, 6, SS_ANNE_1F
+ warp 20, 10, 7, SS_ANNE_1F
+
+ db 0 ; signs
+
+ db 11 ; objects
+ object SPRITE_GENTLEMAN, 2, 3, STAY, LEFT, 1, OPP_GENTLEMAN, 1
+ object SPRITE_GENTLEMAN, 11, 4, STAY, UP, 2, OPP_GENTLEMAN, 2
+ object SPRITE_BUG_CATCHER, 11, 14, STAY, UP, 3, OPP_YOUNGSTER, 8
+ object SPRITE_LASS, 13, 11, STAY, LEFT, 4, OPP_LASS, 11
+ object SPRITE_GIRL, 22, 3, WALK, 1, 5 ; person
+ object SPRITE_FAT_BALD_GUY, 0, 14, STAY, NONE, 6 ; person
+ object SPRITE_LITTLE_GIRL, 2, 11, STAY, DOWN, 7 ; person
+ object SPRITE_CLEFAIRY, 3, 11, STAY, DOWN, 8 ; person
+ object SPRITE_GIRL, 10, 13, STAY, RIGHT, 9 ; person
+ object SPRITE_BALL, 12, 15, STAY, NONE, 10, TM_08
+ object SPRITE_GENTLEMAN, 21, 13, WALK, 2, 11 ; person
+
+ ; warp-to
+ warp_to 0, 0, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F
+ warp_to 10, 0, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F
+ warp_to 20, 0, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F
+ warp_to 0, 10, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F
+ warp_to 10, 10, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F
+ warp_to 20, 10, SS_ANNE_1F_ROOMS_WIDTH ; SS_ANNE_1F
diff --git a/data/maps/objects/SSAnne2F.asm b/data/maps/objects/SSAnne2F.asm
new file mode 100755
index 00000000..6abd5ac4
--- /dev/null
+++ b/data/maps/objects/SSAnne2F.asm
@@ -0,0 +1,30 @@
+SSAnne2F_Object:
+ db $c ; border block
+
+ db 9 ; warps
+ warp 9, 11, 0, SS_ANNE_2F_ROOMS
+ warp 13, 11, 2, SS_ANNE_2F_ROOMS
+ warp 17, 11, 4, SS_ANNE_2F_ROOMS
+ warp 21, 11, 6, SS_ANNE_2F_ROOMS
+ warp 25, 11, 8, SS_ANNE_2F_ROOMS
+ warp 29, 11, 10, SS_ANNE_2F_ROOMS
+ warp 2, 4, 8, SS_ANNE_1F
+ warp 2, 12, 1, SS_ANNE_3F
+ warp 36, 4, 0, SS_ANNE_CAPTAINS_ROOM
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_WAITER, 3, 7, WALK, 1, 1 ; person
+ object SPRITE_BLUE, 36, 4, STAY, DOWN, 2, OPP_SONY1, 1
+
+ ; warp-to
+ warp_to 9, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS
+ warp_to 13, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS
+ warp_to 17, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS
+ warp_to 21, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS
+ warp_to 25, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS
+ warp_to 29, 11, SS_ANNE_2F_WIDTH ; SS_ANNE_2F_ROOMS
+ warp_to 2, 4, SS_ANNE_2F_WIDTH ; SS_ANNE_1F
+ warp_to 2, 12, SS_ANNE_2F_WIDTH ; SS_ANNE_3F
+ warp_to 36, 4, SS_ANNE_2F_WIDTH ; SS_ANNE_CAPTAINS_ROOM
diff --git a/data/maps/objects/SSAnne2FRooms.asm b/data/maps/objects/SSAnne2FRooms.asm
new file mode 100755
index 00000000..ebb053a8
--- /dev/null
+++ b/data/maps/objects/SSAnne2FRooms.asm
@@ -0,0 +1,47 @@
+SSAnne2FRooms_Object:
+ db $c ; border block
+
+ db 12 ; warps
+ warp 2, 5, 0, SS_ANNE_2F
+ warp 3, 5, 0, SS_ANNE_2F
+ warp 12, 5, 1, SS_ANNE_2F
+ warp 13, 5, 1, SS_ANNE_2F
+ warp 22, 5, 2, SS_ANNE_2F
+ warp 23, 5, 2, SS_ANNE_2F
+ warp 2, 15, 3, SS_ANNE_2F
+ warp 3, 15, 3, SS_ANNE_2F
+ warp 12, 15, 4, SS_ANNE_2F
+ warp 13, 15, 4, SS_ANNE_2F
+ warp 22, 15, 5, SS_ANNE_2F
+ warp 23, 15, 5, SS_ANNE_2F
+
+ db 0 ; signs
+
+ db 13 ; objects
+ object SPRITE_GENTLEMAN, 10, 2, STAY, RIGHT, 1, OPP_GENTLEMAN, 3
+ object SPRITE_FISHER2, 13, 4, STAY, LEFT, 2, OPP_FISHER, 1
+ object SPRITE_GENTLEMAN, 0, 14, STAY, RIGHT, 3, OPP_GENTLEMAN, 5
+ object SPRITE_LASS, 2, 11, STAY, DOWN, 4, OPP_LASS, 12
+ object SPRITE_GENTLEMAN, 1, 2, STAY, DOWN, 5 ; person
+ object SPRITE_BALL, 12, 1, STAY, NONE, 6, MAX_ETHER
+ object SPRITE_GENTLEMAN, 21, 2, STAY, DOWN, 7 ; person
+ object SPRITE_OLD_PERSON, 22, 1, STAY, DOWN, 8 ; person
+ object SPRITE_BALL, 0, 12, STAY, NONE, 9, RARE_CANDY
+ object SPRITE_GENTLEMAN, 12, 12, STAY, DOWN, 10 ; person
+ object SPRITE_YOUNG_BOY, 11, 14, STAY, NONE, 11 ; person
+ object SPRITE_BRUNETTE_GIRL, 22, 12, STAY, LEFT, 12 ; person
+ object SPRITE_FOULARD_WOMAN, 20, 12, STAY, RIGHT, 13 ; person
+
+ ; warp-to
+ warp_to 2, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 3, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 12, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 13, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 22, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 23, 5, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 2, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 3, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 12, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 13, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 22, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
+ warp_to 23, 15, SS_ANNE_2F_ROOMS_WIDTH ; SS_ANNE_2F
diff --git a/data/maps/objects/SSAnne3F.asm b/data/maps/objects/SSAnne3F.asm
new file mode 100755
index 00000000..f0bfc17b
--- /dev/null
+++ b/data/maps/objects/SSAnne3F.asm
@@ -0,0 +1,15 @@
+SSAnne3F_Object:
+ db $c ; border block
+
+ db 2 ; warps
+ warp 0, 3, 0, SS_ANNE_BOW
+ warp 19, 3, 7, SS_ANNE_2F
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_SAILOR, 9, 3, WALK, 2, 1 ; person
+
+ ; warp-to
+ warp_to 0, 3, SS_ANNE_3F_WIDTH ; SS_ANNE_BOW
+ warp_to 19, 3, SS_ANNE_3F_WIDTH ; SS_ANNE_2F
diff --git a/data/maps/objects/SSAnneB1F.asm b/data/maps/objects/SSAnneB1F.asm
new file mode 100755
index 00000000..fe54ea24
--- /dev/null
+++ b/data/maps/objects/SSAnneB1F.asm
@@ -0,0 +1,22 @@
+SSAnneB1F_Object:
+ db $c ; border block
+
+ db 6 ; warps
+ warp 23, 3, 8, SS_ANNE_B1F_ROOMS
+ warp 19, 3, 6, SS_ANNE_B1F_ROOMS
+ warp 15, 3, 4, SS_ANNE_B1F_ROOMS
+ warp 11, 3, 2, SS_ANNE_B1F_ROOMS
+ warp 7, 3, 0, SS_ANNE_B1F_ROOMS
+ warp 27, 5, 9, SS_ANNE_1F
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 23, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS
+ warp_to 19, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS
+ warp_to 15, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS
+ warp_to 11, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS
+ warp_to 7, 3, SS_ANNE_B1F_WIDTH ; SS_ANNE_B1F_ROOMS
+ warp_to 27, 5, SS_ANNE_B1F_WIDTH ; SS_ANNE_1F
diff --git a/data/maps/objects/SSAnneB1FRooms.asm b/data/maps/objects/SSAnneB1FRooms.asm
new file mode 100755
index 00000000..1d31b89c
--- /dev/null
+++ b/data/maps/objects/SSAnneB1FRooms.asm
@@ -0,0 +1,41 @@
+SSAnneB1FRooms_Object:
+ db $c ; border block
+
+ db 10 ; warps
+ warp 2, 5, 4, SS_ANNE_B1F
+ warp 3, 5, 4, SS_ANNE_B1F
+ warp 12, 5, 3, SS_ANNE_B1F
+ warp 13, 5, 3, SS_ANNE_B1F
+ warp 22, 5, 2, SS_ANNE_B1F
+ warp 23, 5, 2, SS_ANNE_B1F
+ warp 2, 15, 1, SS_ANNE_B1F
+ warp 3, 15, 1, SS_ANNE_B1F
+ warp 12, 15, 0, SS_ANNE_B1F
+ warp 13, 15, 0, SS_ANNE_B1F
+
+ db 0 ; signs
+
+ db 11 ; objects
+ object SPRITE_SAILOR, 0, 13, STAY, DOWN, 1, OPP_SAILOR, 3
+ object SPRITE_SAILOR, 2, 11, STAY, DOWN, 2, OPP_SAILOR, 4
+ object SPRITE_SAILOR, 12, 3, STAY, LEFT, 3, OPP_SAILOR, 5
+ object SPRITE_SAILOR, 22, 2, STAY, DOWN, 4, OPP_SAILOR, 6
+ object SPRITE_SAILOR, 0, 2, STAY, RIGHT, 5, OPP_SAILOR, 7
+ object SPRITE_FISHER2, 0, 4, STAY, RIGHT, 6, OPP_FISHER, 2
+ object SPRITE_BLACK_HAIR_BOY_2, 10, 13, STAY, RIGHT, 7 ; person
+ object SPRITE_SLOWBRO, 11, 12, STAY, NONE, 8 ; person
+ object SPRITE_BALL, 20, 2, STAY, NONE, 9, ETHER
+ object SPRITE_BALL, 10, 2, STAY, NONE, 10, TM_44
+ object SPRITE_BALL, 12, 11, STAY, NONE, 11, MAX_POTION
+
+ ; warp-to
+ warp_to 2, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 3, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 12, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 13, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 22, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 23, 5, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 2, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 3, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 12, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
+ warp_to 13, 15, SS_ANNE_B1F_ROOMS_WIDTH ; SS_ANNE_B1F
diff --git a/data/maps/objects/SSAnneBow.asm b/data/maps/objects/SSAnneBow.asm
new file mode 100755
index 00000000..8873c8f8
--- /dev/null
+++ b/data/maps/objects/SSAnneBow.asm
@@ -0,0 +1,19 @@
+SSAnneBow_Object:
+ db $23 ; border block
+
+ db 2 ; warps
+ warp 13, 6, 0, SS_ANNE_3F
+ warp 13, 7, 0, SS_ANNE_3F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 5, 2, STAY, UP, 1 ; person
+ object SPRITE_SAILOR, 4, 9, STAY, NONE, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 7, 11, STAY, NONE, 3 ; person
+ object SPRITE_SAILOR, 4, 4, STAY, DOWN, 4, OPP_SAILOR, 1
+ object SPRITE_SAILOR, 10, 8, STAY, UP, 5, OPP_SAILOR, 2
+
+ ; warp-to
+ warp_to 13, 6, SS_ANNE_BOW_WIDTH ; SS_ANNE_3F
+ warp_to 13, 7, SS_ANNE_BOW_WIDTH ; SS_ANNE_3F
diff --git a/data/maps/objects/SSAnneCaptainsRoom.asm b/data/maps/objects/SSAnneCaptainsRoom.asm
new file mode 100755
index 00000000..545656cc
--- /dev/null
+++ b/data/maps/objects/SSAnneCaptainsRoom.asm
@@ -0,0 +1,15 @@
+SSAnneCaptainsRoom_Object:
+ db $c ; border block
+
+ db 1 ; warps
+ warp 0, 7, 8, SS_ANNE_2F
+
+ db 2 ; signs
+ sign 4, 1, 2 ; SSAnne7Text2
+ sign 1, 2, 3 ; SSAnne7Text3
+
+ db 1 ; objects
+ object SPRITE_SS_CAPTAIN, 4, 2, STAY, UP, 1 ; person
+
+ ; warp-to
+ warp_to 0, 7, SS_ANNE_CAPTAINS_ROOM_WIDTH ; SS_ANNE_2F
diff --git a/data/maps/objects/SSAnneKitchen.asm b/data/maps/objects/SSAnneKitchen.asm
new file mode 100755
index 00000000..b5771e68
--- /dev/null
+++ b/data/maps/objects/SSAnneKitchen.asm
@@ -0,0 +1,19 @@
+SSAnneKitchen_Object:
+ db $c ; border block
+
+ db 1 ; warps
+ warp 6, 0, 10, SS_ANNE_1F
+
+ db 0 ; signs
+
+ db 7 ; objects
+ object SPRITE_COOK, 1, 8, WALK, 1, 1 ; person
+ object SPRITE_COOK, 5, 8, WALK, 1, 2 ; person
+ object SPRITE_COOK, 9, 7, WALK, 1, 3 ; person
+ object SPRITE_COOK, 13, 6, STAY, NONE, 4 ; person
+ object SPRITE_COOK, 13, 8, STAY, NONE, 5 ; person
+ object SPRITE_COOK, 13, 10, STAY, NONE, 6 ; person
+ object SPRITE_COOK, 11, 13, STAY, UP, 7 ; person
+
+ ; warp-to
+ warp_to 6, 0, SS_ANNE_KITCHEN_WIDTH ; SS_ANNE_1F
diff --git a/data/maps/objects/SafariZoneCenter.asm b/data/maps/objects/SafariZoneCenter.asm
new file mode 100755
index 00000000..e54cec74
--- /dev/null
+++ b/data/maps/objects/SafariZoneCenter.asm
@@ -0,0 +1,31 @@
+SafariZoneCenter_Object:
+ db $0 ; border block
+
+ db 9 ; warps
+ warp 14, 25, 2, SAFARI_ZONE_GATE
+ warp 15, 25, 3, SAFARI_ZONE_GATE
+ warp 0, 10, 4, SAFARI_ZONE_WEST
+ warp 0, 11, 5, SAFARI_ZONE_WEST
+ warp 14, 0, 4, SAFARI_ZONE_NORTH
+ warp 15, 0, 5, SAFARI_ZONE_NORTH
+ warp 29, 10, 2, SAFARI_ZONE_EAST
+ warp 29, 11, 3, SAFARI_ZONE_EAST
+ warp 17, 19, 0, SAFARI_ZONE_CENTER_REST_HOUSE
+
+ db 2 ; signs
+ sign 18, 20, 2 ; SafariZoneCenterText2
+ sign 14, 22, 3 ; SafariZoneCenterText3
+
+ db 1 ; objects
+ object SPRITE_BALL, 14, 10, STAY, NONE, 1, NUGGET
+
+ ; warp-to
+ warp_to 14, 25, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_GATE
+ warp_to 15, 25, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_GATE
+ warp_to 0, 10, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 0, 11, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 14, 0, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 15, 0, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 29, 10, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_EAST
+ warp_to 29, 11, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_EAST
+ warp_to 17, 19, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_CENTER_REST_HOUSE
diff --git a/data/maps/objects/SafariZoneCenterRestHouse.asm b/data/maps/objects/SafariZoneCenterRestHouse.asm
new file mode 100755
index 00000000..9eda9970
--- /dev/null
+++ b/data/maps/objects/SafariZoneCenterRestHouse.asm
@@ -0,0 +1,16 @@
+SafariZoneCenterRestHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 8, SAFARI_ZONE_CENTER
+ warp 3, 7, 8, SAFARI_ZONE_CENTER
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_GIRL, 3, 2, STAY, DOWN, 1 ; person
+ object SPRITE_OAK_AIDE, 1, 4, WALK, 1, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, SAFARI_ZONE_CENTER_REST_HOUSE_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 3, 7, SAFARI_ZONE_CENTER_REST_HOUSE_WIDTH ; SAFARI_ZONE_CENTER
diff --git a/data/maps/objects/SafariZoneEast.asm b/data/maps/objects/SafariZoneEast.asm
new file mode 100755
index 00000000..df612ea9
--- /dev/null
+++ b/data/maps/objects/SafariZoneEast.asm
@@ -0,0 +1,27 @@
+SafariZoneEast_Object:
+ db $0 ; border block
+
+ db 5 ; warps
+ warp 0, 4, 6, SAFARI_ZONE_NORTH
+ warp 0, 5, 7, SAFARI_ZONE_NORTH
+ warp 0, 22, 6, SAFARI_ZONE_CENTER
+ warp 0, 23, 6, SAFARI_ZONE_CENTER
+ warp 25, 9, 0, SAFARI_ZONE_EAST_REST_HOUSE
+
+ db 3 ; signs
+ sign 26, 10, 5 ; SafariZoneEastText5
+ sign 6, 4, 6 ; SafariZoneEastText6
+ sign 5, 23, 7 ; SafariZoneEastText7
+
+ db 4 ; objects
+ object SPRITE_BALL, 21, 10, STAY, NONE, 1, FULL_RESTORE
+ object SPRITE_BALL, 3, 7, STAY, NONE, 2, MAX_POTION
+ object SPRITE_BALL, 20, 13, STAY, NONE, 3, CARBOS
+ object SPRITE_BALL, 15, 12, STAY, NONE, 4, TM_37
+
+ ; warp-to
+ warp_to 0, 4, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 0, 5, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 0, 22, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 0, 23, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 25, 9, SAFARI_ZONE_EAST_WIDTH ; SAFARI_ZONE_EAST_REST_HOUSE
diff --git a/data/maps/objects/SafariZoneEastRestHouse.asm b/data/maps/objects/SafariZoneEastRestHouse.asm
new file mode 100755
index 00000000..e7c68343
--- /dev/null
+++ b/data/maps/objects/SafariZoneEastRestHouse.asm
@@ -0,0 +1,17 @@
+SafariZoneEastRestHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 4, SAFARI_ZONE_EAST
+ warp 3, 7, 4, SAFARI_ZONE_EAST
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_OAK_AIDE, 1, 3, WALK, 1, 1 ; person
+ object SPRITE_ROCKER, 4, 2, STAY, NONE, 2 ; person
+ object SPRITE_LAPRAS_GIVER, 5, 2, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, SAFARI_ZONE_EAST_REST_HOUSE_WIDTH ; SAFARI_ZONE_EAST
+ warp_to 3, 7, SAFARI_ZONE_EAST_REST_HOUSE_WIDTH ; SAFARI_ZONE_EAST
diff --git a/data/maps/objects/SafariZoneGate.asm b/data/maps/objects/SafariZoneGate.asm
new file mode 100755
index 00000000..6749b45b
--- /dev/null
+++ b/data/maps/objects/SafariZoneGate.asm
@@ -0,0 +1,20 @@
+SafariZoneGate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 3, 5, 4, -1
+ warp 4, 5, 4, -1
+ warp 3, 0, 0, SAFARI_ZONE_CENTER
+ warp 4, 0, 1, SAFARI_ZONE_CENTER
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_WHITE_PLAYER, 6, 2, STAY, LEFT, 1 ; person
+ object SPRITE_WHITE_PLAYER, 1, 4, STAY, RIGHT, 2 ; person
+
+ ; warp-to
+ warp_to 3, 5, SAFARI_ZONE_GATE_WIDTH
+ warp_to 4, 5, SAFARI_ZONE_GATE_WIDTH
+ warp_to 3, 0, SAFARI_ZONE_GATE_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 4, 0, SAFARI_ZONE_GATE_WIDTH ; SAFARI_ZONE_CENTER
diff --git a/data/maps/objects/SafariZoneNorth.asm b/data/maps/objects/SafariZoneNorth.asm
new file mode 100755
index 00000000..9eda7b4b
--- /dev/null
+++ b/data/maps/objects/SafariZoneNorth.asm
@@ -0,0 +1,35 @@
+SafariZoneNorth_Object:
+ db $0 ; border block
+
+ db 9 ; warps
+ warp 2, 35, 0, SAFARI_ZONE_WEST
+ warp 3, 35, 1, SAFARI_ZONE_WEST
+ warp 8, 35, 2, SAFARI_ZONE_WEST
+ warp 9, 35, 3, SAFARI_ZONE_WEST
+ warp 20, 35, 4, SAFARI_ZONE_CENTER
+ warp 21, 35, 5, SAFARI_ZONE_CENTER
+ warp 39, 30, 0, SAFARI_ZONE_EAST
+ warp 39, 31, 1, SAFARI_ZONE_EAST
+ warp 35, 3, 0, SAFARI_ZONE_NORTH_REST_HOUSE
+
+ db 5 ; signs
+ sign 36, 4, 3 ; SafariZoneNorthText3
+ sign 4, 25, 4 ; SafariZoneNorthText4
+ sign 13, 31, 5 ; SafariZoneNorthText5
+ sign 19, 33, 6 ; SafariZoneNorthText6
+ sign 26, 28, 7 ; SafariZoneNorthText7
+
+ db 2 ; objects
+ object SPRITE_BALL, 25, 1, STAY, NONE, 1, PROTEIN
+ object SPRITE_BALL, 19, 7, STAY, NONE, 2, TM_40
+
+ ; warp-to
+ warp_to 2, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 3, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 8, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 9, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 20, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 21, 35, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 39, 30, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_EAST
+ warp_to 39, 31, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_EAST
+ warp_to 35, 3, SAFARI_ZONE_NORTH_WIDTH ; SAFARI_ZONE_NORTH_REST_HOUSE
diff --git a/data/maps/objects/SafariZoneNorthRestHouse.asm b/data/maps/objects/SafariZoneNorthRestHouse.asm
new file mode 100755
index 00000000..34b3ab4f
--- /dev/null
+++ b/data/maps/objects/SafariZoneNorthRestHouse.asm
@@ -0,0 +1,17 @@
+SafariZoneNorthRestHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 8, SAFARI_ZONE_NORTH
+ warp 3, 7, 8, SAFARI_ZONE_NORTH
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_OAK_AIDE, 6, 3, WALK, 2, 1 ; person
+ object SPRITE_WHITE_PLAYER, 3, 4, STAY, NONE, 2 ; person
+ object SPRITE_GENTLEMAN, 1, 5, WALK, 1, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, SAFARI_ZONE_NORTH_REST_HOUSE_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 3, 7, SAFARI_ZONE_NORTH_REST_HOUSE_WIDTH ; SAFARI_ZONE_NORTH
diff --git a/data/maps/objects/SafariZoneSecretHouse.asm b/data/maps/objects/SafariZoneSecretHouse.asm
new file mode 100755
index 00000000..2a5fc22d
--- /dev/null
+++ b/data/maps/objects/SafariZoneSecretHouse.asm
@@ -0,0 +1,15 @@
+SafariZoneSecretHouse_Object:
+ db $17 ; border block
+
+ db 2 ; warps
+ warp 2, 7, 6, SAFARI_ZONE_WEST
+ warp 3, 7, 6, SAFARI_ZONE_WEST
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FISHER, 3, 3, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 3, 7, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; SAFARI_ZONE_WEST
diff --git a/data/maps/objects/SafariZoneWest.asm b/data/maps/objects/SafariZoneWest.asm
new file mode 100755
index 00000000..7faced72
--- /dev/null
+++ b/data/maps/objects/SafariZoneWest.asm
@@ -0,0 +1,34 @@
+SafariZoneWest_Object:
+ db $0 ; border block
+
+ db 8 ; warps
+ warp 20, 0, 0, SAFARI_ZONE_NORTH
+ warp 21, 0, 1, SAFARI_ZONE_NORTH
+ warp 26, 0, 2, SAFARI_ZONE_NORTH
+ warp 27, 0, 3, SAFARI_ZONE_NORTH
+ warp 29, 22, 2, SAFARI_ZONE_CENTER
+ warp 29, 23, 3, SAFARI_ZONE_CENTER
+ warp 3, 3, 0, SAFARI_ZONE_SECRET_HOUSE
+ warp 11, 11, 0, SAFARI_ZONE_WEST_REST_HOUSE
+
+ db 4 ; signs
+ sign 12, 12, 5 ; SafariZoneWestText5
+ sign 17, 3, 6 ; SafariZoneWestText6
+ sign 26, 4, 7 ; SafariZoneWestText7
+ sign 24, 22, 8 ; SafariZoneWestText8
+
+ db 4 ; objects
+ object SPRITE_BALL, 8, 20, STAY, NONE, 1, MAX_POTION
+ object SPRITE_BALL, 9, 7, STAY, NONE, 2, TM_32
+ object SPRITE_BALL, 18, 18, STAY, NONE, 3, MAX_REVIVE
+ object SPRITE_BALL, 19, 7, STAY, NONE, 4, GOLD_TEETH
+
+ ; warp-to
+ warp_to 20, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 21, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 26, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 27, 0, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_NORTH
+ warp_to 29, 22, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 29, 23, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_CENTER
+ warp_to 3, 3, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_SECRET_HOUSE
+ warp_to 11, 11, SAFARI_ZONE_WEST_WIDTH ; SAFARI_ZONE_WEST_REST_HOUSE
diff --git a/data/maps/objects/SafariZoneWestRestHouse.asm b/data/maps/objects/SafariZoneWestRestHouse.asm
new file mode 100755
index 00000000..9f1bc0ed
--- /dev/null
+++ b/data/maps/objects/SafariZoneWestRestHouse.asm
@@ -0,0 +1,17 @@
+SafariZoneWestRestHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 7, SAFARI_ZONE_WEST
+ warp 3, 7, 7, SAFARI_ZONE_WEST
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_OAK_AIDE, 4, 4, WALK, 0, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 0, 2, STAY, RIGHT, 2 ; person
+ object SPRITE_ERIKA, 6, 2, STAY, DOWN, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, SAFARI_ZONE_WEST_REST_HOUSE_WIDTH ; SAFARI_ZONE_WEST
+ warp_to 3, 7, SAFARI_ZONE_WEST_REST_HOUSE_WIDTH ; SAFARI_ZONE_WEST
diff --git a/data/maps/objects/SaffronCity.asm b/data/maps/objects/SaffronCity.asm
new file mode 100755
index 00000000..b8d3a9cf
--- /dev/null
+++ b/data/maps/objects/SaffronCity.asm
@@ -0,0 +1,51 @@
+SaffronCity_Object:
+ db $f ; border block
+
+ db 8 ; warps
+ warp 7, 5, 0, COPYCATS_HOUSE_1F
+ warp 26, 3, 0, FIGHTING_DOJO
+ warp 34, 3, 0, SAFFRON_GYM
+ warp 13, 11, 0, SAFFRON_PIDGEY_HOUSE
+ warp 25, 11, 0, SAFFRON_MART
+ warp 18, 21, 0, SILPH_CO_1F
+ warp 9, 29, 0, SAFFRON_POKECENTER
+ warp 29, 29, 0, MR_PSYCHICS_HOUSE
+
+ db 10 ; signs
+ sign 17, 5, 16 ; SaffronCityText16
+ sign 27, 5, 17 ; SaffronCityText17
+ sign 35, 5, 18 ; SaffronCityText18
+ sign 26, 11, 19 ; MartSignText
+ sign 39, 19, 20 ; SaffronCityText20
+ sign 5, 21, 21 ; SaffronCityText21
+ sign 15, 21, 22 ; SaffronCityText22
+ sign 10, 29, 23 ; PokeCenterSignText
+ sign 27, 29, 24 ; SaffronCityText24
+ sign 1, 19, 25 ; SaffronCityText25
+
+ db 15 ; objects
+ object SPRITE_ROCKET, 7, 6, STAY, NONE, 1 ; person
+ object SPRITE_ROCKET, 20, 8, WALK, 2, 2 ; person
+ object SPRITE_ROCKET, 34, 4, STAY, NONE, 3 ; person
+ object SPRITE_ROCKET, 13, 12, STAY, NONE, 4 ; person
+ object SPRITE_ROCKET, 11, 25, WALK, 2, 5 ; person
+ object SPRITE_ROCKET, 32, 13, WALK, 2, 6 ; person
+ object SPRITE_ROCKET, 18, 30, WALK, 2, 7 ; person
+ object SPRITE_OAK_AIDE, 8, 14, WALK, 0, 8 ; person
+ object SPRITE_LAPRAS_GIVER, 23, 23, STAY, NONE, 9 ; person
+ object SPRITE_ERIKA, 17, 30, WALK, 2, 10 ; person
+ object SPRITE_GENTLEMAN, 30, 12, STAY, DOWN, 11 ; person
+ object SPRITE_BIRD, 31, 12, STAY, DOWN, 12 ; person
+ object SPRITE_ROCKER, 18, 8, STAY, UP, 13 ; person
+ object SPRITE_ROCKET, 18, 22, STAY, DOWN, 14 ; person
+ object SPRITE_ROCKET, 19, 22, STAY, DOWN, 15 ; person
+
+ ; warp-to
+ warp_to 7, 5, SAFFRON_CITY_WIDTH ; COPYCATS_HOUSE_1F
+ warp_to 26, 3, SAFFRON_CITY_WIDTH ; FIGHTING_DOJO
+ warp_to 34, 3, SAFFRON_CITY_WIDTH ; SAFFRON_GYM
+ warp_to 13, 11, SAFFRON_CITY_WIDTH ; SAFFRON_PIDGEY_HOUSE
+ warp_to 25, 11, SAFFRON_CITY_WIDTH ; SAFFRON_MART
+ warp_to 18, 21, SAFFRON_CITY_WIDTH ; SILPH_CO_1F
+ warp_to 9, 29, SAFFRON_CITY_WIDTH ; SAFFRON_POKECENTER
+ warp_to 29, 29, SAFFRON_CITY_WIDTH ; MR_PSYCHICS_HOUSE
diff --git a/data/maps/objects/SaffronGym.asm b/data/maps/objects/SaffronGym.asm
new file mode 100755
index 00000000..1869421a
--- /dev/null
+++ b/data/maps/objects/SaffronGym.asm
@@ -0,0 +1,83 @@
+SaffronGym_Object:
+ db $2e ; border block
+
+ db 32 ; warps
+ warp 8, 17, 2, -1
+ warp 9, 17, 2, -1
+ warp 1, 3, 22, SAFFRON_GYM
+ warp 5, 3, 15, SAFFRON_GYM
+ warp 1, 5, 18, SAFFRON_GYM
+ warp 5, 5, 8, SAFFRON_GYM
+ warp 1, 9, 27, SAFFRON_GYM
+ warp 5, 9, 16, SAFFRON_GYM
+ warp 1, 11, 5, SAFFRON_GYM
+ warp 5, 11, 13, SAFFRON_GYM
+ warp 1, 15, 23, SAFFRON_GYM
+ warp 5, 15, 30, SAFFRON_GYM
+ warp 1, 17, 17, SAFFRON_GYM
+ warp 5, 17, 9, SAFFRON_GYM
+ warp 9, 3, 26, SAFFRON_GYM
+ warp 11, 3, 3, SAFFRON_GYM
+ warp 9, 5, 7, SAFFRON_GYM
+ warp 11, 5, 12, SAFFRON_GYM
+ warp 11, 11, 4, SAFFRON_GYM
+ warp 11, 15, 31, SAFFRON_GYM
+ warp 15, 3, 24, SAFFRON_GYM
+ warp 19, 3, 28, SAFFRON_GYM
+ warp 15, 5, 2, SAFFRON_GYM
+ warp 19, 5, 10, SAFFRON_GYM
+ warp 15, 9, 20, SAFFRON_GYM
+ warp 19, 9, 29, SAFFRON_GYM
+ warp 15, 11, 14, SAFFRON_GYM
+ warp 19, 11, 6, SAFFRON_GYM
+ warp 15, 15, 21, SAFFRON_GYM
+ warp 19, 15, 25, SAFFRON_GYM
+ warp 15, 17, 11, SAFFRON_GYM
+ warp 19, 17, 19, SAFFRON_GYM
+
+ db 0 ; signs
+
+ db 9 ; objects
+ object SPRITE_GIRL, 9, 8, STAY, DOWN, 1, OPP_SABRINA, 1
+ object SPRITE_MEDIUM, 10, 1, STAY, DOWN, 2, OPP_CHANNELER, 22
+ object SPRITE_BUG_CATCHER, 17, 1, STAY, DOWN, 3, OPP_PSYCHIC_TR, 1
+ object SPRITE_MEDIUM, 3, 7, STAY, DOWN, 4, OPP_CHANNELER, 23
+ object SPRITE_BUG_CATCHER, 17, 7, STAY, DOWN, 5, OPP_PSYCHIC_TR, 2
+ object SPRITE_MEDIUM, 3, 13, STAY, DOWN, 6, OPP_CHANNELER, 24
+ object SPRITE_BUG_CATCHER, 17, 13, STAY, DOWN, 7, OPP_PSYCHIC_TR, 3
+ object SPRITE_BUG_CATCHER, 3, 1, STAY, DOWN, 8, OPP_PSYCHIC_TR, 4
+ object SPRITE_GYM_HELPER, 10, 15, STAY, DOWN, 9 ; person
+
+ ; warp-to
+ warp_to 8, 17, SAFFRON_GYM_WIDTH
+ warp_to 9, 17, SAFFRON_GYM_WIDTH
+ warp_to 1, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 5, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 1, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 5, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 1, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 5, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 1, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 5, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 1, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 5, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 1, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 5, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 9, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 11, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 9, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 11, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 11, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 11, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 15, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 19, 3, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 15, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 19, 5, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 15, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 19, 9, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 15, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 19, 11, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 15, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 19, 15, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 15, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
+ warp_to 19, 17, SAFFRON_GYM_WIDTH ; SAFFRON_GYM
diff --git a/data/maps/objects/SaffronMart.asm b/data/maps/objects/SaffronMart.asm
new file mode 100755
index 00000000..c376f2de
--- /dev/null
+++ b/data/maps/objects/SaffronMart.asm
@@ -0,0 +1,17 @@
+SaffronMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 4, -1
+ warp 4, 7, 4, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_2, 4, 2, STAY, NONE, 2 ; person
+ object SPRITE_LASS, 6, 5, WALK, 0, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, SAFFRON_MART_WIDTH
+ warp_to 4, 7, SAFFRON_MART_WIDTH
diff --git a/data/maps/objects/SaffronPidgeyHouse.asm b/data/maps/objects/SaffronPidgeyHouse.asm
new file mode 100755
index 00000000..65a851bf
--- /dev/null
+++ b/data/maps/objects/SaffronPidgeyHouse.asm
@@ -0,0 +1,18 @@
+SaffronPidgeyHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 3, -1
+ warp 3, 7, 3, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person
+ object SPRITE_BIRD, 0, 4, WALK, 1, 2 ; person
+ object SPRITE_BUG_CATCHER, 4, 1, STAY, DOWN, 3 ; person
+ object SPRITE_PAPER_SHEET, 3, 3, STAY, NONE, 4 ; person
+
+ ; warp-to
+ warp_to 2, 7, SAFFRON_PIDGEY_HOUSE_WIDTH
+ warp_to 3, 7, SAFFRON_PIDGEY_HOUSE_WIDTH
diff --git a/data/maps/objects/SaffronPokecenter.asm b/data/maps/objects/SaffronPokecenter.asm
new file mode 100755
index 00000000..e54fd76b
--- /dev/null
+++ b/data/maps/objects/SaffronPokecenter.asm
@@ -0,0 +1,18 @@
+SaffronPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 6, -1
+ warp 4, 7, 6, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_FOULARD_WOMAN, 5, 5, STAY, NONE, 2 ; person
+ object SPRITE_GENTLEMAN, 8, 3, STAY, DOWN, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, SAFFRON_POKECENTER_WIDTH
+ warp_to 4, 7, SAFFRON_POKECENTER_WIDTH
diff --git a/data/maps/objects/SeafoamIslands1F.asm b/data/maps/objects/SeafoamIslands1F.asm
new file mode 100755
index 00000000..8707ee0a
--- /dev/null
+++ b/data/maps/objects/SeafoamIslands1F.asm
@@ -0,0 +1,30 @@
+SeafoamIslands1F_Object:
+ db $7d ; border block
+
+ db 7 ; warps
+ warp 4, 17, 0, -1
+ warp 5, 17, 0, -1
+ warp 26, 17, 1, -1
+ warp 27, 17, 1, -1
+ warp 7, 5, 1, SEAFOAM_ISLANDS_B1F
+ warp 25, 3, 6, SEAFOAM_ISLANDS_B1F
+ warp 23, 15, 4, SEAFOAM_ISLANDS_B1F
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BOULDER, 18, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
+ object SPRITE_BOULDER, 26, 7, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
+
+ ; warp-to
+ warp_to 4, 17, SEAFOAM_ISLANDS_1F_WIDTH
+ warp_to 5, 17, SEAFOAM_ISLANDS_1F_WIDTH
+ warp_to 26, 17, SEAFOAM_ISLANDS_1F_WIDTH
+ warp_to 27, 17, SEAFOAM_ISLANDS_1F_WIDTH
+ warp_to 7, 5, SEAFOAM_ISLANDS_1F_WIDTH ; SEAFOAM_ISLANDS_B1F
+ warp_to 25, 3, SEAFOAM_ISLANDS_1F_WIDTH ; SEAFOAM_ISLANDS_B1F
+ warp_to 23, 15, SEAFOAM_ISLANDS_1F_WIDTH ; SEAFOAM_ISLANDS_B1F
+
+ ; holes
+ warp_to 17, 6, SEAFOAM_ISLANDS_1F_WIDTH
+ warp_to 24, 6, SEAFOAM_ISLANDS_1F_WIDTH
diff --git a/data/maps/objects/SeafoamIslandsB1F.asm b/data/maps/objects/SeafoamIslandsB1F.asm
new file mode 100755
index 00000000..426ca0c3
--- /dev/null
+++ b/data/maps/objects/SeafoamIslandsB1F.asm
@@ -0,0 +1,26 @@
+SeafoamIslandsB1F_Object:
+ db $7d ; border block
+
+ db 7 ; warps
+ warp 4, 2, 0, SEAFOAM_ISLANDS_B2F
+ warp 7, 5, 4, SEAFOAM_ISLANDS_1F
+ warp 13, 7, 2, SEAFOAM_ISLANDS_B2F
+ warp 19, 15, 3, SEAFOAM_ISLANDS_B2F
+ warp 23, 15, 6, SEAFOAM_ISLANDS_1F
+ warp 25, 11, 5, SEAFOAM_ISLANDS_B2F
+ warp 25, 3, 5, SEAFOAM_ISLANDS_1F
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BOULDER, 17, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
+ object SPRITE_BOULDER, 22, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
+
+ ; warp-to
+ warp_to 4, 2, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 7, 5, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_1F
+ warp_to 13, 7, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 19, 15, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 23, 15, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_1F
+ warp_to 25, 11, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 25, 3, SEAFOAM_ISLANDS_B1F_WIDTH ; SEAFOAM_ISLANDS_1F
diff --git a/data/maps/objects/SeafoamIslandsB2F.asm b/data/maps/objects/SeafoamIslandsB2F.asm
new file mode 100755
index 00000000..9c1a7898
--- /dev/null
+++ b/data/maps/objects/SeafoamIslandsB2F.asm
@@ -0,0 +1,26 @@
+SeafoamIslandsB2F_Object:
+ db $7d ; border block
+
+ db 7 ; warps
+ warp 5, 3, 0, SEAFOAM_ISLANDS_B1F
+ warp 5, 13, 0, SEAFOAM_ISLANDS_B3F
+ warp 13, 7, 2, SEAFOAM_ISLANDS_B1F
+ warp 19, 15, 3, SEAFOAM_ISLANDS_B1F
+ warp 25, 3, 3, SEAFOAM_ISLANDS_B3F
+ warp 25, 11, 5, SEAFOAM_ISLANDS_B1F
+ warp 25, 14, 4, SEAFOAM_ISLANDS_B3F
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BOULDER, 18, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
+ object SPRITE_BOULDER, 23, 6, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
+
+ ; warp-to
+ warp_to 5, 3, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F
+ warp_to 5, 13, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B3F
+ warp_to 13, 7, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F
+ warp_to 19, 15, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F
+ warp_to 25, 3, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B3F
+ warp_to 25, 11, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B1F
+ warp_to 25, 14, SEAFOAM_ISLANDS_B2F_WIDTH ; SEAFOAM_ISLANDS_B3F
diff --git a/data/maps/objects/SeafoamIslandsB3F.asm b/data/maps/objects/SeafoamIslandsB3F.asm
new file mode 100755
index 00000000..d194e1cd
--- /dev/null
+++ b/data/maps/objects/SeafoamIslandsB3F.asm
@@ -0,0 +1,30 @@
+SeafoamIslandsB3F_Object:
+ db $7d ; border block
+
+ db 7 ; warps
+ warp 5, 12, 1, SEAFOAM_ISLANDS_B2F
+ warp 8, 6, 2, SEAFOAM_ISLANDS_B4F
+ warp 25, 4, 3, SEAFOAM_ISLANDS_B4F
+ warp 25, 3, 4, SEAFOAM_ISLANDS_B2F
+ warp 25, 14, 6, SEAFOAM_ISLANDS_B2F
+ warp 20, 17, 0, SEAFOAM_ISLANDS_B4F
+ warp 21, 17, 1, SEAFOAM_ISLANDS_B4F
+
+ db 0 ; signs
+
+ db 6 ; objects
+ object SPRITE_BOULDER, 5, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 1 ; person
+ object SPRITE_BOULDER, 3, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 2 ; person
+ object SPRITE_BOULDER, 8, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person
+ object SPRITE_BOULDER, 9, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 4 ; person
+ object SPRITE_BOULDER, 18, 6, STAY, NONE, 5 ; person
+ object SPRITE_BOULDER, 19, 6, STAY, NONE, 6 ; person
+
+ ; warp-to
+ warp_to 5, 12, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 8, 6, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F
+ warp_to 25, 4, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F
+ warp_to 25, 3, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 25, 14, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B2F
+ warp_to 20, 17, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F
+ warp_to 21, 17, SEAFOAM_ISLANDS_B3F_WIDTH ; SEAFOAM_ISLANDS_B4F
diff --git a/data/maps/objects/SeafoamIslandsB4F.asm b/data/maps/objects/SeafoamIslandsB4F.asm
new file mode 100755
index 00000000..62d88b0c
--- /dev/null
+++ b/data/maps/objects/SeafoamIslandsB4F.asm
@@ -0,0 +1,23 @@
+SeafoamIslandsB4F_Object:
+ db $7d ; border block
+
+ db 4 ; warps
+ warp 20, 17, 5, SEAFOAM_ISLANDS_B3F
+ warp 21, 17, 6, SEAFOAM_ISLANDS_B3F
+ warp 11, 7, 1, SEAFOAM_ISLANDS_B3F
+ warp 25, 4, 2, SEAFOAM_ISLANDS_B3F
+
+ db 2 ; signs
+ sign 9, 15, 4 ; SeafoamIslands5Text4
+ sign 23, 1, 5 ; SeafoamIslands5Text5
+
+ db 3 ; objects
+ object SPRITE_BOULDER, 4, 15, STAY, NONE, 1 ; person
+ object SPRITE_BOULDER, 5, 15, STAY, NONE, 2 ; person
+ object SPRITE_BIRD, 6, 1, STAY, DOWN, 3, ARTICUNO, 50
+
+ ; warp-to
+ warp_to 20, 17, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F
+ warp_to 21, 17, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F
+ warp_to 11, 7, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F
+ warp_to 25, 4, SEAFOAM_ISLANDS_B4F_WIDTH ; SEAFOAM_ISLANDS_B3F
diff --git a/data/maps/objects/SilphCo10F.asm b/data/maps/objects/SilphCo10F.asm
new file mode 100755
index 00000000..1c8948d3
--- /dev/null
+++ b/data/maps/objects/SilphCo10F.asm
@@ -0,0 +1,28 @@
+SilphCo10F_Object:
+ db $2e ; border block
+
+ db 6 ; warps
+ warp 8, 0, 0, SILPH_CO_9F
+ warp 10, 0, 0, SILPH_CO_11F
+ warp 12, 0, 0, SILPH_CO_ELEVATOR
+ warp 9, 11, 3, SILPH_CO_4F
+ warp 13, 15, 5, SILPH_CO_4F
+ warp 13, 7, 6, SILPH_CO_4F
+
+ db 0 ; signs
+
+ db 6 ; objects
+ object SPRITE_ROCKET, 1, 9, STAY, RIGHT, 1, OPP_ROCKET, 39
+ object SPRITE_OAK_AIDE, 10, 2, STAY, LEFT, 2, OPP_SCIENTIST, 11
+ object SPRITE_ERIKA, 9, 15, WALK, 0, 3 ; person
+ object SPRITE_BALL, 2, 12, STAY, NONE, 4, TM_26
+ object SPRITE_BALL, 4, 14, STAY, NONE, 5, RARE_CANDY
+ object SPRITE_BALL, 5, 11, STAY, NONE, 6, CARBOS
+
+ ; warp-to
+ warp_to 8, 0, SILPH_CO_10F_WIDTH ; SILPH_CO_9F
+ warp_to 10, 0, SILPH_CO_10F_WIDTH ; SILPH_CO_11F
+ warp_to 12, 0, SILPH_CO_10F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 9, 11, SILPH_CO_10F_WIDTH ; SILPH_CO_4F
+ warp_to 13, 15, SILPH_CO_10F_WIDTH ; SILPH_CO_4F
+ warp_to 13, 7, SILPH_CO_10F_WIDTH ; SILPH_CO_4F
diff --git a/data/maps/objects/SilphCo11F.asm b/data/maps/objects/SilphCo11F.asm
new file mode 100755
index 00000000..7a1dff73
--- /dev/null
+++ b/data/maps/objects/SilphCo11F.asm
@@ -0,0 +1,23 @@
+SilphCo11F_Object:
+ db $d ; border block
+
+ db 4 ; warps
+ warp 9, 0, 1, SILPH_CO_10F
+ warp 13, 0, 0, SILPH_CO_ELEVATOR
+ warp 5, 5, 9, -1
+ warp 3, 2, 3, SILPH_CO_7F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_MR_MASTERBALL, 7, 5, STAY, DOWN, 1 ; person
+ object SPRITE_FOULARD_WOMAN, 10, 5, STAY, DOWN, 2 ; person
+ object SPRITE_GIOVANNI, 6, 9, STAY, DOWN, 3, OPP_GIOVANNI, 2
+ object SPRITE_ROCKET, 3, 16, STAY, UP, 4, OPP_ROCKET, 41
+ object SPRITE_ROCKET, 15, 9, STAY, UP, 5, OPP_ROCKET, 40
+
+ ; warp-to
+ warp_to 9, 0, SILPH_CO_11F_WIDTH ; SILPH_CO_10F
+ warp_to 13, 0, SILPH_CO_11F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 5, 5, SILPH_CO_11F_WIDTH
+ warp_to 3, 2, SILPH_CO_11F_WIDTH ; SILPH_CO_7F
diff --git a/data/maps/objects/SilphCo1F.asm b/data/maps/objects/SilphCo1F.asm
new file mode 100755
index 00000000..fc040091
--- /dev/null
+++ b/data/maps/objects/SilphCo1F.asm
@@ -0,0 +1,21 @@
+SilphCo1F_Object:
+ db $2e ; border block
+
+ db 5 ; warps
+ warp 10, 17, 5, -1
+ warp 11, 17, 5, -1
+ warp 26, 0, 0, SILPH_CO_2F
+ warp 20, 0, 0, SILPH_CO_ELEVATOR
+ warp 16, 10, 6, SILPH_CO_3F
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_CABLE_CLUB_WOMAN, 4, 2, STAY, DOWN, 1 ; person
+
+ ; warp-to
+ warp_to 10, 17, SILPH_CO_1F_WIDTH
+ warp_to 11, 17, SILPH_CO_1F_WIDTH
+ warp_to 26, 0, SILPH_CO_1F_WIDTH ; SILPH_CO_2F
+ warp_to 20, 0, SILPH_CO_1F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 16, 10, SILPH_CO_1F_WIDTH ; SILPH_CO_3F
diff --git a/data/maps/objects/SilphCo2F.asm b/data/maps/objects/SilphCo2F.asm
new file mode 100755
index 00000000..bc30d78d
--- /dev/null
+++ b/data/maps/objects/SilphCo2F.asm
@@ -0,0 +1,29 @@
+SilphCo2F_Object:
+ db $2e ; border block
+
+ db 7 ; warps
+ warp 24, 0, 2, SILPH_CO_1F
+ warp 26, 0, 0, SILPH_CO_3F
+ warp 20, 0, 0, SILPH_CO_ELEVATOR
+ warp 3, 3, 6, SILPH_CO_3F
+ warp 13, 3, 4, SILPH_CO_8F
+ warp 27, 15, 5, SILPH_CO_8F
+ warp 9, 15, 4, SILPH_CO_6F
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_ERIKA, 10, 1, STAY, UP, 1 ; person
+ object SPRITE_OAK_AIDE, 5, 12, STAY, DOWN, 2, OPP_SCIENTIST, 2
+ object SPRITE_OAK_AIDE, 24, 13, STAY, LEFT, 3, OPP_SCIENTIST, 3
+ object SPRITE_ROCKET, 16, 11, STAY, UP, 4, OPP_ROCKET, 23
+ object SPRITE_ROCKET, 24, 7, STAY, UP, 5, OPP_ROCKET, 24
+
+ ; warp-to
+ warp_to 24, 0, SILPH_CO_2F_WIDTH ; SILPH_CO_1F
+ warp_to 26, 0, SILPH_CO_2F_WIDTH ; SILPH_CO_3F
+ warp_to 20, 0, SILPH_CO_2F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 3, 3, SILPH_CO_2F_WIDTH ; SILPH_CO_3F
+ warp_to 13, 3, SILPH_CO_2F_WIDTH ; SILPH_CO_8F
+ warp_to 27, 15, SILPH_CO_2F_WIDTH ; SILPH_CO_8F
+ warp_to 9, 15, SILPH_CO_2F_WIDTH ; SILPH_CO_6F
diff --git a/data/maps/objects/SilphCo3F.asm b/data/maps/objects/SilphCo3F.asm
new file mode 100755
index 00000000..f45cdf81
--- /dev/null
+++ b/data/maps/objects/SilphCo3F.asm
@@ -0,0 +1,34 @@
+SilphCo3F_Object:
+ db $2e ; border block
+
+ db 10 ; warps
+ warp 26, 0, 1, SILPH_CO_2F
+ warp 24, 0, 0, SILPH_CO_4F
+ warp 20, 0, 0, SILPH_CO_ELEVATOR
+ warp 23, 11, 9, SILPH_CO_3F
+ warp 3, 3, 5, SILPH_CO_5F
+ warp 3, 15, 6, SILPH_CO_5F
+ warp 27, 3, 3, SILPH_CO_2F
+ warp 3, 11, 3, SILPH_CO_9F
+ warp 11, 11, 4, SILPH_CO_7F
+ warp 27, 15, 3, SILPH_CO_3F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_LAPRAS_GIVER, 24, 8, STAY, NONE, 1 ; person
+ object SPRITE_ROCKET, 20, 7, STAY, LEFT, 2, OPP_ROCKET, 25
+ object SPRITE_OAK_AIDE, 7, 9, STAY, DOWN, 3, OPP_SCIENTIST, 4
+ object SPRITE_BALL, 8, 5, STAY, NONE, 4, HYPER_POTION
+
+ ; warp-to
+ warp_to 26, 0, SILPH_CO_3F_WIDTH ; SILPH_CO_2F
+ warp_to 24, 0, SILPH_CO_3F_WIDTH ; SILPH_CO_4F
+ warp_to 20, 0, SILPH_CO_3F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 23, 11, SILPH_CO_3F_WIDTH ; SILPH_CO_3F
+ warp_to 3, 3, SILPH_CO_3F_WIDTH ; SILPH_CO_5F
+ warp_to 3, 15, SILPH_CO_3F_WIDTH ; SILPH_CO_5F
+ warp_to 27, 3, SILPH_CO_3F_WIDTH ; SILPH_CO_2F
+ warp_to 3, 11, SILPH_CO_3F_WIDTH ; SILPH_CO_9F
+ warp_to 11, 11, SILPH_CO_3F_WIDTH ; SILPH_CO_7F
+ warp_to 27, 15, SILPH_CO_3F_WIDTH ; SILPH_CO_3F
diff --git a/data/maps/objects/SilphCo4F.asm b/data/maps/objects/SilphCo4F.asm
new file mode 100755
index 00000000..3d865bbc
--- /dev/null
+++ b/data/maps/objects/SilphCo4F.asm
@@ -0,0 +1,31 @@
+SilphCo4F_Object:
+ db $2e ; border block
+
+ db 7 ; warps
+ warp 24, 0, 1, SILPH_CO_3F
+ warp 26, 0, 1, SILPH_CO_5F
+ warp 20, 0, 0, SILPH_CO_ELEVATOR
+ warp 11, 7, 3, SILPH_CO_10F
+ warp 17, 3, 3, SILPH_CO_6F
+ warp 3, 15, 4, SILPH_CO_10F
+ warp 17, 11, 5, SILPH_CO_10F
+
+ db 0 ; signs
+
+ db 7 ; objects
+ object SPRITE_LAPRAS_GIVER, 6, 2, STAY, NONE, 1 ; person
+ object SPRITE_ROCKET, 9, 14, STAY, RIGHT, 2, OPP_ROCKET, 26
+ object SPRITE_OAK_AIDE, 14, 6, STAY, LEFT, 3, OPP_SCIENTIST, 5
+ object SPRITE_ROCKET, 26, 10, STAY, UP, 4, OPP_ROCKET, 27
+ object SPRITE_BALL, 3, 9, STAY, NONE, 5, FULL_HEAL
+ object SPRITE_BALL, 4, 7, STAY, NONE, 6, MAX_REVIVE
+ object SPRITE_BALL, 5, 8, STAY, NONE, 7, ESCAPE_ROPE
+
+ ; warp-to
+ warp_to 24, 0, SILPH_CO_4F_WIDTH ; SILPH_CO_3F
+ warp_to 26, 0, SILPH_CO_4F_WIDTH ; SILPH_CO_5F
+ warp_to 20, 0, SILPH_CO_4F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 11, 7, SILPH_CO_4F_WIDTH ; SILPH_CO_10F
+ warp_to 17, 3, SILPH_CO_4F_WIDTH ; SILPH_CO_6F
+ warp_to 3, 15, SILPH_CO_4F_WIDTH ; SILPH_CO_10F
+ warp_to 17, 11, SILPH_CO_4F_WIDTH ; SILPH_CO_10F
diff --git a/data/maps/objects/SilphCo5F.asm b/data/maps/objects/SilphCo5F.asm
new file mode 100755
index 00000000..c10f17c8
--- /dev/null
+++ b/data/maps/objects/SilphCo5F.asm
@@ -0,0 +1,35 @@
+SilphCo5F_Object:
+ db $2e ; border block
+
+ db 7 ; warps
+ warp 24, 0, 1, SILPH_CO_6F
+ warp 26, 0, 1, SILPH_CO_4F
+ warp 20, 0, 0, SILPH_CO_ELEVATOR
+ warp 27, 3, 5, SILPH_CO_7F
+ warp 9, 15, 4, SILPH_CO_9F
+ warp 11, 5, 4, SILPH_CO_3F
+ warp 3, 15, 5, SILPH_CO_3F
+
+ db 0 ; signs
+
+ db 11 ; objects
+ object SPRITE_LAPRAS_GIVER, 13, 9, STAY, NONE, 1 ; person
+ object SPRITE_ROCKET, 8, 16, STAY, RIGHT, 2, OPP_ROCKET, 28
+ object SPRITE_OAK_AIDE, 8, 3, STAY, RIGHT, 3, OPP_SCIENTIST, 6
+ object SPRITE_ROCKER, 18, 10, STAY, UP, 4, OPP_JUGGLER, 1
+ object SPRITE_ROCKET, 28, 4, STAY, UP, 5, OPP_ROCKET, 29
+ object SPRITE_BALL, 2, 13, STAY, NONE, 6, TM_09
+ object SPRITE_BALL, 4, 6, STAY, NONE, 7, PROTEIN
+ object SPRITE_BALL, 21, 16, STAY, NONE, 8, CARD_KEY
+ object SPRITE_CLIPBOARD, 22, 12, STAY, NONE, 9 ; person
+ object SPRITE_CLIPBOARD, 25, 10, STAY, NONE, 10 ; person
+ object SPRITE_CLIPBOARD, 24, 6, STAY, NONE, 11 ; person
+
+ ; warp-to
+ warp_to 24, 0, SILPH_CO_5F_WIDTH ; SILPH_CO_6F
+ warp_to 26, 0, SILPH_CO_5F_WIDTH ; SILPH_CO_4F
+ warp_to 20, 0, SILPH_CO_5F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 27, 3, SILPH_CO_5F_WIDTH ; SILPH_CO_7F
+ warp_to 9, 15, SILPH_CO_5F_WIDTH ; SILPH_CO_9F
+ warp_to 11, 5, SILPH_CO_5F_WIDTH ; SILPH_CO_3F
+ warp_to 3, 15, SILPH_CO_5F_WIDTH ; SILPH_CO_3F
diff --git a/data/maps/objects/SilphCo6F.asm b/data/maps/objects/SilphCo6F.asm
new file mode 100755
index 00000000..ad2ac32f
--- /dev/null
+++ b/data/maps/objects/SilphCo6F.asm
@@ -0,0 +1,30 @@
+SilphCo6F_Object:
+ db $2e ; border block
+
+ db 5 ; warps
+ warp 16, 0, 1, SILPH_CO_7F
+ warp 14, 0, 0, SILPH_CO_5F
+ warp 18, 0, 0, SILPH_CO_ELEVATOR
+ warp 3, 3, 4, SILPH_CO_4F
+ warp 23, 3, 6, SILPH_CO_2F
+
+ db 0 ; signs
+
+ db 10 ; objects
+ object SPRITE_LAPRAS_GIVER, 10, 6, STAY, NONE, 1 ; person
+ object SPRITE_LAPRAS_GIVER, 20, 6, STAY, NONE, 2 ; person
+ object SPRITE_ERIKA, 21, 6, STAY, DOWN, 3 ; person
+ object SPRITE_ERIKA, 11, 10, STAY, RIGHT, 4 ; person
+ object SPRITE_LAPRAS_GIVER, 18, 13, STAY, UP, 5 ; person
+ object SPRITE_ROCKET, 17, 3, STAY, RIGHT, 6, OPP_ROCKET, 30
+ object SPRITE_OAK_AIDE, 7, 8, STAY, DOWN, 7, OPP_SCIENTIST, 7
+ object SPRITE_ROCKET, 14, 15, STAY, LEFT, 8, OPP_ROCKET, 31
+ object SPRITE_BALL, 3, 12, STAY, NONE, 9, HP_UP
+ object SPRITE_BALL, 2, 15, STAY, NONE, 10, X_ACCURACY
+
+ ; warp-to
+ warp_to 16, 0, SILPH_CO_6F_WIDTH ; SILPH_CO_7F
+ warp_to 14, 0, SILPH_CO_6F_WIDTH ; SILPH_CO_5F
+ warp_to 18, 0, SILPH_CO_6F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 3, 3, SILPH_CO_6F_WIDTH ; SILPH_CO_4F
+ warp_to 23, 3, SILPH_CO_6F_WIDTH ; SILPH_CO_2F
diff --git a/data/maps/objects/SilphCo7F.asm b/data/maps/objects/SilphCo7F.asm
new file mode 100755
index 00000000..255f4b33
--- /dev/null
+++ b/data/maps/objects/SilphCo7F.asm
@@ -0,0 +1,33 @@
+SilphCo7F_Object:
+ db $2e ; border block
+
+ db 6 ; warps
+ warp 16, 0, 1, SILPH_CO_8F
+ warp 22, 0, 0, SILPH_CO_6F
+ warp 18, 0, 0, SILPH_CO_ELEVATOR
+ warp 5, 7, 3, SILPH_CO_11F
+ warp 5, 3, 8, SILPH_CO_3F
+ warp 21, 15, 3, SILPH_CO_5F
+
+ db 0 ; signs
+
+ db 11 ; objects
+ object SPRITE_LAPRAS_GIVER, 1, 5, STAY, NONE, 1 ; person
+ object SPRITE_LAPRAS_GIVER, 13, 13, STAY, UP, 2 ; person
+ object SPRITE_LAPRAS_GIVER, 7, 10, STAY, NONE, 3 ; person
+ object SPRITE_ERIKA, 10, 8, STAY, NONE, 4 ; person
+ object SPRITE_ROCKET, 13, 1, STAY, DOWN, 5, OPP_ROCKET, 32
+ object SPRITE_OAK_AIDE, 2, 13, STAY, DOWN, 6, OPP_SCIENTIST, 8
+ object SPRITE_ROCKET, 20, 2, STAY, LEFT, 7, OPP_ROCKET, 33
+ object SPRITE_ROCKET, 19, 14, STAY, RIGHT, 8, OPP_ROCKET, 34
+ object SPRITE_BLUE, 3, 7, STAY, UP, 9 ; person
+ object SPRITE_BALL, 1, 9, STAY, NONE, 10, CALCIUM
+ object SPRITE_BALL, 24, 11, STAY, NONE, 11, TM_03
+
+ ; warp-to
+ warp_to 16, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_8F
+ warp_to 22, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_6F
+ warp_to 18, 0, SILPH_CO_7F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 5, 7, SILPH_CO_7F_WIDTH ; SILPH_CO_11F
+ warp_to 5, 3, SILPH_CO_7F_WIDTH ; SILPH_CO_3F
+ warp_to 21, 15, SILPH_CO_7F_WIDTH ; SILPH_CO_5F
diff --git a/data/maps/objects/SilphCo8F.asm b/data/maps/objects/SilphCo8F.asm
new file mode 100755
index 00000000..d05c7844
--- /dev/null
+++ b/data/maps/objects/SilphCo8F.asm
@@ -0,0 +1,28 @@
+SilphCo8F_Object:
+ db $2e ; border block
+
+ db 7 ; warps
+ warp 16, 0, 1, SILPH_CO_9F
+ warp 14, 0, 0, SILPH_CO_7F
+ warp 18, 0, 0, SILPH_CO_ELEVATOR
+ warp 3, 11, 6, SILPH_CO_8F
+ warp 3, 15, 4, SILPH_CO_2F
+ warp 11, 5, 5, SILPH_CO_2F
+ warp 11, 9, 3, SILPH_CO_8F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_LAPRAS_GIVER, 4, 2, STAY, NONE, 1 ; person
+ object SPRITE_ROCKET, 19, 2, STAY, LEFT, 2, OPP_ROCKET, 35
+ object SPRITE_OAK_AIDE, 10, 2, STAY, DOWN, 3, OPP_SCIENTIST, 9
+ object SPRITE_ROCKET, 12, 15, STAY, RIGHT, 4, OPP_ROCKET, 36
+
+ ; warp-to
+ warp_to 16, 0, SILPH_CO_8F_WIDTH ; SILPH_CO_9F
+ warp_to 14, 0, SILPH_CO_8F_WIDTH ; SILPH_CO_7F
+ warp_to 18, 0, SILPH_CO_8F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 3, 11, SILPH_CO_8F_WIDTH ; SILPH_CO_8F
+ warp_to 3, 15, SILPH_CO_8F_WIDTH ; SILPH_CO_2F
+ warp_to 11, 5, SILPH_CO_8F_WIDTH ; SILPH_CO_2F
+ warp_to 11, 9, SILPH_CO_8F_WIDTH ; SILPH_CO_8F_WIDTH
diff --git a/data/maps/objects/SilphCo9F.asm b/data/maps/objects/SilphCo9F.asm
new file mode 100755
index 00000000..28ef5f10
--- /dev/null
+++ b/data/maps/objects/SilphCo9F.asm
@@ -0,0 +1,24 @@
+SilphCo9F_Object:
+ db $2e ; border block
+
+ db 5 ; warps
+ warp 14, 0, 0, SILPH_CO_10F
+ warp 16, 0, 0, SILPH_CO_8F
+ warp 18, 0, 0, SILPH_CO_ELEVATOR
+ warp 9, 3, 7, SILPH_CO_3F
+ warp 17, 15, 4, SILPH_CO_5F
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 14, STAY, DOWN, 1 ; person
+ object SPRITE_ROCKET, 2, 4, STAY, UP, 2, OPP_ROCKET, 37
+ object SPRITE_OAK_AIDE, 21, 13, STAY, DOWN, 3, OPP_SCIENTIST, 10
+ object SPRITE_ROCKET, 13, 16, STAY, UP, 4, OPP_ROCKET, 38
+
+ ; warp-to
+ warp_to 14, 0, SILPH_CO_9F_WIDTH ; SILPH_CO_10F
+ warp_to 16, 0, SILPH_CO_9F_WIDTH ; SILPH_CO_8F
+ warp_to 18, 0, SILPH_CO_9F_WIDTH ; SILPH_CO_ELEVATOR
+ warp_to 9, 3, SILPH_CO_9F_WIDTH ; SILPH_CO_3F
+ warp_to 17, 15, SILPH_CO_9F_WIDTH ; SILPH_CO_5F
diff --git a/data/maps/objects/SilphCoElevator.asm b/data/maps/objects/SilphCoElevator.asm
new file mode 100755
index 00000000..9c4b5a79
--- /dev/null
+++ b/data/maps/objects/SilphCoElevator.asm
@@ -0,0 +1,15 @@
+SilphCoElevator_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 1, 3, 0, 237
+ warp 2, 3, 0, 237
+
+ db 1 ; signs
+ sign 3, 0, 1 ; SilphCoElevatorText1
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 1, 3, SILPH_CO_ELEVATOR_WIDTH
+ warp_to 2, 3, SILPH_CO_ELEVATOR_WIDTH
diff --git a/data/maps/objects/TradeCenter.asm b/data/maps/objects/TradeCenter.asm
new file mode 100755
index 00000000..e6df8087
--- /dev/null
+++ b/data/maps/objects/TradeCenter.asm
@@ -0,0 +1,9 @@
+TradeCenter_Object:
+ db $e ; border block
+
+ db 0 ; warps
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_RED, 2, 2, STAY, 0, 1 ; person
diff --git a/data/maps/objects/UndergroundPathNorthSouth.asm b/data/maps/objects/UndergroundPathNorthSouth.asm
new file mode 100755
index 00000000..35e21cca
--- /dev/null
+++ b/data/maps/objects/UndergroundPathNorthSouth.asm
@@ -0,0 +1,14 @@
+UndergroundPathNorthSouth_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 5, 4, 2, UNDERGROUND_PATH_ROUTE_5
+ warp 2, 41, 2, UNDERGROUND_PATH_ROUTE_6
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 5, 4, UNDERGROUND_PATH_NORTH_SOUTH_WIDTH ; UNDERGROUND_PATH_ROUTE_5
+ warp_to 2, 41, UNDERGROUND_PATH_NORTH_SOUTH_WIDTH ; UNDERGROUND_PATH_ROUTE_6
diff --git a/data/maps/objects/UndergroundPathRoute5.asm b/data/maps/objects/UndergroundPathRoute5.asm
new file mode 100755
index 00000000..af71ebb4
--- /dev/null
+++ b/data/maps/objects/UndergroundPathRoute5.asm
@@ -0,0 +1,17 @@
+UndergroundPathRoute5_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 3, 7, 3, -1
+ warp 4, 7, 3, -1
+ warp 4, 4, 0, UNDERGROUND_PATH_NORTH_SOUTH
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_LITTLE_GIRL, 2, 3, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 3, 7, UNDERGROUND_PATH_ROUTE_5_WIDTH
+ warp_to 4, 7, UNDERGROUND_PATH_ROUTE_5_WIDTH
+ warp_to 4, 4, UNDERGROUND_PATH_ROUTE_5_WIDTH ; UNDERGROUND_PATH_NORTH_SOUTH
diff --git a/data/maps/objects/UndergroundPathRoute6.asm b/data/maps/objects/UndergroundPathRoute6.asm
new file mode 100755
index 00000000..5a40ade2
--- /dev/null
+++ b/data/maps/objects/UndergroundPathRoute6.asm
@@ -0,0 +1,17 @@
+UndergroundPathRoute6_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 3, 7, 3, -1
+ warp 4, 7, 3, -1
+ warp 4, 4, 1, UNDERGROUND_PATH_NORTH_SOUTH
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GIRL, 2, 3, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 3, 7, UNDERGROUND_PATH_ROUTE_6_WIDTH
+ warp_to 4, 7, UNDERGROUND_PATH_ROUTE_6_WIDTH
+ warp_to 4, 4, UNDERGROUND_PATH_ROUTE_6_WIDTH ; UNDERGROUND_PATH_NORTH_SOUTH
diff --git a/data/maps/objects/UndergroundPathRoute7.asm b/data/maps/objects/UndergroundPathRoute7.asm
new file mode 100755
index 00000000..4666e0c9
--- /dev/null
+++ b/data/maps/objects/UndergroundPathRoute7.asm
@@ -0,0 +1,17 @@
+UndergroundPathRoute7_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 3, 7, 4, -1
+ warp 4, 7, 4, -1
+ warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FAT_BALD_GUY, 2, 4, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 3, 7, UNDERGROUND_PATH_ROUTE_7_WIDTH
+ warp_to 4, 7, UNDERGROUND_PATH_ROUTE_7_WIDTH
+ warp_to 4, 4, UNDERGROUND_PATH_ROUTE_7_WIDTH ; UNDERGROUND_PATH_WEST_EAST
diff --git a/data/maps/objects/UndergroundPathRoute7Copy.asm b/data/maps/objects/UndergroundPathRoute7Copy.asm
new file mode 100755
index 00000000..c020646e
--- /dev/null
+++ b/data/maps/objects/UndergroundPathRoute7Copy.asm
@@ -0,0 +1,18 @@
+UndergroundPathRoute7Copy_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 3, 7, 5, -1
+ warp 4, 7, 5, -1
+ warp 4, 4, 0, UNDERGROUND_PATH_WEST_EAST
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_GIRL, 3, 2, STAY, NONE, 1 ; person
+ object SPRITE_FAT_BALD_GUY, 2, 4, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 3, 7, UNDERGROUND_PATH_ROUTE_7_COPY_WIDTH
+ warp_to 4, 7, UNDERGROUND_PATH_ROUTE_7_COPY_WIDTH
+ warp_to 4, 4, UNDERGROUND_PATH_ROUTE_7_COPY_WIDTH ; UNDERGROUND_PATH_WEST_EAST
diff --git a/data/maps/objects/UndergroundPathRoute8.asm b/data/maps/objects/UndergroundPathRoute8.asm
new file mode 100755
index 00000000..8be0d474
--- /dev/null
+++ b/data/maps/objects/UndergroundPathRoute8.asm
@@ -0,0 +1,17 @@
+UndergroundPathRoute8_Object:
+ db $a ; border block
+
+ db 3 ; warps
+ warp 3, 7, 4, -1
+ warp 4, 7, 4, -1
+ warp 4, 4, 1, UNDERGROUND_PATH_WEST_EAST
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_GIRL, 3, 4, STAY, NONE, 1 ; person
+
+ ; warp-to
+ warp_to 3, 7, UNDERGROUND_PATH_ROUTE_8_WIDTH
+ warp_to 4, 7, UNDERGROUND_PATH_ROUTE_8_WIDTH
+ warp_to 4, 4, UNDERGROUND_PATH_ROUTE_8_WIDTH ; UNDERGROUND_PATH_WEST_EAST
diff --git a/data/maps/objects/UndergroundPathWestEast.asm b/data/maps/objects/UndergroundPathWestEast.asm
new file mode 100755
index 00000000..fa064aca
--- /dev/null
+++ b/data/maps/objects/UndergroundPathWestEast.asm
@@ -0,0 +1,14 @@
+UndergroundPathWestEast_Object:
+ db $1 ; border block
+
+ db 2 ; warps
+ warp 2, 5, 2, UNDERGROUND_PATH_ROUTE_7
+ warp 47, 2, 2, UNDERGROUND_PATH_ROUTE_8
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 2, 5, UNDERGROUND_PATH_WEST_EAST_WIDTH ; UNDERGROUND_PATH_ROUTE_7
+ warp_to 47, 2, UNDERGROUND_PATH_WEST_EAST_WIDTH ; UNDERGROUND_PATH_ROUTE_8
diff --git a/data/maps/objects/VermilionCity.asm b/data/maps/objects/VermilionCity.asm
new file mode 100755
index 00000000..b1e1a005
--- /dev/null
+++ b/data/maps/objects/VermilionCity.asm
@@ -0,0 +1,41 @@
+VermilionCity_Object:
+ db $43 ; border block
+
+ db 9 ; warps
+ warp 11, 3, 0, VERMILION_POKECENTER
+ warp 9, 13, 0, POKEMON_FAN_CLUB
+ warp 23, 13, 0, VERMILION_MART
+ warp 12, 19, 0, VERMILION_GYM
+ warp 23, 19, 0, VERMILION_PIDGEY_HOUSE
+ warp 18, 31, 0, VERMILION_DOCK
+ warp 19, 31, 0, VERMILION_DOCK
+ warp 15, 13, 0, VERMILION_TRADE_HOUSE
+ warp 7, 3, 0, VERMILION_OLD_ROD_HOUSE
+
+ db 7 ; signs
+ sign 27, 3, 7 ; VermilionCityText7
+ sign 37, 13, 8 ; VermilionCityText8
+ sign 24, 13, 9 ; MartSignText
+ sign 12, 3, 10 ; PokeCenterSignText
+ sign 7, 13, 11 ; VermilionCityText11
+ sign 7, 19, 12 ; VermilionCityText12
+ sign 29, 15, 13 ; VermilionCityText13
+
+ db 6 ; objects
+ object SPRITE_FOULARD_WOMAN, 19, 7, WALK, 2, 1 ; person
+ object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person
+ object SPRITE_SAILOR, 19, 30, STAY, UP, 3 ; person
+ object SPRITE_GAMBLER, 30, 7, STAY, NONE, 4 ; person
+ object SPRITE_SLOWBRO, 29, 9, WALK, 1, 5 ; person
+ object SPRITE_SAILOR, 25, 27, WALK, 2, 6 ; person
+
+ ; warp-to
+ warp_to 11, 3, VERMILION_CITY_WIDTH ; VERMILION_POKECENTER
+ warp_to 9, 13, VERMILION_CITY_WIDTH ; POKEMON_FAN_CLUB
+ warp_to 23, 13, VERMILION_CITY_WIDTH ; VERMILION_MART
+ warp_to 12, 19, VERMILION_CITY_WIDTH ; VERMILION_GYM
+ warp_to 23, 19, VERMILION_CITY_WIDTH ; VERMILION_PIDGEY_HOUSE
+ warp_to 18, 31, VERMILION_CITY_WIDTH ; VERMILION_DOCK
+ warp_to 19, 31, VERMILION_CITY_WIDTH ; VERMILION_DOCK
+ warp_to 15, 13, VERMILION_CITY_WIDTH ; VERMILION_TRADE_HOUSE
+ warp_to 7, 3, VERMILION_CITY_WIDTH ; VERMILION_OLD_ROD_HOUSE
diff --git a/data/maps/objects/VermilionDock.asm b/data/maps/objects/VermilionDock.asm
new file mode 100755
index 00000000..6f07554a
--- /dev/null
+++ b/data/maps/objects/VermilionDock.asm
@@ -0,0 +1,14 @@
+VermilionDock_Object:
+ db $f ; border block
+
+ db 2 ; warps
+ warp 14, 0, 5, -1
+ warp 14, 2, 1, SS_ANNE_1F
+
+ db 0 ; signs
+
+ db 0 ; objects
+
+ ; warp-to
+ warp_to 14, 0, VERMILION_DOCK_WIDTH
+ warp_to 14, 2, VERMILION_DOCK_WIDTH ; SS_ANNE_1F
diff --git a/data/maps/objects/VermilionGym.asm b/data/maps/objects/VermilionGym.asm
new file mode 100755
index 00000000..4ace83be
--- /dev/null
+++ b/data/maps/objects/VermilionGym.asm
@@ -0,0 +1,19 @@
+VermilionGym_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 4, 17, 3, -1
+ warp 5, 17, 3, -1
+
+ db 0 ; signs
+
+ db 5 ; objects
+ object SPRITE_ROCKER, 5, 1, STAY, DOWN, 1, OPP_LT_SURGE, 1
+ object SPRITE_GENTLEMAN, 9, 6, STAY, LEFT, 2, OPP_GENTLEMAN, 3
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 8, STAY, LEFT, 3, OPP_ROCKER, 1
+ object SPRITE_SAILOR, 0, 10, STAY, RIGHT, 4, OPP_SAILOR, 8
+ object SPRITE_GYM_HELPER, 4, 14, STAY, DOWN, 5 ; person
+
+ ; warp-to
+ warp_to 4, 17, VERMILION_GYM_WIDTH
+ warp_to 5, 17, VERMILION_GYM_WIDTH
diff --git a/data/maps/objects/VermilionMart.asm b/data/maps/objects/VermilionMart.asm
new file mode 100755
index 00000000..74bcf35f
--- /dev/null
+++ b/data/maps/objects/VermilionMart.asm
@@ -0,0 +1,17 @@
+VermilionMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 2, -1
+ warp 4, 7, 2, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 5, 6, STAY, NONE, 2 ; person
+ object SPRITE_LASS, 3, 3, WALK, 2, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, VERMILION_MART_WIDTH
+ warp_to 4, 7, VERMILION_MART_WIDTH
diff --git a/data/maps/objects/VermilionOldRodHouse.asm b/data/maps/objects/VermilionOldRodHouse.asm
new file mode 100755
index 00000000..f5b4b96a
--- /dev/null
+++ b/data/maps/objects/VermilionOldRodHouse.asm
@@ -0,0 +1,15 @@
+VermilionOldRodHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 8, -1
+ warp 3, 7, 8, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_FISHER, 2, 4, STAY, RIGHT, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, VERMILION_OLD_ROD_HOUSE_WIDTH
+ warp_to 3, 7, VERMILION_OLD_ROD_HOUSE_WIDTH
diff --git a/data/maps/objects/VermilionPidgeyHouse.asm b/data/maps/objects/VermilionPidgeyHouse.asm
new file mode 100755
index 00000000..0e820f86
--- /dev/null
+++ b/data/maps/objects/VermilionPidgeyHouse.asm
@@ -0,0 +1,17 @@
+VermilionPidgeyHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 4, -1
+ warp 3, 7, 4, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_BUG_CATCHER, 5, 3, STAY, LEFT, 1 ; person
+ object SPRITE_BIRD, 3, 5, WALK, 2, 2 ; person
+ object SPRITE_PAPER_SHEET, 4, 3, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 2, 7, VERMILION_PIDGEY_HOUSE_WIDTH
+ warp_to 3, 7, VERMILION_PIDGEY_HOUSE_WIDTH
diff --git a/data/maps/objects/VermilionPokecenter.asm b/data/maps/objects/VermilionPokecenter.asm
new file mode 100755
index 00000000..d2142045
--- /dev/null
+++ b/data/maps/objects/VermilionPokecenter.asm
@@ -0,0 +1,18 @@
+VermilionPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 0, -1
+ warp 4, 7, 0, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_FISHER, 10, 5, STAY, NONE, 2 ; person
+ object SPRITE_SAILOR, 5, 4, STAY, NONE, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, VERMILION_POKECENTER_WIDTH
+ warp_to 4, 7, VERMILION_POKECENTER_WIDTH
diff --git a/data/maps/objects/VermilionTradeHouse.asm b/data/maps/objects/VermilionTradeHouse.asm
new file mode 100755
index 00000000..30212b2a
--- /dev/null
+++ b/data/maps/objects/VermilionTradeHouse.asm
@@ -0,0 +1,15 @@
+VermilionTradeHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 7, -1
+ warp 3, 7, 7, -1
+
+ db 0 ; signs
+
+ db 1 ; objects
+ object SPRITE_LITTLE_GIRL, 3, 5, STAY, UP, 1 ; person
+
+ ; warp-to
+ warp_to 2, 7, VERMILION_TRADE_HOUSE_WIDTH
+ warp_to 3, 7, VERMILION_TRADE_HOUSE_WIDTH
diff --git a/data/maps/objects/VictoryRoad1F.asm b/data/maps/objects/VictoryRoad1F.asm
new file mode 100755
index 00000000..cc0c47ce
--- /dev/null
+++ b/data/maps/objects/VictoryRoad1F.asm
@@ -0,0 +1,23 @@
+VictoryRoad1F_Object:
+ db $7d ; border block
+
+ db 3 ; warps
+ warp 8, 17, 2, -1
+ warp 9, 17, 2, -1
+ warp 1, 1, 0, VICTORY_ROAD_2F
+
+ db 0 ; signs
+
+ db 7 ; objects
+ object SPRITE_LASS, 7, 5, STAY, RIGHT, 1, OPP_COOLTRAINER_F, 5
+ object SPRITE_BLACK_HAIR_BOY_1, 3, 2, STAY, DOWN, 2, OPP_COOLTRAINER_M, 5
+ object SPRITE_BALL, 11, 0, STAY, NONE, 3, TM_43
+ object SPRITE_BALL, 9, 2, STAY, NONE, 4, RARE_CANDY
+ object SPRITE_BOULDER, 5, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 5 ; person
+ object SPRITE_BOULDER, 14, 2, STAY, BOULDER_MOVEMENT_BYTE_2, 6 ; person
+ object SPRITE_BOULDER, 2, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person
+
+ ; warp-to
+ warp_to 8, 17, VICTORY_ROAD_1F_WIDTH
+ warp_to 9, 17, VICTORY_ROAD_1F_WIDTH
+ warp_to 1, 1, VICTORY_ROAD_1F_WIDTH ; VICTORY_ROAD_2F
diff --git a/data/maps/objects/VictoryRoad2F.asm b/data/maps/objects/VictoryRoad2F.asm
new file mode 100755
index 00000000..55559bca
--- /dev/null
+++ b/data/maps/objects/VictoryRoad2F.asm
@@ -0,0 +1,37 @@
+VictoryRoad2F_Object:
+ db $7d ; border block
+
+ db 7 ; warps
+ warp 0, 8, 2, VICTORY_ROAD_1F
+ warp 29, 7, 3, -1
+ warp 29, 8, 3, -1
+ warp 23, 7, 0, VICTORY_ROAD_3F
+ warp 25, 14, 2, VICTORY_ROAD_3F
+ warp 27, 7, 1, VICTORY_ROAD_3F
+ warp 1, 1, 3, VICTORY_ROAD_3F
+
+ db 0 ; signs
+
+ db 13 ; objects
+ object SPRITE_HIKER, 12, 9, STAY, LEFT, 1, OPP_BLACKBELT, 9
+ object SPRITE_BLACK_HAIR_BOY_2, 21, 13, STAY, LEFT, 2, OPP_JUGGLER, 2
+ object SPRITE_BLACK_HAIR_BOY_1, 19, 8, STAY, DOWN, 3, OPP_TAMER, 5
+ object SPRITE_BLACK_HAIR_BOY_2, 4, 2, STAY, DOWN, 4, OPP_POKEMANIAC, 6
+ object SPRITE_BLACK_HAIR_BOY_2, 26, 3, STAY, LEFT, 5, OPP_JUGGLER, 5
+ object SPRITE_BIRD, 11, 5, STAY, UP, 6, MOLTRES, 50
+ object SPRITE_BALL, 27, 5, STAY, NONE, 7, TM_17
+ object SPRITE_BALL, 18, 9, STAY, NONE, 8, FULL_HEAL
+ object SPRITE_BALL, 9, 11, STAY, NONE, 9, TM_05
+ object SPRITE_BALL, 11, 0, STAY, NONE, 10, GUARD_SPEC
+ object SPRITE_BOULDER, 4, 14, STAY, BOULDER_MOVEMENT_BYTE_2, 11 ; person
+ object SPRITE_BOULDER, 5, 5, STAY, BOULDER_MOVEMENT_BYTE_2, 12 ; person
+ object SPRITE_BOULDER, 23, 16, STAY, BOULDER_MOVEMENT_BYTE_2, 13 ; person
+
+ ; warp-to
+ warp_to 0, 8, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_1F
+ warp_to 29, 7, VICTORY_ROAD_2F_WIDTH
+ warp_to 29, 8, VICTORY_ROAD_2F_WIDTH
+ warp_to 23, 7, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F
+ warp_to 25, 14, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F
+ warp_to 27, 7, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F
+ warp_to 1, 1, VICTORY_ROAD_2F_WIDTH ; VICTORY_ROAD_3F
diff --git a/data/maps/objects/VictoryRoad3F.asm b/data/maps/objects/VictoryRoad3F.asm
new file mode 100755
index 00000000..2eb42417
--- /dev/null
+++ b/data/maps/objects/VictoryRoad3F.asm
@@ -0,0 +1,28 @@
+VictoryRoad3F_Object:
+ db $7d ; border block
+
+ db 4 ; warps
+ warp 23, 7, 3, VICTORY_ROAD_2F
+ warp 26, 8, 5, VICTORY_ROAD_2F
+ warp 27, 15, 4, VICTORY_ROAD_2F
+ warp 2, 0, 6, VICTORY_ROAD_2F
+
+ db 0 ; signs
+
+ db 10 ; objects
+ object SPRITE_BLACK_HAIR_BOY_1, 28, 5, STAY, LEFT, 1, OPP_COOLTRAINER_M, 2
+ object SPRITE_LASS, 7, 13, STAY, RIGHT, 2, OPP_COOLTRAINER_F, 2
+ object SPRITE_BLACK_HAIR_BOY_1, 6, 14, STAY, LEFT, 3, OPP_COOLTRAINER_M, 3
+ object SPRITE_LASS, 13, 3, STAY, RIGHT, 4, OPP_COOLTRAINER_F, 3
+ object SPRITE_BALL, 26, 5, STAY, NONE, 5, MAX_REVIVE
+ object SPRITE_BALL, 7, 7, STAY, NONE, 6, TM_47
+ object SPRITE_BOULDER, 22, 3, STAY, BOULDER_MOVEMENT_BYTE_2, 7 ; person
+ object SPRITE_BOULDER, 13, 12, STAY, BOULDER_MOVEMENT_BYTE_2, 8 ; person
+ object SPRITE_BOULDER, 24, 10, STAY, BOULDER_MOVEMENT_BYTE_2, 9 ; person
+ object SPRITE_BOULDER, 22, 15, STAY, BOULDER_MOVEMENT_BYTE_2, 10 ; person
+
+ ; warp-to
+ warp_to 23, 7, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F
+ warp_to 26, 8, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F
+ warp_to 27, 15, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F
+ warp_to 2, 0, VICTORY_ROAD_3F_WIDTH ; VICTORY_ROAD_2F
diff --git a/data/maps/objects/ViridianCity.asm b/data/maps/objects/ViridianCity.asm
new file mode 100755
index 00000000..32fe8d3a
--- /dev/null
+++ b/data/maps/objects/ViridianCity.asm
@@ -0,0 +1,33 @@
+ViridianCity_Object:
+ db $f ; border block
+
+ db 5 ; warps
+ warp 23, 25, 0, VIRIDIAN_POKECENTER
+ warp 29, 19, 0, VIRIDIAN_MART
+ warp 21, 15, 0, VIRIDIAN_SCHOOL_HOUSE
+ warp 21, 9, 0, VIRIDIAN_NICKNAME_HOUSE
+ warp 32, 7, 0, VIRIDIAN_GYM
+
+ db 6 ; signs
+ sign 17, 17, 8 ; ViridianCityText8
+ sign 19, 1, 9 ; ViridianCityText9
+ sign 21, 29, 10 ; ViridianCityText10
+ sign 30, 19, 11 ; MartSignText
+ sign 24, 25, 12 ; PokeCenterSignText
+ sign 27, 7, 13 ; ViridianCityText13
+
+ db 7 ; objects
+ object SPRITE_BUG_CATCHER, 13, 20, WALK, 0, 1 ; person
+ object SPRITE_GAMBLER, 30, 8, STAY, NONE, 2 ; person
+ object SPRITE_BUG_CATCHER, 30, 25, WALK, 0, 3 ; person
+ object SPRITE_GIRL, 17, 9, STAY, RIGHT, 4 ; person
+ object SPRITE_LYING_OLD_MAN, 18, 9, STAY, NONE, 5 ; person
+ object SPRITE_FISHER2, 6, 23, STAY, DOWN, 6 ; person
+ object SPRITE_GAMBLER, 17, 5, WALK, 2, 7 ; person
+
+ ; warp-to
+ warp_to 23, 25, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_POKECENTER
+ warp_to 29, 19, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_MART
+ warp_to 21, 15, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_SCHOOL_HOUSE
+ warp_to 21, 9, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_NICKNAME_HOUSE
+ warp_to 32, 7, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_GYM
diff --git a/data/maps/objects/ViridianForest.asm b/data/maps/objects/ViridianForest.asm
new file mode 100755
index 00000000..cbcb6ff8
--- /dev/null
+++ b/data/maps/objects/ViridianForest.asm
@@ -0,0 +1,36 @@
+ViridianForest_Object:
+ db $3 ; border block
+
+ db 6 ; warps
+ warp 1, 0, 2, VIRIDIAN_FOREST_NORTH_GATE
+ warp 2, 0, 3, VIRIDIAN_FOREST_NORTH_GATE
+ warp 15, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
+ warp 16, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
+ warp 17, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
+ warp 18, 47, 1, VIRIDIAN_FOREST_SOUTH_GATE
+
+ db 6 ; signs
+ sign 24, 40, 9 ; ViridianForestText9
+ sign 16, 32, 10 ; ViridianForestText10
+ sign 26, 17, 11 ; ViridianForestText11
+ sign 4, 24, 12 ; ViridianForestText12
+ sign 18, 45, 13 ; ViridianForestText13
+ sign 2, 1, 14 ; ViridianForestText14
+
+ db 8 ; objects
+ object SPRITE_BUG_CATCHER, 16, 43, STAY, NONE, 1 ; person
+ object SPRITE_BUG_CATCHER, 30, 33, STAY, LEFT, 2, OPP_BUG_CATCHER, 1
+ object SPRITE_BUG_CATCHER, 30, 19, STAY, LEFT, 3, OPP_BUG_CATCHER, 2
+ object SPRITE_BUG_CATCHER, 2, 18, STAY, LEFT, 4, OPP_BUG_CATCHER, 3
+ object SPRITE_BALL, 25, 11, STAY, NONE, 5, ANTIDOTE
+ object SPRITE_BALL, 12, 29, STAY, NONE, 6, POTION
+ object SPRITE_BALL, 1, 31, STAY, NONE, 7, POKE_BALL
+ object SPRITE_BUG_CATCHER, 27, 40, STAY, NONE, 8 ; person
+
+ ; warp-to
+ warp_to 1, 0, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_NORTH_GATE
+ warp_to 2, 0, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_NORTH_GATE
+ warp_to 15, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE
+ warp_to 16, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE
+ warp_to 17, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE
+ warp_to 18, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_SOUTH_GATE
diff --git a/data/maps/objects/ViridianForestNorthGate.asm b/data/maps/objects/ViridianForestNorthGate.asm
new file mode 100755
index 00000000..81e7fece
--- /dev/null
+++ b/data/maps/objects/ViridianForestNorthGate.asm
@@ -0,0 +1,20 @@
+ViridianForestNorthGate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 4, 0, 1, -1
+ warp 5, 0, 1, -1
+ warp 4, 7, 0, VIRIDIAN_FOREST
+ warp 5, 7, 0, VIRIDIAN_FOREST
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BLACK_HAIR_BOY_2, 3, 2, STAY, NONE, 1 ; person
+ object SPRITE_OLD_PERSON, 2, 5, STAY, NONE, 2 ; person
+
+ ; warp-to
+ warp_to 4, 0, VIRIDIAN_FOREST_NORTH_GATE_WIDTH
+ warp_to 5, 0, VIRIDIAN_FOREST_NORTH_GATE_WIDTH
+ warp_to 4, 7, VIRIDIAN_FOREST_NORTH_GATE_WIDTH ; VIRIDIAN_FOREST
+ warp_to 5, 7, VIRIDIAN_FOREST_NORTH_GATE_WIDTH ; VIRIDIAN_FOREST
diff --git a/data/maps/objects/ViridianForestSouthGate.asm b/data/maps/objects/ViridianForestSouthGate.asm
new file mode 100755
index 00000000..76f87e51
--- /dev/null
+++ b/data/maps/objects/ViridianForestSouthGate.asm
@@ -0,0 +1,20 @@
+ViridianForestSouthGate_Object:
+ db $a ; border block
+
+ db 4 ; warps
+ warp 4, 0, 3, VIRIDIAN_FOREST
+ warp 5, 0, 4, VIRIDIAN_FOREST
+ warp 4, 7, 5, -1
+ warp 5, 7, 5, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_GIRL, 8, 4, STAY, LEFT, 1 ; person
+ object SPRITE_LITTLE_GIRL, 2, 4, WALK, 1, 2 ; person
+
+ ; warp-to
+ warp_to 4, 0, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH ; VIRIDIAN_FOREST
+ warp_to 5, 0, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH ; VIRIDIAN_FOREST
+ warp_to 4, 7, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH
+ warp_to 5, 7, VIRIDIAN_FOREST_SOUTH_GATE_WIDTH
diff --git a/data/maps/objects/ViridianGym.asm b/data/maps/objects/ViridianGym.asm
new file mode 100755
index 00000000..e3fd17bd
--- /dev/null
+++ b/data/maps/objects/ViridianGym.asm
@@ -0,0 +1,25 @@
+ViridianGym_Object:
+ db $3 ; border block
+
+ db 2 ; warps
+ warp 16, 17, 4, -1
+ warp 17, 17, 4, -1
+
+ db 0 ; signs
+
+ db 11 ; objects
+ object SPRITE_GIOVANNI, 2, 1, STAY, DOWN, 1, OPP_GIOVANNI, 3
+ object SPRITE_BLACK_HAIR_BOY_1, 12, 7, STAY, DOWN, 2, OPP_COOLTRAINER_M, 9
+ object SPRITE_HIKER, 11, 11, STAY, UP, 3, OPP_BLACKBELT, 6
+ object SPRITE_ROCKER, 10, 7, STAY, DOWN, 4, OPP_TAMER, 3
+ object SPRITE_HIKER, 3, 7, STAY, LEFT, 5, OPP_BLACKBELT, 7
+ object SPRITE_BLACK_HAIR_BOY_1, 13, 5, STAY, RIGHT, 6, OPP_COOLTRAINER_M, 10
+ object SPRITE_HIKER, 10, 1, STAY, DOWN, 7, OPP_BLACKBELT, 8
+ object SPRITE_ROCKER, 2, 16, STAY, RIGHT, 8, OPP_TAMER, 4
+ object SPRITE_BLACK_HAIR_BOY_1, 6, 5, STAY, DOWN, 9, OPP_COOLTRAINER_M, 1
+ object SPRITE_GYM_HELPER, 16, 15, STAY, DOWN, 10 ; person
+ object SPRITE_BALL, 16, 9, STAY, NONE, 11, REVIVE
+
+ ; warp-to
+ warp_to 16, 17, VIRIDIAN_GYM_WIDTH
+ warp_to 17, 17, VIRIDIAN_GYM_WIDTH
diff --git a/data/maps/objects/ViridianMart.asm b/data/maps/objects/ViridianMart.asm
new file mode 100755
index 00000000..b3e7fee5
--- /dev/null
+++ b/data/maps/objects/ViridianMart.asm
@@ -0,0 +1,17 @@
+ViridianMart_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 1, -1
+ warp 4, 7, 1, -1
+
+ db 0 ; signs
+
+ db 3 ; objects
+ object SPRITE_MART_GUY, 0, 5, STAY, RIGHT, 1 ; person
+ object SPRITE_BUG_CATCHER, 5, 5, WALK, 1, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 3, 3, STAY, NONE, 3 ; person
+
+ ; warp-to
+ warp_to 3, 7, VIRIDIAN_MART_WIDTH
+ warp_to 4, 7, VIRIDIAN_MART_WIDTH
diff --git a/data/maps/objects/ViridianNicknameHouse.asm b/data/maps/objects/ViridianNicknameHouse.asm
new file mode 100755
index 00000000..aaf20a91
--- /dev/null
+++ b/data/maps/objects/ViridianNicknameHouse.asm
@@ -0,0 +1,18 @@
+ViridianNicknameHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 3, -1
+ warp 3, 7, 3, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_BALDING_GUY, 5, 3, STAY, NONE, 1 ; person
+ object SPRITE_LITTLE_GIRL, 1, 4, WALK, 1, 2 ; person
+ object SPRITE_BIRD, 5, 5, WALK, 2, 3 ; person
+ object SPRITE_CLIPBOARD, 4, 0, STAY, NONE, 4 ; person
+
+ ; warp-to
+ warp_to 2, 7, VIRIDIAN_NICKNAME_HOUSE_WIDTH
+ warp_to 3, 7, VIRIDIAN_NICKNAME_HOUSE_WIDTH
diff --git a/data/maps/objects/ViridianPokecenter.asm b/data/maps/objects/ViridianPokecenter.asm
new file mode 100755
index 00000000..43b73e68
--- /dev/null
+++ b/data/maps/objects/ViridianPokecenter.asm
@@ -0,0 +1,18 @@
+ViridianPokecenter_Object:
+ db $0 ; border block
+
+ db 2 ; warps
+ warp 3, 7, 0, -1
+ warp 4, 7, 0, -1
+
+ db 0 ; signs
+
+ db 4 ; objects
+ object SPRITE_NURSE, 3, 1, STAY, DOWN, 1 ; person
+ object SPRITE_GENTLEMAN, 10, 5, WALK, 1, 2 ; person
+ object SPRITE_BLACK_HAIR_BOY_1, 4, 3, STAY, NONE, 3 ; person
+ object SPRITE_CABLE_CLUB_WOMAN, 11, 2, STAY, DOWN, 4 ; person
+
+ ; warp-to
+ warp_to 3, 7, VIRIDIAN_POKECENTER_WIDTH
+ warp_to 4, 7, VIRIDIAN_POKECENTER_WIDTH
diff --git a/data/maps/objects/ViridianSchoolHouse.asm b/data/maps/objects/ViridianSchoolHouse.asm
new file mode 100755
index 00000000..01f2465d
--- /dev/null
+++ b/data/maps/objects/ViridianSchoolHouse.asm
@@ -0,0 +1,16 @@
+ViridianSchoolHouse_Object:
+ db $a ; border block
+
+ db 2 ; warps
+ warp 2, 7, 2, -1
+ warp 3, 7, 2, -1
+
+ db 0 ; signs
+
+ db 2 ; objects
+ object SPRITE_BRUNETTE_GIRL, 3, 5, STAY, UP, 1 ; person
+ object SPRITE_LASS, 4, 1, STAY, DOWN, 2 ; person
+
+ ; warp-to
+ warp_to 2, 7, VIRIDIAN_SCHOOL_HOUSE_WIDTH
+ warp_to 3, 7, VIRIDIAN_SCHOOL_HOUSE_WIDTH
diff --git a/data/maps/objects/WardensHouse.asm b/data/maps/objects/WardensHouse.asm
new file mode 100755
index 00000000..d8445738
--- /dev/null
+++ b/data/maps/objects/WardensHouse.asm
@@ -0,0 +1,19 @@
+WardensHouse_Object:
+ db $17 ; border block
+
+ db 2 ; warps
+ warp 4, 7, 3, -1
+ warp 5, 7, 3, -1
+
+ db 2 ; signs
+ sign 4, 3, 4 ; FuchsiaHouse2Text4
+ sign 5, 3, 5 ; FuchsiaHouse2Text5
+
+ db 3 ; objects
+ object SPRITE_WARDEN, 2, 3, STAY, NONE, 1 ; person
+ object SPRITE_BALL, 8, 3, STAY, NONE, 2, RARE_CANDY
+ object SPRITE_BOULDER, 8, 4, STAY, BOULDER_MOVEMENT_BYTE_2, 3 ; person
+
+ ; warp-to
+ warp_to 4, 7, WARDENS_HOUSE_WIDTH
+ warp_to 5, 7, WARDENS_HOUSE_WIDTH
diff --git a/data/maps/rest_house_maps.asm b/data/maps/rest_house_maps.asm
new file mode 100644
index 00000000..2feb89d3
--- /dev/null
+++ b/data/maps/rest_house_maps.asm
@@ -0,0 +1,5 @@
+SafariZoneRestHouses:
+ db SAFARI_ZONE_WEST_REST_HOUSE
+ db SAFARI_ZONE_EAST_REST_HOUSE
+ db SAFARI_ZONE_NORTH_REST_HOUSE
+ db -1
diff --git a/data/maps/songs.asm b/data/maps/songs.asm
new file mode 100755
index 00000000..28e17223
--- /dev/null
+++ b/data/maps/songs.asm
@@ -0,0 +1,249 @@
+MapSongBanks::
+ db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; PALLET_TOWN
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_CITY
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_CITY
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_CITY
+ db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_TOWN
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_CITY
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CITY
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_CITY
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_ISLAND
+ db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_CITY
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; UNUSED_MAP_0B
+ db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_1
+ db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_2
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_3
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_4
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_5
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_6
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_7
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_8
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_9
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_10
+ db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_11
+ db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_12
+ db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_13
+ db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_14
+ db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_15
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_16
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_17
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_18
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_19
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_20
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_21
+ db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_22
+ db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; ROUTE_23
+ db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_24
+ db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_25
+ db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; REDS_HOUSE_1F
+ db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; REDS_HOUSE_2F
+ db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; BLUES_HOUSE
+ db MUSIC_OAKS_LAB, BANK(Music_OaksLab) ; OAKS_LAB
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VIRIDIAN_POKECENTER
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VIRIDIAN_MART
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_SCHOOL_HOUSE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_NICKNAME_HOUSE
+ db MUSIC_GYM, BANK(Music_Gym) ; VIRIDIAN_GYM
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE_ROUTE_2
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_FOREST_NORTH_GATE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_2_TRADE_HOUSE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_2_GATE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_FOREST_SOUTH_GATE
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; VIRIDIAN_FOREST
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; MUSEUM_1F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; MUSEUM_2F
+ db MUSIC_GYM, BANK(Music_Gym) ; PEWTER_GYM
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_NIDORAN_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PEWTER_MART
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_SPEECH_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PEWTER_POKECENTER
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_1F
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_B1F
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MT_MOON_B2F
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_TRASHED_HOUSE
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_TRADE_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_POKECENTER
+ db MUSIC_GYM, BANK(Music_Gym) ; CERULEAN_GYM
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; BIKE_SHOP
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CERULEAN_MART
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; MT_MOON_POKECENTER
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; CERULEAN_TRASHED_HOUSE_COPY
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_5_GATE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_5
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; DAYCARE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_6_GATE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_6
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; UNDERGROUND_PATH_ROUTE_6_COPY
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_7_GATE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_7
+ db MUSIC_CELADON, BANK(Music_Celadon) ; UNDERGROUND_PATH_ROUTE_7_COPY
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_8_GATE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; UNDERGROUND_PATH_ROUTE_8
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; ROCK_TUNNEL_POKECENTER
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; ROCK_TUNNEL_1F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; POWER_PLANT
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; ROUTE_11_GATE_1F
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE_ROUTE_11
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; ROUTE_11_GATE_2F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_12_GATE_1F
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; BILLS_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VERMILION_POKECENTER
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; POKEMON_FAN_CLUB
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VERMILION_MART
+ db MUSIC_GYM, BANK(Music_Gym) ; VERMILION_GYM
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_PIDGEY_HOUSE
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; VERMILION_DOCK
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_1F
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_2F
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_3F
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_B1F
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_BOW
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_KITCHEN
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_CAPTAINS_ROOM
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_1F_ROOMS
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_2F_ROOMS
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SS_ANNE_B1F_ROOMS
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; UNUSED_MAP_69
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; UNUSED_MAP_6A
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_6B
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_1F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; UNUSED_MAP_6D
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_6E
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_6F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_70
+ db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; LANCES_ROOM
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_72
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_73
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_74
+ db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; UNUSED_MAP_75
+ db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; HALL_OF_FAME
+ db MUSIC_ROUTES1, BANK(Music_Routes1) ; UNDERGROUND_PATH_NORTH_SOUTH
+ db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; CHAMPIONS_ROOM
+ db MUSIC_ROUTES1, BANK(Music_Routes1) ; UNDERGROUND_PATH_WEST_EAST
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_1F
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_2F
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_3F
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_4F
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_ROOF
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_ELEVATOR
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_1F
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_2F
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_3F
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_ROOF
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_MANSION_ROOF_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_POKECENTER
+ db MUSIC_GYM, BANK(Music_Gym) ; CELADON_GYM
+ db MUSIC_GAME_CORNER, BANK(Music_GameCorner) ; GAME_CORNER
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CELADON_MART_5F
+ db MUSIC_CELADON, BANK(Music_Celadon) ; GAME_CORNER_PRIZE_ROOM
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_DINER
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CHIEF_HOUSE
+ db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_HOTEL
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LAVENDER_POKECENTER
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_1F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_2F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_3F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_4F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_5F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_6F
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; POKEMON_TOWER_7F
+ db MUSIC_LAVENDER, BANK(Music_Lavender) ; MR_FUJIS_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LAVENDER_MART
+ db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_CUBONE_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FUCHSIA_MART
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_BILLS_GRANDPAS_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FUCHSIA_POKECENTER
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; WARDENS_HOUSE
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; SAFARI_ZONE_GATE
+ db MUSIC_GYM, BANK(Music_Gym) ; FUCHSIA_GYM
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_MEETING_ROOM
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B1F
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B2F
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B3F
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_B4F
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; VERMILION_OLD_ROD_HOUSE
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_GOOD_ROD_HOUSE
+ db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_1F
+ db MUSIC_GYM, BANK(Music_Gym) ; CINNABAR_GYM
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_TRADE_ROOM
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_METRONOME_ROOM
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_LAB_FOSSIL_ROOM
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CINNABAR_POKECENTER
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CINNABAR_MART
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_MART_COPY
+ db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU_LOBBY
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; COPYCATS_HOUSE_1F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; COPYCATS_HOUSE_2F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; FIGHTING_DOJO
+ db MUSIC_GYM, BANK(Music_Gym) ; SAFFRON_GYM
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_PIDGEY_HOUSE
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SAFFRON_MART
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_1F
+ db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SAFFRON_POKECENTER
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; MR_PSYCHICS_HOUSE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_15_GATE_1F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_15_GATE_2F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_16_GATE_1F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_16_GATE_2F
+ db MUSIC_CELADON, BANK(Music_Celadon) ; ROUTE_16_FLY_HOUSE
+ db MUSIC_CELADON, BANK(Music_Celadon) ; ROUTE_12_SUPER_ROD_HOUSE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_18_GATE_1F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_18_GATE_2F
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SEAFOAM_ISLANDS_1F
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; ROUTE_22_GATE
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_2F
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; ROUTE_12_GATE_2F
+ db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_TRADE_HOUSE
+ db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DIGLETTS_CAVE
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VICTORY_ROAD_3F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B1F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B2F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B3F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_B4F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; ROCKET_HIDEOUT_ELEVATOR
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CC
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CD
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UNUSED_MAP_CE
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_2F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_3F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_4F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_5F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_6F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_7F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_8F
+ db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_2F
+ db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_3F
+ db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; POKEMON_MANSION_B1F
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_EAST
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_NORTH
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_WEST
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_CENTER
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_CENTER_REST_HOUSE
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_SECRET_HOUSE
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_WEST_REST_HOUSE
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_EAST_REST_HOUSE
+ db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SAFARI_ZONE_NORTH_REST_HOUSE
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_2F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_B1F
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; CERULEAN_CAVE_1F
+ db MUSIC_CITIES2, BANK(Music_Cities2) ; NAME_RATERS_HOUSE
+ db MUSIC_CITIES1, BANK(Music_Cities1) ; CERULEAN_BADGE_HOUSE
+ db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; UNUSED_MAP_E7
+ db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; ROCK_TUNNEL_B1F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_9F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_10F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_11F
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SILPH_CO_ELEVATOR
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_ED
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_EE
+ db MUSIC_CELADON, BANK(Music_Celadon) ; TRADE_CENTER
+ db MUSIC_CELADON, BANK(Music_Celadon) ; COLOSSEUM
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F1
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F2
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F3
+ db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; UNUSED_MAP_F4
+ db MUSIC_GYM, BANK(Music_Gym) ; LORELEIS_ROOM
+ db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; BRUNOS_ROOM
+ db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; AGATHAS_ROOM
diff --git a/data/maps/special_warps.asm b/data/maps/special_warps.asm
new file mode 100755
index 00000000..6b536b67
--- /dev/null
+++ b/data/maps/special_warps.asm
@@ -0,0 +1,119 @@
+; Format: (size 2 bytes)
+; 00: target map ID
+; 01: which dungeon warp in the source map was used
+DungeonWarpList:
+ db SEAFOAM_ISLANDS_B1F,$01
+ db SEAFOAM_ISLANDS_B1F,$02
+ db SEAFOAM_ISLANDS_B2F,$01
+ db SEAFOAM_ISLANDS_B2F,$02
+ db SEAFOAM_ISLANDS_B3F,$01
+ db SEAFOAM_ISLANDS_B3F,$02
+ db SEAFOAM_ISLANDS_B4F,$01
+ db SEAFOAM_ISLANDS_B4F,$02
+ db VICTORY_ROAD_2F,$02
+ db POKEMON_MANSION_1F,$01
+ db POKEMON_MANSION_1F,$02
+ db POKEMON_MANSION_2F,$03
+ db $FF
+
+DungeonWarpData:
+ FLYWARP_DATA SEAFOAM_ISLANDS_B1F_WIDTH,7,18
+ FLYWARP_DATA SEAFOAM_ISLANDS_B1F_WIDTH,7,23
+ FLYWARP_DATA SEAFOAM_ISLANDS_B2F_WIDTH,7,19
+ FLYWARP_DATA SEAFOAM_ISLANDS_B2F_WIDTH,7,22
+ FLYWARP_DATA SEAFOAM_ISLANDS_B3F_WIDTH,7,18
+ FLYWARP_DATA SEAFOAM_ISLANDS_B3F_WIDTH,7,19
+ FLYWARP_DATA SEAFOAM_ISLANDS_B4F_WIDTH,14,4
+ FLYWARP_DATA SEAFOAM_ISLANDS_B4F_WIDTH,14,5
+ FLYWARP_DATA VICTORY_ROAD_2F_WIDTH,16,22
+ FLYWARP_DATA POKEMON_MANSION_1F_WIDTH,14,16
+ FLYWARP_DATA POKEMON_MANSION_1F_WIDTH,14,16
+ FLYWARP_DATA POKEMON_MANSION_2F_WIDTH,14,18
+
+;Format:
+; db Map_id
+; FLYWARP_DATA [Map Width][Y-pos][X-pos]
+; db Tileset_id
+FirstMapSpec:
+ db REDS_HOUSE_2F
+ FLYWARP_DATA REDS_HOUSE_2F_WIDTH,6,3
+ db REDS_HOUSE_2
+
+TradeCenterSpec1:
+ db TRADE_CENTER
+ FLYWARP_DATA TRADE_CENTER_WIDTH,4,3
+ db CLUB
+
+TradeCenterSpec2:
+ db TRADE_CENTER
+ FLYWARP_DATA TRADE_CENTER_WIDTH,4,6
+ db CLUB
+
+ColosseumSpec1:
+ db COLOSSEUM
+ FLYWARP_DATA COLOSSEUM_WIDTH,4,3
+ db CLUB
+
+ColosseumSpec2:
+ db COLOSSEUM
+ FLYWARP_DATA COLOSSEUM_WIDTH,4,6
+ db CLUB
+
+FlyWarpDataPtr:
+ db PALLET_TOWN, 0
+ dw PalletTownFlyWarp
+ db VIRIDIAN_CITY, 0
+ dw ViridianCityFlyWarp
+ db PEWTER_CITY, 0
+ dw PewterCityFlyWarp
+ db CERULEAN_CITY, 0
+ dw CeruleanCityFlyWarp
+ db LAVENDER_TOWN, 0
+ dw LavenderTownFlyWarp
+ db VERMILION_CITY, 0
+ dw VermilionCityFlyWarp
+ db CELADON_CITY, 0
+ dw CeladonCityFlyWarp
+ db FUCHSIA_CITY, 0
+ dw FuchsiaCityFlyWarp
+ db CINNABAR_ISLAND, 0
+ dw CinnabarIslandFlyWarp
+ db INDIGO_PLATEAU, 0
+ dw IndigoPlateauFlyWarp
+ db SAFFRON_CITY, 0
+ dw SaffronCityFlyWarp
+ db ROUTE_4, 0
+ dw Route4FlyWarp
+ db ROUTE_10, 0
+ dw Route10FlyWarp
+
+; Original Format:
+; [Event Displacement][Y-block][X-block][Y-sub_block][X-sub_block]
+; Macro Format:
+; FLYWARP_DATA [Map Width][Y-pos][X-pos]
+PalletTownFlyWarp:
+ FLYWARP_DATA PALLET_TOWN_WIDTH, 6, 5
+ViridianCityFlyWarp:
+ FLYWARP_DATA VIRIDIAN_CITY_WIDTH, 26, 23
+PewterCityFlyWarp:
+ FLYWARP_DATA PEWTER_CITY_WIDTH, 26, 13
+CeruleanCityFlyWarp:
+ FLYWARP_DATA CERULEAN_CITY_WIDTH, 18, 19
+LavenderTownFlyWarp:
+ FLYWARP_DATA LAVENDER_TOWN_WIDTH, 6, 3
+VermilionCityFlyWarp:
+ FLYWARP_DATA VERMILION_CITY_WIDTH, 4, 11
+CeladonCityFlyWarp:
+ FLYWARP_DATA CELADON_CITY_WIDTH, 10, 41
+FuchsiaCityFlyWarp:
+ FLYWARP_DATA FUCHSIA_CITY_WIDTH, 28, 19
+CinnabarIslandFlyWarp:
+ FLYWARP_DATA CINNABAR_ISLAND_WIDTH, 12, 11
+IndigoPlateauFlyWarp:
+ FLYWARP_DATA INDIGO_PLATEAU_WIDTH, 6, 9
+SaffronCityFlyWarp:
+ FLYWARP_DATA SAFFRON_CITY_WIDTH, 30, 9
+Route4FlyWarp:
+ FLYWARP_DATA ROUTE_4_WIDTH, 6, 11
+Route10FlyWarp:
+ FLYWARP_DATA ROUTE_10_WIDTH, 20, 11
diff --git a/data/maps/sprite_sets.asm b/data/maps/sprite_sets.asm
new file mode 100755
index 00000000..faba21b5
--- /dev/null
+++ b/data/maps/sprite_sets.asm
@@ -0,0 +1,190 @@
+MapSpriteSets:
+ db $01 ; PALLET_TOWN
+ db $01 ; VIRIDIAN_CITY
+ db $02 ; PEWTER_CITY
+ db $02 ; CERULEAN_CITY
+ db $03 ; LAVENDER_TOWN
+ db $04 ; VERMILION_CITY
+ db $05 ; CELADON_CITY
+ db $0a ; FUCHSIA_CITY
+ db $01 ; CINNABAR_ISLAND
+ db $06 ; INDIGO_PLATEAU
+ db $07 ; SAFFRON_CITY
+ db $01 ; unused map ID
+ db $01 ; ROUTE_1
+ db $f1 ; ROUTE_2
+ db $02 ; ROUTE_3
+ db $02 ; ROUTE_4
+ db $f9 ; ROUTE_5
+ db $fa ; ROUTE_6
+ db $fb ; ROUTE_7
+ db $fc ; ROUTE_8
+ db $02 ; ROUTE_9
+ db $f2 ; ROUTE_10
+ db $f3 ; ROUTE_11
+ db $f4 ; ROUTE_12
+ db $08 ; ROUTE_13
+ db $08 ; ROUTE_14
+ db $f5 ; ROUTE_15
+ db $f6 ; ROUTE_16
+ db $09 ; ROUTE_17
+ db $f7 ; ROUTE_18
+ db $0a ; ROUTE_19
+ db $f8 ; ROUTE_20
+ db $01 ; ROUTE_21
+ db $01 ; ROUTE_22
+ db $06 ; ROUTE_23
+ db $02 ; ROUTE_24
+ db $02 ; ROUTE_25
+
+; Format:
+; 00: determines whether the map is split East/West or North/South
+; $01 = East/West divide
+; $02 = North/South divide
+; 01: coordinate of dividing line
+; 02: sprite set ID if in the West or North side
+; 03: sprite set ID if in the East or South side
+SplitMapSpriteSets:
+ db $02,$25,$02,$01 ; $f1
+ db $02,$32,$02,$03 ; $f2
+ db $01,$39,$04,$08 ; $f3
+ db $02,$15,$03,$08 ; $f4
+ db $01,$08,$0A,$08 ; $f5
+ db $01,$18,$09,$05 ; $f6
+ db $01,$22,$09,$0A ; $f7
+ db $01,$35,$01,$0A ; $f8
+ db $02,$21,$02,$07 ; $f9
+ db $02,$02,$07,$04 ; $fa
+ db $01,$11,$05,$07 ; $fb
+ db $01,$03,$07,$03 ; $fc
+
+SpriteSets:
+; sprite set $01
+ db SPRITE_BLUE
+ db SPRITE_BUG_CATCHER
+ db SPRITE_GIRL
+ db SPRITE_FISHER2
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_GAMBLER
+ db SPRITE_SEEL
+ db SPRITE_OAK
+ db SPRITE_SWIMMER
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN
+
+; sprite set $02
+ db SPRITE_BUG_CATCHER
+ db SPRITE_ROCKET
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_HIKER
+ db SPRITE_SLOWBRO
+ db SPRITE_BLUE
+ db SPRITE_GUARD
+ db SPRITE_LASS
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $03
+ db SPRITE_LITTLE_GIRL
+ db SPRITE_GIRL
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_HIKER
+ db SPRITE_GAMBLER
+ db SPRITE_SLOWBRO
+ db SPRITE_LASS
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_GUARD
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $04
+ db SPRITE_FOULARD_WOMAN
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_BUG_CATCHER
+ db SPRITE_GAMBLER
+ db SPRITE_SLOWBRO
+ db SPRITE_GUARD
+ db SPRITE_SAILOR
+ db SPRITE_LASS
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $05
+ db SPRITE_LITTLE_GIRL
+ db SPRITE_YOUNG_BOY
+ db SPRITE_GIRL
+ db SPRITE_FISHER2
+ db SPRITE_FAT_BALD_GUY
+ db SPRITE_OLD_PERSON
+ db SPRITE_SLOWBRO
+ db SPRITE_GUARD
+ db SPRITE_ROCKET
+ db SPRITE_BALL
+ db SPRITE_SNORLAX
+
+; sprite set $06
+ db SPRITE_BUG_CATCHER
+ db SPRITE_GYM_HELPER
+ db SPRITE_SLOWBRO
+ db SPRITE_BLUE
+ db SPRITE_LASS
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_SWIMMER
+ db SPRITE_GUARD
+ db SPRITE_GAMBLER
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $07
+ db SPRITE_ROCKET
+ db SPRITE_OAK_AIDE
+ db SPRITE_LAPRAS_GIVER
+ db SPRITE_ERIKA
+ db SPRITE_GENTLEMAN
+ db SPRITE_BIRD
+ db SPRITE_ROCKER
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_SLOWBRO
+ db SPRITE_BALL
+ db SPRITE_LYING_OLD_MAN_UNUSED_2
+
+; sprite set $08
+ db SPRITE_BIKER
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_FAT_BALD_GUY
+ db SPRITE_LASS
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_FOULARD_WOMAN
+ db SPRITE_FISHER2
+ db SPRITE_ROCKER
+ db SPRITE_SLOWBRO
+ db SPRITE_BALL
+ db SPRITE_SNORLAX
+
+; sprite set $09
+ db SPRITE_BIKER
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_LAPRAS_GIVER
+ db SPRITE_FISHER2
+ db SPRITE_ROCKER
+ db SPRITE_HIKER
+ db SPRITE_GAMBLER
+ db SPRITE_FAT_BALD_GUY
+ db SPRITE_BLACK_HAIR_BOY_2
+ db SPRITE_BALL
+ db SPRITE_SNORLAX
+
+; sprite set $0a
+ db SPRITE_BIRD
+ db SPRITE_BLACK_HAIR_BOY_1
+ db SPRITE_CLEFAIRY
+ db SPRITE_FISHER2
+ db SPRITE_GAMBLER
+ db SPRITE_SLOWBRO
+ db SPRITE_SEEL
+ db SPRITE_SWIMMER
+ db SPRITE_BUG_CATCHER
+ db SPRITE_BALL
+ db SPRITE_OMANYTE
diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm
new file mode 100755
index 00000000..63ebd51b
--- /dev/null
+++ b/data/maps/town_map_entries.asm
@@ -0,0 +1,101 @@
+ExternalMapEntries:
+ EMAP $2,$B,PalletTownName
+ EMAP $2,$8,ViridianCityName
+ EMAP $2,$3,PewterCityName
+ EMAP $A,$2,CeruleanCityName
+ EMAP $E,$5,LavenderTownName
+ EMAP $A,$9,VermilionCityName
+ EMAP $7,$5,CeladonCityName
+ EMAP $8,$D,FuchsiaCityName
+ EMAP $2,$F,CinnabarIslandName
+ EMAP $0,$2,IndigoPlateauName
+ EMAP $A,$5,SaffronCityName
+ EMAP $0,$0,PalletTownName ; unused
+ EMAP $2,$A,Route1Name
+ EMAP $2,$6,Route2Name
+ EMAP $4,$3,Route3Name
+ EMAP $8,$2,Route4Name
+ EMAP $A,$3,Route5Name
+ EMAP $A,$8,Route6Name
+ EMAP $8,$5,Route7Name
+ EMAP $D,$5,Route8Name
+ EMAP $D,$2,Route9Name
+ EMAP $E,$4,Route10Name
+ EMAP $C,$9,Route11Name
+ EMAP $E,$9,Route12Name
+ EMAP $D,$B,Route13Name
+ EMAP $B,$C,Route14Name
+ EMAP $A,$D,Route15Name
+ EMAP $5,$5,Route16Name
+ EMAP $4,$8,Route17Name
+ EMAP $6,$D,Route18Name
+ EMAP $6,$F,Route19Name
+ EMAP $4,$F,Route20Name
+ EMAP $2,$D,Route21Name
+ EMAP $0,$8,Route22Name
+ EMAP $0,$6,Route23Name
+ EMAP $A,$1,Route24Name
+ EMAP $B,$0,Route25Name
+
+InternalMapEntries:
+ IMAP OAKS_LAB, $2,$B,PalletTownName
+ IMAP VIRIDIAN_GYM, $2,$8,ViridianCityName
+ IMAP VIRIDIAN_FOREST_SOUTH_GATE, $2,$6,Route2Name
+ IMAP VIRIDIAN_FOREST, $2,$4,ViridianForestName
+ IMAP PEWTER_POKECENTER, $2,$3,PewterCityName
+ IMAP MT_MOON_B2F, $6,$2,MountMoonName
+ IMAP CERULEAN_MART, $A,$2,CeruleanCityName
+ IMAP MT_MOON_POKECENTER, $5,$2,Route4Name
+ IMAP CERULEAN_TRASHED_HOUSE_COPY, $A,$2,CeruleanCityName
+ IMAP DAYCARE, $A,$4,Route5Name
+ IMAP UNDERGROUND_PATH_ROUTE_6_COPY, $A,$6,Route6Name
+ IMAP UNDERGROUND_PATH_ROUTE_7_COPY, $9,$5,Route7Name
+ IMAP UNDERGROUND_PATH_ROUTE_8, $B,$5,Route8Name
+ IMAP ROCK_TUNNEL_1F, $E,$3,RockTunnelName
+ IMAP POWER_PLANT, $F,$4,PowerPlantName
+ IMAP ROUTE_11_GATE_2F, $D,$9,Route11Name
+ IMAP ROUTE_12_GATE_1F, $E,$7,Route12Name
+ IMAP BILLS_HOUSE, $C,$0,SeaCottageName
+ IMAP VERMILION_DOCK, $A,$9,VermilionCityName
+ IMAP SS_ANNE_B1F_ROOMS, $9,$A,SSAnneName
+ IMAP VICTORY_ROAD_1F, $0,$4,VictoryRoadName
+ IMAP HALL_OF_FAME, $0,$2,PokemonLeagueName
+ IMAP UNDERGROUND_PATH_NORTH_SOUTH, $A,$5,UndergroundPathName
+ IMAP CHAMPIONS_ROOM, $0,$2,PokemonLeagueName
+ IMAP UNDERGROUND_PATH_WEST_EAST, $A,$5,UndergroundPathName
+ IMAP CELADON_HOTEL, $7,$5,CeladonCityName
+ IMAP LAVENDER_POKECENTER, $E,$5,LavenderTownName
+ IMAP POKEMON_TOWER_7F, $F,$5,PokemonTowerName
+ IMAP LAVENDER_CUBONE_HOUSE, $E,$5,LavenderTownName
+ IMAP WARDENS_HOUSE, $8,$D,FuchsiaCityName
+ IMAP SAFARI_ZONE_GATE, $8,$C,SafariZoneName
+ IMAP FUCHSIA_MEETING_ROOM, $8,$D,FuchsiaCityName
+ IMAP SEAFOAM_ISLANDS_B4F, $5,$F,SeafoamIslandsName
+ IMAP VERMILION_OLD_ROD_HOUSE, $A,$9,VermilionCityName
+ IMAP FUCHSIA_GOOD_ROD_HOUSE, $8,$D,FuchsiaCityName
+ IMAP POKEMON_MANSION_1F, $2,$F,PokemonMansionName
+ IMAP CINNABAR_MART_COPY, $2,$F,CinnabarIslandName
+ IMAP INDIGO_PLATEAU_LOBBY, $0,$2,IndigoPlateauName
+ IMAP MR_PSYCHICS_HOUSE, $A,$5,SaffronCityName
+ IMAP ROUTE_15_GATE_2F, $9,$D,Route15Name
+ IMAP ROUTE_16_FLY_HOUSE, $4,$5,Route16Name
+ IMAP ROUTE_12_SUPER_ROD_HOUSE, $E,$A,Route12Name
+ IMAP ROUTE_18_GATE_2F, $7,$D,Route18Name
+ IMAP SEAFOAM_ISLANDS_1F, $5,$F,SeafoamIslandsName
+ IMAP ROUTE_22_GATE, $0,$7,Route22Name
+ IMAP VICTORY_ROAD_2F, $0,$4,VictoryRoadName
+ IMAP ROUTE_12_GATE_2F, $E,$7,Route12Name
+ IMAP VERMILION_TRADE_HOUSE, $A,$9,VermilionCityName
+ IMAP DIGLETTS_CAVE, $3,$4,DiglettsCaveName
+ IMAP VICTORY_ROAD_3F, $0,$4,VictoryRoadName
+ IMAP UNUSED_MAP_CE, $7,$5,RocketHQName
+ IMAP SILPH_CO_8F, $A,$5,SilphCoName
+ IMAP POKEMON_MANSION_B1F, $2,$F,PokemonMansionName
+ IMAP SAFARI_ZONE_NORTH_REST_HOUSE, $8,$C,SafariZoneName
+ IMAP CERULEAN_CAVE_1F, $9,$1,CeruleanCaveName
+ IMAP NAME_RATERS_HOUSE, $E,$5,LavenderTownName
+ IMAP CERULEAN_BADGE_HOUSE, $A,$2,CeruleanCityName
+ IMAP ROCK_TUNNEL_B1F, $E,$3,RockTunnelName
+ IMAP SILPH_CO_ELEVATOR, $A,$5,SilphCoName
+ IMAP AGATHAS_ROOM, $0,$2,PokemonLeagueName
+ db $FF
diff --git a/data/maps/town_map_order.asm b/data/maps/town_map_order.asm
new file mode 100755
index 00000000..a082c376
--- /dev/null
+++ b/data/maps/town_map_order.asm
@@ -0,0 +1,49 @@
+TownMapOrder:
+ db PALLET_TOWN
+ db ROUTE_1
+ db VIRIDIAN_CITY
+ db ROUTE_2
+ db VIRIDIAN_FOREST
+ db DIGLETTS_CAVE
+ db PEWTER_CITY
+ db ROUTE_3
+ db MT_MOON_1F
+ db ROUTE_4
+ db CERULEAN_CITY
+ db ROUTE_24
+ db ROUTE_25
+ db BILLS_HOUSE
+ db ROUTE_5
+ db ROUTE_6
+ db VERMILION_CITY
+ db SS_ANNE_1F
+ db ROUTE_9
+ db ROCK_TUNNEL_POKECENTER
+ db ROUTE_10
+ db LAVENDER_TOWN
+ db POKEMON_TOWER_2F
+ db ROUTE_8
+ db ROUTE_7
+ db CELADON_CITY
+ db SAFFRON_CITY
+ db ROUTE_11
+ db ROUTE_12
+ db ROUTE_13
+ db ROUTE_14
+ db ROUTE_15
+ db ROUTE_16
+ db ROUTE_17
+ db ROUTE_18
+ db FUCHSIA_CITY
+ db SAFARI_ZONE_EAST
+ db ROUTE_19
+ db SEAFOAM_ISLANDS_B1F
+ db ROUTE_20
+ db CINNABAR_ISLAND
+ db ROUTE_21
+ db ROUTE_22
+ db ROUTE_23
+ db VICTORY_ROAD_3F
+ db INDIGO_PLATEAU
+ db POWER_PLANT
+TownMapOrderEnd: