shithub: pokered

Download patch

ref: b8aa9ec80e43257a9e3a487b46a33f99c999a940
parent: c84667c4df36918071bb7487c456d7adafb921ca
parent: 819b6789099947e83b7e3f0b0e2f6d39cf901807
author: Daniel Harding <33dannye@gmail.com>
date: Mon Feb 5 05:57:14 EST 2018

Merge pull request #174 from Rangi42/master

Add warp, sign, and warp_to macros for data/mapObjects definitions; use base 10 numbers

--- a/data/mapHeaders/agatha.asm
+++ b/data/mapHeaders/agatha.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db AGATHAS_ROOM_HEIGHT, AGATHAS_ROOM_WIDTH ; dimensions (y, x)
 	dw AgathaBlocks, AgathaTextPointers, AgathaScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw AgathaObject ; objects
--- a/data/mapHeaders/bikeshop.asm
+++ b/data/mapHeaders/bikeshop.asm
@@ -2,5 +2,5 @@
 	db CLUB ; tileset
 	db BIKE_SHOP_HEIGHT, BIKE_SHOP_WIDTH ; dimensions (y, x)
 	dw BikeShopBlocks, BikeShopTextPointers, BikeShopScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw BikeShopObject ; objects
--- a/data/mapHeaders/billshouse.asm
+++ b/data/mapHeaders/billshouse.asm
@@ -2,5 +2,5 @@
 	db INTERIOR ; tileset
 	db BILLS_HOUSE_HEIGHT, BILLS_HOUSE_WIDTH ; dimensions (y, x)
 	dw BillsHouseBlocks, BillsHouseTextPointers, BillsHouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw BillsHouseObject ; objects
--- a/data/mapHeaders/bruno.asm
+++ b/data/mapHeaders/bruno.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db BRUNOS_ROOM_HEIGHT, BRUNOS_ROOM_WIDTH ; dimensions (y, x)
 	dw BrunoBlocks, BrunoTextPointers, BrunoScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw BrunoObject ; objects
--- a/data/mapHeaders/celadondiner.asm
+++ b/data/mapHeaders/celadondiner.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_DINER_HEIGHT, CELADON_DINER_WIDTH ; dimensions (y, x)
 	dw CeladonDinerBlocks, CeladonDinerTextPointers, CeladonDinerScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonDinerObject ; objects
--- a/data/mapHeaders/celadongamecorner.asm
+++ b/data/mapHeaders/celadongamecorner.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db GAME_CORNER_HEIGHT, GAME_CORNER_WIDTH ; dimensions (y, x)
 	dw CeladonGameCornerBlocks, CeladonGameCornerTextPointers, CeladonGameCornerScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonGameCornerObject ; objects
--- a/data/mapHeaders/celadongym.asm
+++ b/data/mapHeaders/celadongym.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db CELADON_GYM_HEIGHT, CELADON_GYM_WIDTH ; dimensions (y, x)
 	dw CeladonGymBlocks, CeladonGymTextPointers, CeladonGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonGymObject ; objects
--- a/data/mapHeaders/celadonhotel.asm
+++ b/data/mapHeaders/celadonhotel.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db CELADON_HOTEL_HEIGHT, CELADON_HOTEL_WIDTH ; dimensions (y, x)
 	dw CeladonHotelBlocks, CeladonHotelTextPointers, CeladonHotelScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonHotelObject ; objects
--- a/data/mapHeaders/celadonhouse.asm
+++ b/data/mapHeaders/celadonhouse.asm
@@ -2,5 +2,5 @@
 	db MANSION ; tileset
 	db CELADON_HOUSE_HEIGHT, CELADON_HOUSE_WIDTH ; dimensions (y, x)
 	dw CeladonHouseBlocks, CeladonHouseTextPointers, CeladonHouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonHouseObject ; objects
--- a/data/mapHeaders/celadonmansion1.asm
+++ b/data/mapHeaders/celadonmansion1.asm
@@ -2,5 +2,5 @@
 	db MANSION ; tileset
 	db CELADON_MANSION_1_HEIGHT, CELADON_MANSION_1_WIDTH ; dimensions (y, x)
 	dw CeladonMansion1Blocks, CeladonMansion1TextPointers, CeladonMansion1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMansion1Object ; objects
--- a/data/mapHeaders/celadonmansion2.asm
+++ b/data/mapHeaders/celadonmansion2.asm
@@ -2,5 +2,5 @@
 	db MANSION ; tileset
 	db CELADON_MANSION_2_HEIGHT, CELADON_MANSION_2_WIDTH ; dimensions (y, x)
 	dw CeladonMansion2Blocks, CeladonMansion2TextPointers, CeladonMansion2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMansion2Object ; objects
--- a/data/mapHeaders/celadonmansion3.asm
+++ b/data/mapHeaders/celadonmansion3.asm
@@ -2,5 +2,5 @@
 	db MANSION ; tileset
 	db CELADON_MANSION_3_HEIGHT, CELADON_MANSION_3_WIDTH ; dimensions (y, x)
 	dw CeladonMansion3Blocks, CeladonMansion3TextPointers, CeladonMansion3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMansion3Object ; objects
--- a/data/mapHeaders/celadonmansion4.asm
+++ b/data/mapHeaders/celadonmansion4.asm
@@ -2,5 +2,5 @@
 	db MANSION ; tileset
 	db CELADON_MANSION_4_HEIGHT, CELADON_MANSION_4_WIDTH ; dimensions (y, x)
 	dw CeladonMansion4Blocks, CeladonMansion4TextPointers, CeladonMansion4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMansion4Object ; objects
--- a/data/mapHeaders/celadonmansion5.asm
+++ b/data/mapHeaders/celadonmansion5.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db CELADON_MANSION_5_HEIGHT, CELADON_MANSION_5_WIDTH ; dimensions (y, x)
 	dw CeladonMansion5Blocks, CeladonMansion5TextPointers, CeladonMansion5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMansion5Object ; objects
--- a/data/mapHeaders/celadonmart1.asm
+++ b/data/mapHeaders/celadonmart1.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_1_HEIGHT, CELADON_MART_1_WIDTH ; dimensions (y, x)
 	dw CeladonMart1Blocks, CeladonMart1TextPointers, CeladonMart1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMart1Object ; objects
--- a/data/mapHeaders/celadonmart2.asm
+++ b/data/mapHeaders/celadonmart2.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_2_HEIGHT, CELADON_MART_2_WIDTH ; dimensions (y, x)
 	dw CeladonMart2Blocks, CeladonMart2TextPointers, CeladonMart2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMart2Object ; objects
--- a/data/mapHeaders/celadonmart3.asm
+++ b/data/mapHeaders/celadonmart3.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_3_HEIGHT, CELADON_MART_3_WIDTH ; dimensions (y, x)
 	dw CeladonMart3Blocks, CeladonMart3TextPointers, CeladonMart3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMart3Object ; objects
--- a/data/mapHeaders/celadonmart4.asm
+++ b/data/mapHeaders/celadonmart4.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_4_HEIGHT, CELADON_MART_4_WIDTH ; dimensions (y, x)
 	dw CeladonMart4Blocks, CeladonMart4TextPointers, CeladonMart4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMart4Object ; objects
--- a/data/mapHeaders/celadonmart5.asm
+++ b/data/mapHeaders/celadonmart5.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_5_HEIGHT, CELADON_MART_5_WIDTH ; dimensions (y, x)
 	dw CeladonMart5Blocks, CeladonMart5TextPointers, CeladonMart5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMart5Object ; objects
--- a/data/mapHeaders/celadonmartelevator.asm
+++ b/data/mapHeaders/celadonmartelevator.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_ELEVATOR_HEIGHT, CELADON_MART_ELEVATOR_WIDTH ; dimensions (y, x)
 	dw CeladonMartElevatorBlocks, CeladonMartElevatorTextPointers, CeladonMartElevatorScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMartElevatorObject ; objects
--- a/data/mapHeaders/celadonmartroof.asm
+++ b/data/mapHeaders/celadonmartroof.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_MART_ROOF_HEIGHT, CELADON_MART_ROOF_WIDTH ; dimensions (y, x)
 	dw CeladonMartRoofBlocks, CeladonMartRoofTextPointers, CeladonMartRoofScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonMartRoofObject ; objects
--- a/data/mapHeaders/celadonpokecenter.asm
+++ b/data/mapHeaders/celadonpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db CELADON_POKECENTER_HEIGHT, CELADON_POKECENTER_WIDTH ; dimensions (y, x)
 	dw CeladonPokecenterBlocks, CeladonPokecenterTextPointers, CeladonPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonPokecenterObject ; objects
--- a/data/mapHeaders/celadonprizeroom.asm
+++ b/data/mapHeaders/celadonprizeroom.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db CELADON_PRIZE_ROOM_HEIGHT, CELADON_PRIZE_ROOM_WIDTH ; dimensions (y, x)
 	dw CeladonPrizeRoomBlocks, CeladonPrizeRoomTextPointers, CeladonPrizeRoomScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeladonPrizeRoomObject ; objects
--- a/data/mapHeaders/ceruleangym.asm
+++ b/data/mapHeaders/ceruleangym.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db CERULEAN_GYM_HEIGHT, CERULEAN_GYM_WIDTH ; dimensions (y, x)
 	dw CeruleanGymBlocks, CeruleanGymTextPointers, CeruleanGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeruleanGymObject ; objects
--- a/data/mapHeaders/ceruleanhouse1.asm
+++ b/data/mapHeaders/ceruleanhouse1.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db CERULEAN_HOUSE_1_HEIGHT, CERULEAN_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw CeruleanHouse1Blocks, CeruleanHouse1TextPointers, CeruleanHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeruleanHouse1Object ; objects
--- a/data/mapHeaders/ceruleanhouse2.asm
+++ b/data/mapHeaders/ceruleanhouse2.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db CERULEAN_HOUSE_2_HEIGHT, CERULEAN_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw CeruleanHouse2Blocks, CeruleanHouse2TextPointers, CeruleanHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeruleanHouse2Object ; objects
--- a/data/mapHeaders/ceruleanhousetrashed.asm
+++ b/data/mapHeaders/ceruleanhousetrashed.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db TRASHED_HOUSE_HEIGHT, TRASHED_HOUSE_WIDTH ; dimensions (y, x)
 	dw CeruleanHouseTrashedBlocks, CeruleanHouseTrashedTextPointers, CeruleanHouseTrashedScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeruleanHouseTrashedObject ; objects
--- a/data/mapHeaders/ceruleanmart.asm
+++ b/data/mapHeaders/ceruleanmart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db CERULEAN_MART_HEIGHT, CERULEAN_MART_WIDTH ; dimensions (y, x)
 	dw CeruleanMartBlocks, CeruleanMartTextPointers, CeruleanMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeruleanMartObject ; objects
--- a/data/mapHeaders/ceruleanpokecenter.asm
+++ b/data/mapHeaders/ceruleanpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db CERULEAN_POKECENTER_HEIGHT, CERULEAN_POKECENTER_WIDTH ; dimensions (y, x)
 	dw CeruleanPokecenterBlocks, CeruleanPokecenterTextPointers, CeruleanPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CeruleanPokecenterObject ; objects
--- a/data/mapHeaders/cinnabargym.asm
+++ b/data/mapHeaders/cinnabargym.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db CINNABAR_GYM_HEIGHT, CINNABAR_GYM_WIDTH ; dimensions (y, x)
 	dw CinnabarGymBlocks, CinnabarGymTextPointers, CinnabarGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CinnabarGymObject ; objects
--- a/data/mapHeaders/cinnabarmart.asm
+++ b/data/mapHeaders/cinnabarmart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db CINNABAR_MART_HEIGHT, CINNABAR_MART_WIDTH ; dimensions (y, x)
 	dw CinnabarMartBlocks, CinnabarMartTextPointers, CinnabarMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CinnabarMartObject ; objects
--- a/data/mapHeaders/cinnabarpokecenter.asm
+++ b/data/mapHeaders/cinnabarpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db CINNABAR_POKECENTER_HEIGHT, CINNABAR_POKECENTER_WIDTH ; dimensions (y, x)
 	dw CinnabarPokecenterBlocks, CinnabarPokecenterTextPointers, CinnabarPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CinnabarPokecenterObject ; objects
--- a/data/mapHeaders/colosseum.asm
+++ b/data/mapHeaders/colosseum.asm
@@ -2,5 +2,5 @@
 	db CLUB ; tileset
 	db COLOSSEUM_HEIGHT, COLOSSEUM_WIDTH ; dimensions (y, x)
 	dw ColosseumBlocks, ColosseumTextPointers, ColosseumScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ColosseumObject ; objects
--- a/data/mapHeaders/copycatshouse1f.asm
+++ b/data/mapHeaders/copycatshouse1f.asm
@@ -2,5 +2,5 @@
 	db REDS_HOUSE_1 ; tileset
 	db COPYCATS_HOUSE_1F_HEIGHT, COPYCATS_HOUSE_1F_WIDTH ; dimensions (y, x)
 	dw CopycatsHouse1FBlocks, CopycatsHouse1FTextPointers, CopycatsHouse1FScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CopycatsHouse1FObject ; objects
--- a/data/mapHeaders/copycatshouse2f.asm
+++ b/data/mapHeaders/copycatshouse2f.asm
@@ -2,5 +2,5 @@
 	db REDS_HOUSE_2 ; tileset
 	db COPYCATS_HOUSE_2F_HEIGHT, COPYCATS_HOUSE_2F_WIDTH ; dimensions (y, x)
 	dw CopycatsHouse2FBlocks, CopycatsHouse2FTextPointers, CopycatsHouse2FScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw CopycatsHouse2FObject ; objects
--- a/data/mapHeaders/daycarem.asm
+++ b/data/mapHeaders/daycarem.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db DAYCAREM_HEIGHT, DAYCAREM_WIDTH ; dimensions (y, x)
 	dw DayCareMBlocks, DayCareMTextPointers, DayCareMScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw DayCareMObject ; objects
--- a/data/mapHeaders/diglettscave.asm
+++ b/data/mapHeaders/diglettscave.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db DIGLETTS_CAVE_HEIGHT, DIGLETTS_CAVE_WIDTH ; dimensions (y, x)
 	dw DiglettsCaveBlocks, DiglettsCaveTextPointers, DiglettsCaveScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw DiglettsCaveObject ; objects
--- a/data/mapHeaders/diglettscaveroute11.asm
+++ b/data/mapHeaders/diglettscaveroute11.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db DIGLETTS_CAVE_ENTRANCE_HEIGHT, DIGLETTS_CAVE_ENTRANCE_WIDTH ; dimensions (y, x)
 	dw DiglettsCaveEntranceRoute11Blocks, DiglettsCaveEntranceRoute11TextPointers, DiglettsCaveEntranceRoute11Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw DiglettsCaveEntranceRoute11Object ; objects
--- a/data/mapHeaders/diglettscaveroute2.asm
+++ b/data/mapHeaders/diglettscaveroute2.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db DIGLETTS_CAVE_EXIT_HEIGHT, DIGLETTS_CAVE_EXIT_WIDTH ; dimensions (y, x)
 	dw DiglettsCaveRoute2Blocks, DiglettsCaveRoute2TextPointers, DiglettsCaveRoute2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw DiglettsCaveRoute2Object ; objects
--- a/data/mapHeaders/fanclub.asm
+++ b/data/mapHeaders/fanclub.asm
@@ -2,5 +2,5 @@
 	db INTERIOR ; tileset
 	db POKEMON_FAN_CLUB_HEIGHT, POKEMON_FAN_CLUB_WIDTH ; dimensions (y, x)
 	dw FanClubBlocks, FanClubTextPointers, FanClubScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FanClubObject ; objects
--- a/data/mapHeaders/fightingdojo.asm
+++ b/data/mapHeaders/fightingdojo.asm
@@ -2,5 +2,5 @@
 	db DOJO ; tileset
 	db FIGHTING_DOJO_HEIGHT, FIGHTING_DOJO_WIDTH ; dimensions (y, x)
 	dw FightingDojoBlocks, FightingDojoTextPointers, FightingDojoScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FightingDojoObject ; objects
--- a/data/mapHeaders/fuchsiagym.asm
+++ b/data/mapHeaders/fuchsiagym.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db FUCHSIA_GYM_HEIGHT, FUCHSIA_GYM_WIDTH ; dimensions (y, x)
 	dw FuchsiaGymBlocks, FuchsiaGymTextPointers, FuchsiaGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaGymObject ; objects
--- a/data/mapHeaders/fuchsiahouse1.asm
+++ b/data/mapHeaders/fuchsiahouse1.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db FUCHSIA_HOUSE_1_HEIGHT, FUCHSIA_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw FuchsiaHouse1Blocks, FuchsiaHouse1TextPointers, FuchsiaHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaHouse1Object ; objects
--- a/data/mapHeaders/fuchsiahouse2.asm
+++ b/data/mapHeaders/fuchsiahouse2.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db FUCHSIA_HOUSE_2_HEIGHT, FUCHSIA_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw FuchsiaHouse2Blocks, FuchsiaHouse2TextPointers, FuchsiaHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaHouse2Object ; objects
--- a/data/mapHeaders/fuchsiahouse3.asm
+++ b/data/mapHeaders/fuchsiahouse3.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db FUCHSIA_HOUSE_3_HEIGHT, FUCHSIA_HOUSE_3_WIDTH ; dimensions (y, x)
 	dw FuchsiaHouse3Blocks, FuchsiaHouse3TextPointers, FuchsiaHouse3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaHouse3Object ; objects
--- a/data/mapHeaders/fuchsiamart.asm
+++ b/data/mapHeaders/fuchsiamart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db FUCHSIA_MART_HEIGHT, FUCHSIA_MART_WIDTH ; dimensions (y, x)
 	dw FuchsiaMartBlocks, FuchsiaMartTextPointers, FuchsiaMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaMartObject ; objects
--- a/data/mapHeaders/fuchsiameetingroom.asm
+++ b/data/mapHeaders/fuchsiameetingroom.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db FUCHSIA_MEETING_ROOM_HEIGHT, FUCHSIA_MEETING_ROOM_WIDTH ; dimensions (y, x)
 	dw FuchsiaMeetingRoomBlocks, FuchsiaMeetingRoomTextPointers, FuchsiaMeetingRoomScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaMeetingRoomObject ; objects
--- a/data/mapHeaders/fuchsiapokecenter.asm
+++ b/data/mapHeaders/fuchsiapokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db FUCHSIA_POKECENTER_HEIGHT, FUCHSIA_POKECENTER_WIDTH ; dimensions (y, x)
 	dw FuchsiaPokecenterBlocks, FuchsiaPokecenterTextPointers, FuchsiaPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw FuchsiaPokecenterObject ; objects
--- a/data/mapHeaders/halloffameroom.asm
+++ b/data/mapHeaders/halloffameroom.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db HALL_OF_FAME_HEIGHT, HALL_OF_FAME_WIDTH ; dimensions (y, x)
 	dw HallofFameRoomBlocks, HallofFameRoomTextPointers, HallofFameRoomScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw HallofFameRoomObject ; objects
--- a/data/mapHeaders/indigoplateaulobby.asm
+++ b/data/mapHeaders/indigoplateaulobby.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db INDIGO_PLATEAU_LOBBY_HEIGHT, INDIGO_PLATEAU_LOBBY_WIDTH ; dimensions (y, x)
 	dw IndigoPlateauLobbyBlocks, IndigoPlateauLobbyTextPointers, IndigoPlateauLobbyScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw IndigoPlateauLobbyObject ; objects
--- a/data/mapHeaders/lab1.asm
+++ b/data/mapHeaders/lab1.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db CINNABAR_LAB_1_HEIGHT, CINNABAR_LAB_1_WIDTH ; dimensions (y, x)
 	dw Lab1Blocks, Lab1TextPointers, Lab1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Lab1Object ; objects
--- a/data/mapHeaders/lab2.asm
+++ b/data/mapHeaders/lab2.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db CINNABAR_LAB_2_HEIGHT, CINNABAR_LAB_2_WIDTH ; dimensions (y, x)
 	dw Lab2Blocks, Lab2TextPointers, Lab2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Lab2Object ; objects
--- a/data/mapHeaders/lab3.asm
+++ b/data/mapHeaders/lab3.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db CINNABAR_LAB_3_HEIGHT, CINNABAR_LAB_3_WIDTH ; dimensions (y, x)
 	dw Lab3Blocks, Lab3TextPointers, Lab3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Lab3Object ; objects
--- a/data/mapHeaders/lab4.asm
+++ b/data/mapHeaders/lab4.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db CINNABAR_LAB_4_HEIGHT, CINNABAR_LAB_4_WIDTH ; dimensions (y, x)
 	dw Lab4Blocks, Lab4TextPointers, Lab4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Lab4Object ; objects
--- a/data/mapHeaders/lance.asm
+++ b/data/mapHeaders/lance.asm
@@ -2,5 +2,5 @@
 	db DOJO ; tileset
 	db LANCES_ROOM_HEIGHT, LANCES_ROOM_WIDTH ; dimensions (y, x)
 	dw LanceBlocks, LanceTextPointers, LanceScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw LanceObject ; objects
--- a/data/mapHeaders/lavenderhouse1.asm
+++ b/data/mapHeaders/lavenderhouse1.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db LAVENDER_HOUSE_1_HEIGHT, LAVENDER_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw LavenderHouse1Blocks, LavenderHouse1TextPointers, LavenderHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw LavenderHouse1Object ; objects
--- a/data/mapHeaders/lavenderhouse2.asm
+++ b/data/mapHeaders/lavenderhouse2.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db LAVENDER_HOUSE_2_HEIGHT, LAVENDER_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw LavenderHouse2Blocks, LavenderHouse2TextPointers, LavenderHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw LavenderHouse2Object ; objects
--- a/data/mapHeaders/lavendermart.asm
+++ b/data/mapHeaders/lavendermart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db LAVENDER_MART_HEIGHT, LAVENDER_MART_WIDTH ; dimensions (y, x)
 	dw LavenderMartBlocks, LavenderMartTextPointers, LavenderMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw LavenderMartObject ; objects
--- a/data/mapHeaders/lavenderpokecenter.asm
+++ b/data/mapHeaders/lavenderpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db LAVENDER_POKECENTER_HEIGHT, LAVENDER_POKECENTER_WIDTH ; dimensions (y, x)
 	dw LavenderPokecenterBlocks, LavenderPokecenterTextPointers, LavenderPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw LavenderPokecenterObject ; objects
--- a/data/mapHeaders/lorelei.asm
+++ b/data/mapHeaders/lorelei.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db LORELEIS_ROOM_HEIGHT, LORELEIS_ROOM_WIDTH ; dimensions (y, x)
 	dw LoreleiBlocks, LoreleiTextPointers, LoreleiScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw LoreleiObject ; objects
--- a/data/mapHeaders/mansion1.asm
+++ b/data/mapHeaders/mansion1.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db MANSION_1_HEIGHT, MANSION_1_WIDTH ; dimensions (y, x)
 	dw Mansion1Blocks, Mansion1TextPointers, Mansion1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Mansion1Object ; objects
--- a/data/mapHeaders/mansion2.asm
+++ b/data/mapHeaders/mansion2.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db MANSION_2_HEIGHT, MANSION_2_WIDTH ; dimensions (y, x)
 	dw Mansion2Blocks, Mansion2TextPointers, Mansion2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Mansion2Object ; objects
--- a/data/mapHeaders/mansion3.asm
+++ b/data/mapHeaders/mansion3.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db MANSION_3_HEIGHT, MANSION_3_WIDTH ; dimensions (y, x)
 	dw Mansion3Blocks, Mansion3TextPointers, Mansion3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Mansion3Object ; objects
--- a/data/mapHeaders/mansion4.asm
+++ b/data/mapHeaders/mansion4.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db MANSION_4_HEIGHT, MANSION_4_WIDTH ; dimensions (y, x)
 	dw Mansion4Blocks, Mansion4TextPointers, Mansion4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Mansion4Object ; objects
--- a/data/mapHeaders/mtmoon1.asm
+++ b/data/mapHeaders/mtmoon1.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db MT_MOON_1_HEIGHT, MT_MOON_1_WIDTH ; dimensions (y, x)
 	dw MtMoon1Blocks, MtMoon1TextPointers, MtMoon1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw MtMoon1Object ; objects
--- a/data/mapHeaders/mtmoon2.asm
+++ b/data/mapHeaders/mtmoon2.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db MT_MOON_2_HEIGHT, MT_MOON_2_WIDTH ; dimensions (y, x)
 	dw MtMoon2Blocks, MtMoon2TextPointers, MtMoon2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw MtMoon2Object ; objects
--- a/data/mapHeaders/mtmoon3.asm
+++ b/data/mapHeaders/mtmoon3.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db MT_MOON_3_HEIGHT, MT_MOON_3_WIDTH ; dimensions (y, x)
 	dw MtMoon3Blocks, MtMoon3TextPointers, MtMoon3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw MtMoon3Object ; objects
--- a/data/mapHeaders/mtmoonpokecenter.asm
+++ b/data/mapHeaders/mtmoonpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db MT_MOON_POKECENTER_HEIGHT, MT_MOON_POKECENTER_WIDTH ; dimensions (y, x)
 	dw MtMoonPokecenterBlocks, MtMoonPokecenterTextPointers, MtMoonPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw MtMoonPokecenterObject ; objects
--- a/data/mapHeaders/museum1f.asm
+++ b/data/mapHeaders/museum1f.asm
@@ -2,5 +2,5 @@
 	db MUSEUM ; tileset
 	db MUSEUM_1F_HEIGHT, MUSEUM_1F_WIDTH ; dimensions (y, x)
 	dw Museum1FBlocks, Museum1FTextPointers, Museum1FScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Museum1FObject ; objects
--- a/data/mapHeaders/museum2f.asm
+++ b/data/mapHeaders/museum2f.asm
@@ -2,5 +2,5 @@
 	db MUSEUM ; tileset
 	db MUSEUM_2F_HEIGHT, MUSEUM_2F_WIDTH ; dimensions (y, x)
 	dw Museum2FBlocks, Museum2FTextPointers, Museum2FScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Museum2FObject ; objects
--- a/data/mapHeaders/namerater.asm
+++ b/data/mapHeaders/namerater.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db NAME_RATERS_HOUSE_HEIGHT, NAME_RATERS_HOUSE_WIDTH ; dimensions (y, x)
 	dw NameRaterBlocks, NameRaterTextPointers, NameRaterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw NameRaterObject ; objects
--- a/data/mapHeaders/oakslab.asm
+++ b/data/mapHeaders/oakslab.asm
@@ -2,5 +2,5 @@
 	db DOJO ; tileset
 	db OAKS_LAB_HEIGHT, OAKS_LAB_WIDTH ; dimensions (y, x)
 	dw OaksLabBlocks, OaksLabTextPointers, OaksLabScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw OaksLabObject ; objects
--- a/data/mapHeaders/pewtergym.asm
+++ b/data/mapHeaders/pewtergym.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db PEWTER_GYM_HEIGHT, PEWTER_GYM_WIDTH ; dimensions (y, x)
 	dw PewterGymBlocks, PewterGymTextPointers, PewterGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PewterGymObject ; objects
--- a/data/mapHeaders/pewterhouse1.asm
+++ b/data/mapHeaders/pewterhouse1.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db PEWTER_HOUSE_1_HEIGHT, PEWTER_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw PewterHouse1Blocks, PewterHouse1TextPointers, PewterHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PewterHouse1Object ; objects
--- a/data/mapHeaders/pewterhouse2.asm
+++ b/data/mapHeaders/pewterhouse2.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db PEWTER_HOUSE_2_HEIGHT, PEWTER_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw PewterHouse2Blocks, PewterHouse2TextPointers, PewterHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PewterHouse2Object ; objects
--- a/data/mapHeaders/pewtermart.asm
+++ b/data/mapHeaders/pewtermart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db PEWTER_MART_HEIGHT, PEWTER_MART_WIDTH ; dimensions (y, x)
 	dw PewterMartBlocks, PewterMartTextPointers, PewterMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PewterMartObject ; objects
--- a/data/mapHeaders/pewterpokecenter.asm
+++ b/data/mapHeaders/pewterpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db PEWTER_POKECENTER_HEIGHT, PEWTER_POKECENTER_WIDTH ; dimensions (y, x)
 	dw PewterPokecenterBlocks, PewterPokecenterTextPointers, PewterPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PewterPokecenterObject ; objects
--- a/data/mapHeaders/pokemontower1.asm
+++ b/data/mapHeaders/pokemontower1.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_1_HEIGHT, POKEMONTOWER_1_WIDTH ; dimensions (y, x)
 	dw PokemonTower1Blocks, PokemonTower1TextPointers, PokemonTower1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower1Object ; objects
--- a/data/mapHeaders/pokemontower2.asm
+++ b/data/mapHeaders/pokemontower2.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_2_HEIGHT, POKEMONTOWER_2_WIDTH ; dimensions (y, x)
 	dw PokemonTower2Blocks, PokemonTower2TextPointers, PokemonTower2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower2Object ; objects
--- a/data/mapHeaders/pokemontower3.asm
+++ b/data/mapHeaders/pokemontower3.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_3_HEIGHT, POKEMONTOWER_3_WIDTH ; dimensions (y, x)
 	dw PokemonTower3Blocks, PokemonTower3TextPointers, PokemonTower3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower3Object ; objects
--- a/data/mapHeaders/pokemontower4.asm
+++ b/data/mapHeaders/pokemontower4.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_4_HEIGHT, POKEMONTOWER_4_WIDTH ; dimensions (y, x)
 	dw PokemonTower4Blocks, PokemonTower4TextPointers, PokemonTower4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower4Object ; objects
--- a/data/mapHeaders/pokemontower5.asm
+++ b/data/mapHeaders/pokemontower5.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_5_HEIGHT, POKEMONTOWER_5_WIDTH ; dimensions (y, x)
 	dw PokemonTower5Blocks, PokemonTower5TextPointers, PokemonTower5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower5Object ; objects
--- a/data/mapHeaders/pokemontower6.asm
+++ b/data/mapHeaders/pokemontower6.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_6_HEIGHT, POKEMONTOWER_6_WIDTH ; dimensions (y, x)
 	dw PokemonTower6Blocks, PokemonTower6TextPointers, PokemonTower6Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower6Object ; objects
--- a/data/mapHeaders/pokemontower7.asm
+++ b/data/mapHeaders/pokemontower7.asm
@@ -2,5 +2,5 @@
 	db CEMETERY ; tileset
 	db POKEMONTOWER_7_HEIGHT, POKEMONTOWER_7_WIDTH ; dimensions (y, x)
 	dw PokemonTower7Blocks, PokemonTower7TextPointers, PokemonTower7Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PokemonTower7Object ; objects
--- a/data/mapHeaders/powerplant.asm
+++ b/data/mapHeaders/powerplant.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db POWER_PLANT_HEIGHT, POWER_PLANT_WIDTH ; dimensions (y, x)
 	dw PowerPlantBlocks, PowerPlantTextPointers, PowerPlantScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw PowerPlantObject ; objects
--- a/data/mapHeaders/rockethideout1.asm
+++ b/data/mapHeaders/rockethideout1.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db ROCKET_HIDEOUT_1_HEIGHT, ROCKET_HIDEOUT_1_WIDTH ; dimensions (y, x)
 	dw RocketHideout1Blocks, RocketHideout1TextPointers, RocketHideout1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RocketHideout1Object ; objects
--- a/data/mapHeaders/rockethideout2.asm
+++ b/data/mapHeaders/rockethideout2.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db ROCKET_HIDEOUT_2_HEIGHT, ROCKET_HIDEOUT_2_WIDTH ; dimensions (y, x)
 	dw RocketHideout2Blocks, RocketHideout2TextPointers, RocketHideout2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RocketHideout2Object ; objects
--- a/data/mapHeaders/rockethideout3.asm
+++ b/data/mapHeaders/rockethideout3.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db ROCKET_HIDEOUT_3_HEIGHT, ROCKET_HIDEOUT_3_WIDTH ; dimensions (y, x)
 	dw RocketHideout3Blocks, RocketHideout3TextPointers, RocketHideout3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RocketHideout3Object ; objects
--- a/data/mapHeaders/rockethideout4.asm
+++ b/data/mapHeaders/rockethideout4.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db ROCKET_HIDEOUT_4_HEIGHT, ROCKET_HIDEOUT_4_WIDTH ; dimensions (y, x)
 	dw RocketHideout4Blocks, RocketHideout4TextPointers, RocketHideout4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RocketHideout4Object ; objects
--- a/data/mapHeaders/rockethideoutelevator.asm
+++ b/data/mapHeaders/rockethideoutelevator.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db ROCKET_HIDEOUT_ELEVATOR_HEIGHT, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; dimensions (y, x)
 	dw RocketHideoutElevatorBlocks, RocketHideoutElevatorTextPointers, RocketHideoutElevatorScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RocketHideoutElevatorObject ; objects
--- a/data/mapHeaders/rocktunnel1.asm
+++ b/data/mapHeaders/rocktunnel1.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db ROCK_TUNNEL_1_HEIGHT, ROCK_TUNNEL_1_WIDTH ; dimensions (y, x)
 	dw RockTunnel1Blocks, RockTunnel1TextPointers, RockTunnel1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RockTunnel1Object ; objects
--- a/data/mapHeaders/rocktunnel2.asm
+++ b/data/mapHeaders/rocktunnel2.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db ROCK_TUNNEL_2_HEIGHT, ROCK_TUNNEL_2_WIDTH ; dimensions (y, x)
 	dw RockTunnel2Blocks, RockTunnel2TextPointers, RockTunnel2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RockTunnel2Object ; objects
--- a/data/mapHeaders/rocktunnelpokecenter.asm
+++ b/data/mapHeaders/rocktunnelpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db ROCK_TUNNEL_POKECENTER_HEIGHT, ROCK_TUNNEL_POKECENTER_WIDTH ; dimensions (y, x)
 	dw RockTunnelPokecenterBlocks, RockTunnelPokecenterTextPointers, RockTunnelPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw RockTunnelPokecenterObject ; objects
--- a/data/mapHeaders/route11gate.asm
+++ b/data/mapHeaders/route11gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_11_GATE_1F_HEIGHT, ROUTE_11_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route11GateBlocks, Route11GateTextPointers, Route11GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route11GateObject ; objects
--- a/data/mapHeaders/route11gateupstairs.asm
+++ b/data/mapHeaders/route11gateupstairs.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_11_GATE_2F_HEIGHT, ROUTE_11_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route11GateUpstairsBlocks, Route11GateUpstairsTextPointers, Route11GateUpstairsScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route11GateUpstairsObject ; objects
--- a/data/mapHeaders/route12gate.asm
+++ b/data/mapHeaders/route12gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_12_GATE_1F_HEIGHT, ROUTE_12_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route12GateBlocks, Route12GateTextPointers, Route12GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route12GateObject ; objects
--- a/data/mapHeaders/route12gateupstairs.asm
+++ b/data/mapHeaders/route12gateupstairs.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_12_GATE_2F_HEIGHT, ROUTE_12_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route12GateUpstairsBlocks, Route12GateUpstairsTextPointers, Route12GateUpstairsScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route12GateUpstairsObject ; objects
--- a/data/mapHeaders/route12house.asm
+++ b/data/mapHeaders/route12house.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db ROUTE_12_HOUSE_HEIGHT, ROUTE_12_HOUSE_WIDTH ; dimensions (y, x)
 	dw Route12HouseBlocks, Route12HouseTextPointers, Route12HouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route12HouseObject ; objects
--- a/data/mapHeaders/route15gate.asm
+++ b/data/mapHeaders/route15gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_15_GATE_1F_HEIGHT, ROUTE_15_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route15GateBlocks, Route15GateTextPointers, Route15GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route15GateObject ; objects
--- a/data/mapHeaders/route15gateupstairs.asm
+++ b/data/mapHeaders/route15gateupstairs.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_15_GATE_2F_HEIGHT, ROUTE_15_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route15GateUpstairsBlocks, Route15GateUpstairsTextPointers, Route15GateUpstairsScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route15GateUpstairsObject ; objects
--- a/data/mapHeaders/route16gate.asm
+++ b/data/mapHeaders/route16gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_16_GATE_1F_HEIGHT, ROUTE_16_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route16GateBlocks, Route16GateTextPointers, Route16GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route16GateObject ; objects
--- a/data/mapHeaders/route16gateupstairs.asm
+++ b/data/mapHeaders/route16gateupstairs.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_16_GATE_2F_HEIGHT, ROUTE_16_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route16GateUpstairsBlocks, Route16GateUpstairsTextPointers, Route16GateUpstairsScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route16GateUpstairsObject ; objects
--- a/data/mapHeaders/route16house.asm
+++ b/data/mapHeaders/route16house.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db ROUTE_16_HOUSE_HEIGHT, ROUTE_16_HOUSE_WIDTH ; dimensions (y, x)
 	dw Route16HouseBlocks, Route16HouseTextPointers, Route16HouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route16HouseObject ; objects
--- a/data/mapHeaders/route18gate.asm
+++ b/data/mapHeaders/route18gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_18_GATE_1F_HEIGHT, ROUTE_18_GATE_1F_WIDTH ; dimensions (y, x)
 	dw Route18GateBlocks, Route18GateTextPointers, Route18GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route18GateObject ; objects
--- a/data/mapHeaders/route18gateupstairs.asm
+++ b/data/mapHeaders/route18gateupstairs.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_18_GATE_2F_HEIGHT, ROUTE_18_GATE_2F_WIDTH ; dimensions (y, x)
 	dw Route18GateUpstairsBlocks, Route18GateUpstairsTextPointers, Route18GateUpstairsScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route18GateUpstairsObject ; objects
--- a/data/mapHeaders/route22gate.asm
+++ b/data/mapHeaders/route22gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_22_GATE_HEIGHT, ROUTE_22_GATE_WIDTH ; dimensions (y, x)
 	dw Route22GateBlocks, Route22GateTextPointers, Route22GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route22GateObject ; objects
--- a/data/mapHeaders/route2gate.asm
+++ b/data/mapHeaders/route2gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_2_GATE_HEIGHT, ROUTE_2_GATE_WIDTH ; dimensions (y, x)
 	dw Route2GateBlocks, Route2GateTextPointers, Route2GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route2GateObject ; objects
--- a/data/mapHeaders/route2house.asm
+++ b/data/mapHeaders/route2house.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db ROUTE_2_HOUSE_HEIGHT, ROUTE_2_HOUSE_WIDTH ; dimensions (y, x)
 	dw Route2HouseBlocks, Route2HouseTextPointers, Route2HouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route2HouseObject ; objects
--- a/data/mapHeaders/route5gate.asm
+++ b/data/mapHeaders/route5gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_5_GATE_HEIGHT, ROUTE_5_GATE_WIDTH ; dimensions (y, x)
 	dw Route5GateBlocks, Route5GateTextPointers, Route5GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route5GateObject ; objects
--- a/data/mapHeaders/route6gate.asm
+++ b/data/mapHeaders/route6gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_6_GATE_HEIGHT, ROUTE_6_GATE_WIDTH ; dimensions (y, x)
 	dw Route6GateBlocks, Route6GateTextPointers, Route6GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route6GateObject ; objects
--- a/data/mapHeaders/route7gate.asm
+++ b/data/mapHeaders/route7gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_7_GATE_HEIGHT, ROUTE_7_GATE_WIDTH ; dimensions (y, x)
 	dw Route7GateBlocks, Route7GateTextPointers, Route7GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route7GateObject ; objects
--- a/data/mapHeaders/route8gate.asm
+++ b/data/mapHeaders/route8gate.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db ROUTE_8_GATE_HEIGHT, ROUTE_8_GATE_WIDTH ; dimensions (y, x)
 	dw Route8GateBlocks, Route8GateTextPointers, Route8GateScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw Route8GateObject ; objects
--- a/data/mapHeaders/safarizonecenter.asm
+++ b/data/mapHeaders/safarizonecenter.asm
@@ -2,5 +2,5 @@
 	db FOREST ; tileset
 	db SAFARI_ZONE_CENTER_HEIGHT, SAFARI_ZONE_CENTER_WIDTH ; dimensions (y, x)
 	dw SafariZoneCenterBlocks, SafariZoneCenterTextPointers, SafariZoneCenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneCenterObject ; objects
--- a/data/mapHeaders/safarizoneeast.asm
+++ b/data/mapHeaders/safarizoneeast.asm
@@ -2,5 +2,5 @@
 	db FOREST ; tileset
 	db SAFARI_ZONE_EAST_HEIGHT, SAFARI_ZONE_EAST_WIDTH ; dimensions (y, x)
 	dw SafariZoneEastBlocks, SafariZoneEastTextPointers, SafariZoneEastScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneEastObject ; objects
--- a/data/mapHeaders/safarizoneentrance.asm
+++ b/data/mapHeaders/safarizoneentrance.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db SAFARI_ZONE_ENTRANCE_HEIGHT, SAFARI_ZONE_ENTRANCE_WIDTH ; dimensions (y, x)
 	dw SafariZoneEntranceBlocks, SafariZoneEntranceTextPointers, SafariZoneEntranceScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneEntranceObject ; objects
--- a/data/mapHeaders/safarizonenorth.asm
+++ b/data/mapHeaders/safarizonenorth.asm
@@ -2,5 +2,5 @@
 	db FOREST ; tileset
 	db SAFARI_ZONE_NORTH_HEIGHT, SAFARI_ZONE_NORTH_WIDTH ; dimensions (y, x)
 	dw SafariZoneNorthBlocks, SafariZoneNorthTextPointers, SafariZoneNorthScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneNorthObject ; objects
--- a/data/mapHeaders/safarizoneresthouse1.asm
+++ b/data/mapHeaders/safarizoneresthouse1.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_1_HEIGHT, SAFARI_ZONE_REST_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse1Blocks, SafariZoneRestHouse1TextPointers, SafariZoneRestHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneRestHouse1Object ; objects
--- a/data/mapHeaders/safarizoneresthouse2.asm
+++ b/data/mapHeaders/safarizoneresthouse2.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_2_HEIGHT, SAFARI_ZONE_REST_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse2Blocks, SafariZoneRestHouse2TextPointers, SafariZoneRestHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneRestHouse2Object ; objects
--- a/data/mapHeaders/safarizoneresthouse3.asm
+++ b/data/mapHeaders/safarizoneresthouse3.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_3_HEIGHT, SAFARI_ZONE_REST_HOUSE_3_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse3Blocks, SafariZoneRestHouse3TextPointers, SafariZoneRestHouse3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneRestHouse3Object ; objects
--- a/data/mapHeaders/safarizoneresthouse4.asm
+++ b/data/mapHeaders/safarizoneresthouse4.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_4_HEIGHT, SAFARI_ZONE_REST_HOUSE_4_WIDTH ; dimensions (y, x)
 	dw SafariZoneRestHouse4Blocks, SafariZoneRestHouse4TextPointers, SafariZoneRestHouse4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneRestHouse4Object ; objects
--- a/data/mapHeaders/safarizonesecrethouse.asm
+++ b/data/mapHeaders/safarizonesecrethouse.asm
@@ -2,5 +2,5 @@
 	db LAB ; tileset
 	db SAFARI_ZONE_SECRET_HOUSE_HEIGHT, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; dimensions (y, x)
 	dw SafariZoneSecretHouseBlocks, SafariZoneSecretHouseTextPointers, SafariZoneSecretHouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneSecretHouseObject ; objects
--- a/data/mapHeaders/safarizonewest.asm
+++ b/data/mapHeaders/safarizonewest.asm
@@ -2,5 +2,5 @@
 	db FOREST ; tileset
 	db SAFARI_ZONE_WEST_HEIGHT, SAFARI_ZONE_WEST_WIDTH ; dimensions (y, x)
 	dw SafariZoneWestBlocks, SafariZoneWestTextPointers, SafariZoneWestScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SafariZoneWestObject ; objects
--- a/data/mapHeaders/saffrongym.asm
+++ b/data/mapHeaders/saffrongym.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SAFFRON_GYM_HEIGHT, SAFFRON_GYM_WIDTH ; dimensions (y, x)
 	dw SaffronGymBlocks, SaffronGymTextPointers, SaffronGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SaffronGymObject ; objects
--- a/data/mapHeaders/saffronhouse1.asm
+++ b/data/mapHeaders/saffronhouse1.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db SAFFRON_HOUSE_1_HEIGHT, SAFFRON_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw SaffronHouse1Blocks, SaffronHouse1TextPointers, SaffronHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SaffronHouse1Object ; objects
--- a/data/mapHeaders/saffronhouse2.asm
+++ b/data/mapHeaders/saffronhouse2.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db SAFFRON_HOUSE_2_HEIGHT, SAFFRON_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw SaffronHouse2Blocks, SaffronHouse2TextPointers, SaffronHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SaffronHouse2Object ; objects
--- a/data/mapHeaders/saffronmart.asm
+++ b/data/mapHeaders/saffronmart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db SAFFRON_MART_HEIGHT, SAFFRON_MART_WIDTH ; dimensions (y, x)
 	dw SaffronMartBlocks, SaffronMartTextPointers, SaffronMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SaffronMartObject ; objects
--- a/data/mapHeaders/saffronpokecenter.asm
+++ b/data/mapHeaders/saffronpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db SAFFRON_POKECENTER_HEIGHT, SAFFRON_POKECENTER_WIDTH ; dimensions (y, x)
 	dw SaffronPokecenterBlocks, SaffronPokecenterTextPointers, SaffronPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SaffronPokecenterObject ; objects
--- a/data/mapHeaders/school.asm
+++ b/data/mapHeaders/school.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db VIRIDIAN_SCHOOL_HEIGHT, VIRIDIAN_SCHOOL_WIDTH ; dimensions (y, x)
 	dw SchoolBlocks, SchoolTextPointers, SchoolScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SchoolObject ; objects
--- a/data/mapHeaders/seafoamislands1.asm
+++ b/data/mapHeaders/seafoamislands1.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db SEAFOAM_ISLANDS_1_HEIGHT, SEAFOAM_ISLANDS_1_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands1Blocks, SeafoamIslands1TextPointers, SeafoamIslands1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SeafoamIslands1Object ; objects
--- a/data/mapHeaders/seafoamislands2.asm
+++ b/data/mapHeaders/seafoamislands2.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db SEAFOAM_ISLANDS_2_HEIGHT, SEAFOAM_ISLANDS_2_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands2Blocks, SeafoamIslands2TextPointers, SeafoamIslands2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SeafoamIslands2Object ; objects
--- a/data/mapHeaders/seafoamislands3.asm
+++ b/data/mapHeaders/seafoamislands3.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db SEAFOAM_ISLANDS_3_HEIGHT, SEAFOAM_ISLANDS_3_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands3Blocks, SeafoamIslands3TextPointers, SeafoamIslands3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SeafoamIslands3Object ; objects
--- a/data/mapHeaders/seafoamislands4.asm
+++ b/data/mapHeaders/seafoamislands4.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db SEAFOAM_ISLANDS_4_HEIGHT, SEAFOAM_ISLANDS_4_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands4Blocks, SeafoamIslands4TextPointers, SeafoamIslands4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SeafoamIslands4Object ; objects
--- a/data/mapHeaders/seafoamislands5.asm
+++ b/data/mapHeaders/seafoamislands5.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db SEAFOAM_ISLANDS_5_HEIGHT, SEAFOAM_ISLANDS_5_WIDTH ; dimensions (y, x)
 	dw SeafoamIslands5Blocks, SeafoamIslands5TextPointers, SeafoamIslands5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SeafoamIslands5Object ; objects
--- a/data/mapHeaders/silphco1.asm
+++ b/data/mapHeaders/silphco1.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_1F_HEIGHT, SILPH_CO_1F_WIDTH ; dimensions (y, x)
 	dw SilphCo1Blocks, SilphCo1TextPointers, SilphCo1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo1Object ; objects
--- a/data/mapHeaders/silphco10.asm
+++ b/data/mapHeaders/silphco10.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_10F_HEIGHT, SILPH_CO_10F_WIDTH ; dimensions (y, x)
 	dw SilphCo10Blocks, SilphCo10TextPointers, SilphCo10Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo10Object ; objects
--- a/data/mapHeaders/silphco11.asm
+++ b/data/mapHeaders/silphco11.asm
@@ -2,5 +2,5 @@
 	db INTERIOR ; tileset
 	db SILPH_CO_11F_HEIGHT, SILPH_CO_11F_WIDTH ; dimensions (y, x)
 	dw SilphCo11Blocks, SilphCo11TextPointers, SilphCo11Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo11Object ; objects
--- a/data/mapHeaders/silphco2.asm
+++ b/data/mapHeaders/silphco2.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_2F_HEIGHT, SILPH_CO_2F_WIDTH ; dimensions (y, x)
 	dw SilphCo2Blocks, SilphCo2TextPointers, SilphCo2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo2Object ; objects
--- a/data/mapHeaders/silphco3.asm
+++ b/data/mapHeaders/silphco3.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_3F_HEIGHT, SILPH_CO_3F_WIDTH ; dimensions (y, x)
 	dw SilphCo3Blocks, SilphCo3TextPointers, SilphCo3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo3Object ; objects
--- a/data/mapHeaders/silphco4.asm
+++ b/data/mapHeaders/silphco4.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_4F_HEIGHT, SILPH_CO_4F_WIDTH ; dimensions (y, x)
 	dw SilphCo4Blocks, SilphCo4TextPointers, SilphCo4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo4Object ; objects
--- a/data/mapHeaders/silphco5.asm
+++ b/data/mapHeaders/silphco5.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_5F_HEIGHT, SILPH_CO_5F_WIDTH ; dimensions (y, x)
 	dw SilphCo5Blocks, SilphCo5TextPointers, SilphCo5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo5Object ; objects
--- a/data/mapHeaders/silphco6.asm
+++ b/data/mapHeaders/silphco6.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_6F_HEIGHT, SILPH_CO_6F_WIDTH ; dimensions (y, x)
 	dw SilphCo6Blocks, SilphCo6TextPointers, SilphCo6Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo6Object ; objects
--- a/data/mapHeaders/silphco7.asm
+++ b/data/mapHeaders/silphco7.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_7F_HEIGHT, SILPH_CO_7F_WIDTH ; dimensions (y, x)
 	dw SilphCo7Blocks, SilphCo7TextPointers, SilphCo7Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo7Object ; objects
--- a/data/mapHeaders/silphco8.asm
+++ b/data/mapHeaders/silphco8.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_8F_HEIGHT, SILPH_CO_8F_WIDTH ; dimensions (y, x)
 	dw SilphCo8Blocks, SilphCo8TextPointers, SilphCo8Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo8Object ; objects
--- a/data/mapHeaders/silphco9.asm
+++ b/data/mapHeaders/silphco9.asm
@@ -2,5 +2,5 @@
 	db FACILITY ; tileset
 	db SILPH_CO_9F_HEIGHT, SILPH_CO_9F_WIDTH ; dimensions (y, x)
 	dw SilphCo9Blocks, SilphCo9TextPointers, SilphCo9Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCo9Object ; objects
--- a/data/mapHeaders/silphcoelevator.asm
+++ b/data/mapHeaders/silphcoelevator.asm
@@ -2,5 +2,5 @@
 	db LOBBY ; tileset
 	db SILPH_CO_ELEVATOR_HEIGHT, SILPH_CO_ELEVATOR_WIDTH ; dimensions (y, x)
 	dw SilphCoElevatorBlocks, SilphCoElevatorTextPointers, SilphCoElevatorScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SilphCoElevatorObject ; objects
--- a/data/mapHeaders/ssanne1.asm
+++ b/data/mapHeaders/ssanne1.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_1_HEIGHT, SS_ANNE_1_WIDTH ; dimensions (y, x)
 	dw SSAnne1Blocks, SSAnne1TextPointers, SSAnne1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne1Object ; objects
--- a/data/mapHeaders/ssanne10.asm
+++ b/data/mapHeaders/ssanne10.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_10_HEIGHT, SS_ANNE_10_WIDTH ; dimensions (y, x)
 	dw SSAnne10Blocks, SSAnne10TextPointers, SSAnne10Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne10Object ; objects
--- a/data/mapHeaders/ssanne2.asm
+++ b/data/mapHeaders/ssanne2.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_2_HEIGHT, SS_ANNE_2_WIDTH ; dimensions (y, x)
 	dw SSAnne2Blocks, SSAnne2TextPointers, SSAnne2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne2Object ; objects
--- a/data/mapHeaders/ssanne3.asm
+++ b/data/mapHeaders/ssanne3.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_3_HEIGHT, SS_ANNE_3_WIDTH ; dimensions (y, x)
 	dw SSAnne3Blocks, SSAnne3TextPointers, SSAnne3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne3Object ; objects
--- a/data/mapHeaders/ssanne4.asm
+++ b/data/mapHeaders/ssanne4.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_4_HEIGHT, SS_ANNE_4_WIDTH ; dimensions (y, x)
 	dw SSAnne4Blocks, SSAnne4TextPointers, SSAnne4Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne4Object ; objects
--- a/data/mapHeaders/ssanne5.asm
+++ b/data/mapHeaders/ssanne5.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_5_HEIGHT, SS_ANNE_5_WIDTH ; dimensions (y, x)
 	dw SSAnne5Blocks, SSAnne5TextPointers, SSAnne5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne5Object ; objects
--- a/data/mapHeaders/ssanne6.asm
+++ b/data/mapHeaders/ssanne6.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_6_HEIGHT, SS_ANNE_6_WIDTH ; dimensions (y, x)
 	dw SSAnne6Blocks, SSAnne6TextPointers, SSAnne6Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne6Object ; objects
--- a/data/mapHeaders/ssanne7.asm
+++ b/data/mapHeaders/ssanne7.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_7_HEIGHT, SS_ANNE_7_WIDTH ; dimensions (y, x)
 	dw SSAnne7Blocks, SSAnne7TextPointers, SSAnne7Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne7Object ; objects
--- a/data/mapHeaders/ssanne8.asm
+++ b/data/mapHeaders/ssanne8.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_8_HEIGHT, SS_ANNE_8_WIDTH ; dimensions (y, x)
 	dw SSAnne8Blocks, SSAnne8TextPointers, SSAnne8Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne8Object ; objects
--- a/data/mapHeaders/ssanne9.asm
+++ b/data/mapHeaders/ssanne9.asm
@@ -2,5 +2,5 @@
 	db SHIP ; tileset
 	db SS_ANNE_9_HEIGHT, SS_ANNE_9_WIDTH ; dimensions (y, x)
 	dw SSAnne9Blocks, SSAnne9TextPointers, SSAnne9Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw SSAnne9Object ; objects
--- a/data/mapHeaders/tradecenter.asm
+++ b/data/mapHeaders/tradecenter.asm
@@ -2,5 +2,5 @@
 	db CLUB ; tileset
 	db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH ; dimensions (y, x)
 	dw TradeCenterBlocks, TradeCenterTextPointers, TradeCenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw TradeCenterObject ; objects
--- a/data/mapHeaders/undergroundpathentranceroute5.asm
+++ b/data/mapHeaders/undergroundpathentranceroute5.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_5_HEIGHT, PATH_ENTRANCE_ROUTE_5_WIDTH ; dimensions (y, x)
 	dw UndergroundPathEntranceRoute5Blocks, UndergroundPathEntranceRoute5TextPointers, UndergroundPathEntranceRoute5Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathEntranceRoute5Object ; objects
--- a/data/mapHeaders/undergroundpathentranceroute6.asm
+++ b/data/mapHeaders/undergroundpathentranceroute6.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_6_HEIGHT, PATH_ENTRANCE_ROUTE_6_WIDTH ; dimensions (y, x)
 	dw UndergroundPathEntranceRoute6Blocks, UndergroundPathEntranceRoute6TextPointers, UndergroundPathEntranceRoute6Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathEntranceRoute6Object ; objects
--- a/data/mapHeaders/undergroundpathentranceroute7.asm
+++ b/data/mapHeaders/undergroundpathentranceroute7.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
 	dw UndergroundPathEntranceRoute7Blocks, UndergroundPathEntranceRoute7TextPointers, UndergroundPathEntranceRoute7Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathEntranceRoute7Object ; objects
--- a/data/mapHeaders/undergroundpathentranceroute7copy.asm
+++ b/data/mapHeaders/undergroundpathentranceroute7copy.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
 	dw UndergroundPathEntranceRoute7CopyBlocks, UndergroundPathEntranceRoute7CopyTextPointers, UndergroundPathEntranceRoute7CopyScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathEntranceRoute7CopyObject ; objects
--- a/data/mapHeaders/undergroundpathentranceroute8.asm
+++ b/data/mapHeaders/undergroundpathentranceroute8.asm
@@ -2,5 +2,5 @@
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_8_HEIGHT, PATH_ENTRANCE_ROUTE_8_WIDTH ; dimensions (y, x)
 	dw UndergroundPathEntranceRoute8Blocks, UndergroundPathEntranceRoute8TextPointers, UndergroundPathEntranceRoute8Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathEntranceRoute8Object ; objects
--- a/data/mapHeaders/undergroundpathns.asm
+++ b/data/mapHeaders/undergroundpathns.asm
@@ -2,5 +2,5 @@
 	db UNDERGROUND ; tileset
 	db UNDERGROUND_PATH_NS_HEIGHT, UNDERGROUND_PATH_NS_WIDTH ; dimensions (y, x)
 	dw UndergroundPathNSBlocks, UndergroundPathNSTextPointers, UndergroundPathNSScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathNSObject ; objects
--- a/data/mapHeaders/undergroundpathwe.asm
+++ b/data/mapHeaders/undergroundpathwe.asm
@@ -2,5 +2,5 @@
 	db UNDERGROUND ; tileset
 	db UNDERGROUND_PATH_WE_HEIGHT, UNDERGROUND_PATH_WE_WIDTH ; dimensions (y, x)
 	dw UndergroundPathWEBlocks, UndergroundPathWETextPointers, UndergroundPathWEScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UndergroundPathWEObject ; objects
--- a/data/mapHeaders/unknowndungeon1.asm
+++ b/data/mapHeaders/unknowndungeon1.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db UNKNOWN_DUNGEON_1_HEIGHT, UNKNOWN_DUNGEON_1_WIDTH ; dimensions (y, x)
 	dw UnknownDungeon1Blocks, UnknownDungeon1TextPointers, UnknownDungeon1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UnknownDungeon1Object ; objects
--- a/data/mapHeaders/unknowndungeon2.asm
+++ b/data/mapHeaders/unknowndungeon2.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db UNKNOWN_DUNGEON_2_HEIGHT, UNKNOWN_DUNGEON_2_WIDTH ; dimensions (y, x)
 	dw UnknownDungeon2Blocks, UnknownDungeon2TextPointers, UnknownDungeon2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UnknownDungeon2Object ; objects
--- a/data/mapHeaders/unknowndungeon3.asm
+++ b/data/mapHeaders/unknowndungeon3.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db UNKNOWN_DUNGEON_3_HEIGHT, UNKNOWN_DUNGEON_3_WIDTH ; dimensions (y, x)
 	dw UnknownDungeon3Blocks, UnknownDungeon3TextPointers, UnknownDungeon3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw UnknownDungeon3Object ; objects
--- a/data/mapHeaders/vermiliondock.asm
+++ b/data/mapHeaders/vermiliondock.asm
@@ -2,5 +2,5 @@
 	db SHIP_PORT ; tileset
 	db VERMILION_DOCK_HEIGHT, VERMILION_DOCK_WIDTH ; dimensions (y, x)
 	dw VermilionDockBlocks, VermilionDockTextPointers, VermilionDockScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionDockObject ; objects
--- a/data/mapHeaders/vermiliongym.asm
+++ b/data/mapHeaders/vermiliongym.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db VERMILION_GYM_HEIGHT, VERMILION_GYM_WIDTH ; dimensions (y, x)
 	dw VermilionGymBlocks, VermilionGymTextPointers, VermilionGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionGymObject ; objects
--- a/data/mapHeaders/vermilionhouse1.asm
+++ b/data/mapHeaders/vermilionhouse1.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db VERMILION_HOUSE_1_HEIGHT, VERMILION_HOUSE_1_WIDTH ; dimensions (y, x)
 	dw VermilionHouse1Blocks, VermilionHouse1TextPointers, VermilionHouse1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionHouse1Object ; objects
--- a/data/mapHeaders/vermilionhouse2.asm
+++ b/data/mapHeaders/vermilionhouse2.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db VERMILION_HOUSE_2_HEIGHT, VERMILION_HOUSE_2_WIDTH ; dimensions (y, x)
 	dw VermilionHouse2Blocks, VermilionHouse2TextPointers, VermilionHouse2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionHouse2Object ; objects
--- a/data/mapHeaders/vermilionhouse3.asm
+++ b/data/mapHeaders/vermilionhouse3.asm
@@ -2,5 +2,5 @@
 	db HOUSE ; tileset
 	db VERMILION_HOUSE_3_HEIGHT, VERMILION_HOUSE_3_WIDTH ; dimensions (y, x)
 	dw VermilionHouse3Blocks, VermilionHouse3TextPointers, VermilionHouse3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionHouse3Object ; objects
--- a/data/mapHeaders/vermilionmart.asm
+++ b/data/mapHeaders/vermilionmart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db VERMILION_MART_HEIGHT, VERMILION_MART_WIDTH ; dimensions (y, x)
 	dw VermilionMartBlocks, VermilionMartTextPointers, VermilionMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionMartObject ; objects
--- a/data/mapHeaders/vermilionpokecenter.asm
+++ b/data/mapHeaders/vermilionpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db VERMILION_POKECENTER_HEIGHT, VERMILION_POKECENTER_WIDTH ; dimensions (y, x)
 	dw VermilionPokecenterBlocks, VermilionPokecenterTextPointers, VermilionPokecenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VermilionPokecenterObject ; objects
--- a/data/mapHeaders/victoryroad1.asm
+++ b/data/mapHeaders/victoryroad1.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db VICTORY_ROAD_1_HEIGHT, VICTORY_ROAD_1_WIDTH ; dimensions (y, x)
 	dw VictoryRoad1Blocks, VictoryRoad1TextPointers, VictoryRoad1Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VictoryRoad1Object ; objects
--- a/data/mapHeaders/victoryroad2.asm
+++ b/data/mapHeaders/victoryroad2.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db VICTORY_ROAD_2_HEIGHT, VICTORY_ROAD_2_WIDTH ; dimensions (y, x)
 	dw VictoryRoad2Blocks, VictoryRoad2TextPointers, VictoryRoad2Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VictoryRoad2Object ; objects
--- a/data/mapHeaders/victoryroad3.asm
+++ b/data/mapHeaders/victoryroad3.asm
@@ -2,5 +2,5 @@
 	db CAVERN ; tileset
 	db VICTORY_ROAD_3_HEIGHT, VICTORY_ROAD_3_WIDTH ; dimensions (y, x)
 	dw VictoryRoad3Blocks, VictoryRoad3TextPointers, VictoryRoad3Script ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw VictoryRoad3Object ; objects
--- a/data/mapHeaders/viridianforest.asm
+++ b/data/mapHeaders/viridianforest.asm
@@ -2,5 +2,5 @@
 	db FOREST ; tileset
 	db VIRIDIAN_FOREST_HEIGHT, VIRIDIAN_FOREST_WIDTH ; dimensions (y, x)
 	dw ViridianForestBlocks, ViridianForestTextPointers, ViridianForestScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianForestObject ; objects
--- a/data/mapHeaders/viridianforestentrance.asm
+++ b/data/mapHeaders/viridianforestentrance.asm
@@ -2,5 +2,5 @@
 	db FOREST_GATE ; tileset
 	db VIRIDIAN_FOREST_ENTRANCE_HEIGHT, VIRIDIAN_FOREST_ENTRANCE_WIDTH ; dimensions (y, x)
 	dw ViridianForestEntranceBlocks, ViridianForestEntranceTextPointers, ViridianForestEntranceScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianForestEntranceObject ; objects
--- a/data/mapHeaders/viridianforestexit.asm
+++ b/data/mapHeaders/viridianforestexit.asm
@@ -2,5 +2,5 @@
 	db FOREST_GATE ; tileset
 	db VIRIDIAN_FOREST_EXIT_HEIGHT, VIRIDIAN_FOREST_EXIT_WIDTH ; dimensions (y, x)
 	dw ViridianForestExitBlocks, ViridianForestExitTextPointers, ViridianForestExitScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianForestExitObject ; objects
--- a/data/mapHeaders/viridiangym.asm
+++ b/data/mapHeaders/viridiangym.asm
@@ -2,5 +2,5 @@
 	db GYM ; tileset
 	db VIRIDIAN_GYM_HEIGHT, VIRIDIAN_GYM_WIDTH ; dimensions (y, x)
 	dw ViridianGymBlocks, ViridianGymTextPointers, ViridianGymScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianGymObject ; objects
--- a/data/mapHeaders/viridianhouse.asm
+++ b/data/mapHeaders/viridianhouse.asm
@@ -2,7 +2,7 @@
 	db HOUSE ; tileset
 	db VIRIDIAN_HOUSE_HEIGHT, VIRIDIAN_HOUSE_WIDTH ; dimensions (y, x)
 	dw ViridianHouseBlocks, ViridianHouseTextPointers, ViridianHouseScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianHouseObject ; objects
 
 	db $0
--- a/data/mapHeaders/viridianmart.asm
+++ b/data/mapHeaders/viridianmart.asm
@@ -2,5 +2,5 @@
 	db MART ; tileset
 	db VIRIDIAN_MART_HEIGHT, VIRIDIAN_MART_WIDTH ; dimensions (y, x)
 	dw ViridianMartBlocks, ViridianMartTextPointers, ViridianMartScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianMartObject ; objects
--- a/data/mapHeaders/viridianpokecenter.asm
+++ b/data/mapHeaders/viridianpokecenter.asm
@@ -2,5 +2,5 @@
 	db POKECENTER ; tileset
 	db VIRIDIAN_POKECENTER_HEIGHT, VIRIDIAN_POKECENTER_WIDTH ; dimensions (y, x)
 	dw ViridianPokecenterBlocks, ViridianPokecenterTextPointers, ViridianPokeCenterScript ; blocks, texts, scripts
-	db $00 ; connections
+	db 0 ; connections
 	dw ViridianPokecenterObject ; objects
--- a/data/mapObjects/agatha.asm
+++ b/data/mapObjects/agatha.asm
@@ -1,19 +1,19 @@
 AgathaObject:
 	db $0 ; border block
 
-	db $4 ; warps
-	db $b, $4, $2, BRUNOS_ROOM
-	db $b, $5, $3, BRUNOS_ROOM
-	db $0, $4, $0, LANCES_ROOM
-	db $0, $5, $0, LANCES_ROOM
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_AGATHA, $5, $2, STAY, DOWN, $1, OPP_AGATHA, $1
+	db 1 ; objects
+	object SPRITE_AGATHA, 5, 2, STAY, DOWN, 1, OPP_AGATHA, 1
 
 	; warp-to
-	EVENT_DISP AGATHAS_ROOM_WIDTH, $b, $4 ; BRUNOS_ROOM
-	EVENT_DISP AGATHAS_ROOM_WIDTH, $b, $5 ; BRUNOS_ROOM
-	EVENT_DISP AGATHAS_ROOM_WIDTH, $0, $4 ; LANCES_ROOM
-	EVENT_DISP AGATHAS_ROOM_WIDTH, $0, $5 ; LANCES_ROOM
+	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
--- a/data/mapObjects/bikeshop.asm
+++ b/data/mapObjects/bikeshop.asm
@@ -1,17 +1,17 @@
 BikeShopObject:
 	db $e ; border block
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
+	db 2 ; warps
+	warp 2, 7, 4, -1
+	warp 3, 7, 4, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP BIKE_SHOP_WIDTH, $7, $2
-	EVENT_DISP BIKE_SHOP_WIDTH, $7, $3
+	warp_to 2, 7, BIKE_SHOP_WIDTH
+	warp_to 3, 7, BIKE_SHOP_WIDTH
--- a/data/mapObjects/billshouse.asm
+++ b/data/mapObjects/billshouse.asm
@@ -1,17 +1,17 @@
 BillsHouseObject:
 	db $d ; border block
 
-	db $2 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
+	db 2 ; warps
+	warp 2, 7, 0, -1
+	warp 3, 7, 0, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP BILLS_HOUSE_WIDTH, $7, $2
-	EVENT_DISP BILLS_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, BILLS_HOUSE_WIDTH
+	warp_to 3, 7, BILLS_HOUSE_WIDTH
--- a/data/mapObjects/blueshouse.asm
+++ b/data/mapObjects/blueshouse.asm
@@ -1,17 +1,17 @@
 BluesHouseObject:
-	db $0A ; border block
+	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $1, $FF
-	db $7, $3, $1, $FF
+	db 2 ; warps
+	warp 2, 7, 1, -1
+	warp 3, 7, 1, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP BLUES_HOUSE_WIDTH, $7, $2
-	EVENT_DISP BLUES_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, BLUES_HOUSE_WIDTH
+	warp_to 3, 7, BLUES_HOUSE_WIDTH
--- a/data/mapObjects/bruno.asm
+++ b/data/mapObjects/bruno.asm
@@ -1,19 +1,19 @@
 BrunoObject:
 	db $3 ; border block
 
-	db $4 ; warps
-	db $b, $4, $2, LORELEIS_ROOM
-	db $b, $5, $3, LORELEIS_ROOM
-	db $0, $4, $0, AGATHAS_ROOM
-	db $0, $5, $1, AGATHAS_ROOM
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_BRUNO, $5, $2, STAY, DOWN, $1, OPP_BRUNO, $1
+	db 1 ; objects
+	object SPRITE_BRUNO, 5, 2, STAY, DOWN, 1, OPP_BRUNO, 1
 
 	; warp-to
-	EVENT_DISP BRUNOS_ROOM_WIDTH, $b, $4 ; LORELEIS_ROOM
-	EVENT_DISP BRUNOS_ROOM_WIDTH, $b, $5 ; LORELEIS_ROOM
-	EVENT_DISP BRUNOS_ROOM_WIDTH, $0, $4 ; AGATHAS_ROOM
-	EVENT_DISP BRUNOS_ROOM_WIDTH, $0, $5 ; AGATHAS_ROOM
+	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
--- a/data/mapObjects/celadoncity.asm
+++ b/data/mapObjects/celadoncity.asm
@@ -1,54 +1,54 @@
 CeladonCityObject:
 	db $f ; border block
 
-	db $d ; warps
-	db $d, $8, $0, CELADON_MART_1
-	db $d, $a, $2, CELADON_MART_1
-	db $9, $18, $0, CELADON_MANSION_1
-	db $3, $18, $2, CELADON_MANSION_1
-	db $3, $19, $2, CELADON_MANSION_1
-	db $9, $29, $0, CELADON_POKECENTER
-	db $1b, $c, $0, CELADON_GYM
-	db $13, $1c, $0, GAME_CORNER
-	db $13, $27, $0, CELADON_MART_5 ; beta warp! no longer used
-	db $13, $21, $0, CELADON_PRIZE_ROOM
-	db $1b, $1f, $0, CELADON_DINER
-	db $1b, $23, $0, CELADON_HOUSE
-	db $1b, $2b, $0, CELADON_HOTEL
+	db 13 ; warps
+	warp 8, 13, 0, CELADON_MART_1
+	warp 10, 13, 2, CELADON_MART_1
+	warp 24, 9, 0, CELADON_MANSION_1
+	warp 24, 3, 2, CELADON_MANSION_1
+	warp 25, 3, 2, CELADON_MANSION_1
+	warp 41, 9, 0, CELADON_POKECENTER
+	warp 12, 27, 0, CELADON_GYM
+	warp 28, 19, 0, GAME_CORNER
+	warp 39, 19, 0, CELADON_MART_5 ; beta warp! no longer used
+	warp 33, 19, 0, CELADON_PRIZE_ROOM
+	warp 31, 27, 0, CELADON_DINER
+	warp 35, 27, 0, CELADON_HOUSE
+	warp 43, 27, 0, CELADON_HOTEL
 
-	db $9 ; signs
-	db $f, $1b, $a ; CeladonCityText10
-	db $f, $13, $b ; CeladonCityText11
-	db $9, $2a, $c ; PokeCenterSignText
-	db $1d, $d, $d ; CeladonCityText13
-	db $9, $15, $e ; CeladonCityText14
-	db $d, $c, $f ; CeladonCityText15
-	db $15, $27, $10 ; CeladonCityText16
-	db $15, $21, $11 ; CeladonCityText17
-	db $15, $1b, $12 ; CeladonCityText18
+	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, $11, WALK, $0, $1 ; person
-	object SPRITE_OLD_PERSON, $b, $1c, STAY, UP, $2 ; person
-	object SPRITE_GIRL, $e, $13, WALK, $1, $3 ; person
-	object SPRITE_OLD_PERSON, $19, $16, STAY, DOWN, $4 ; person
-	object SPRITE_OLD_PERSON, $16, $10, STAY, DOWN, $5 ; person
-	object SPRITE_FISHER2, $20, $c, STAY, LEFT, $6 ; person
-	object SPRITE_SLOWBRO, $1e, $c, STAY, RIGHT, $7 ; person
-	object SPRITE_ROCKET, $20, $1d, WALK, $2, $8 ; person
-	object SPRITE_ROCKET, $2a, $e, WALK, $2, $9 ; person
+	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
-	EVENT_DISP CELADON_CITY_WIDTH, $d, $8 ; CELADON_MART_1
-	EVENT_DISP CELADON_CITY_WIDTH, $d, $a ; CELADON_MART_1
-	EVENT_DISP CELADON_CITY_WIDTH, $9, $18 ; CELADON_MANSION_1
-	EVENT_DISP CELADON_CITY_WIDTH, $3, $18 ; CELADON_MANSION_1
-	EVENT_DISP CELADON_CITY_WIDTH, $3, $19 ; CELADON_MANSION_1
-	EVENT_DISP CELADON_CITY_WIDTH, $9, $29 ; CELADON_POKECENTER
-	EVENT_DISP CELADON_CITY_WIDTH, $1b, $c ; CELADON_GYM
-	EVENT_DISP CELADON_CITY_WIDTH, $13, $1c ; GAME_CORNER
-	EVENT_DISP CELADON_CITY_WIDTH, $13, $27 ; CELADON_MART_5
-	EVENT_DISP CELADON_CITY_WIDTH, $13, $21 ; CELADON_PRIZE_ROOM
-	EVENT_DISP CELADON_CITY_WIDTH, $1b, $1f ; CELADON_DINER
-	EVENT_DISP CELADON_CITY_WIDTH, $1b, $23 ; CELADON_HOUSE
-	EVENT_DISP CELADON_CITY_WIDTH, $1b, $2b ; CELADON_HOTEL
+	warp_to 8, 13, CELADON_CITY_WIDTH ; CELADON_MART_1
+	warp_to 10, 13, CELADON_CITY_WIDTH ; CELADON_MART_1
+	warp_to 24, 9, CELADON_CITY_WIDTH ; CELADON_MANSION_1
+	warp_to 24, 3, CELADON_CITY_WIDTH ; CELADON_MANSION_1
+	warp_to 25, 3, CELADON_CITY_WIDTH ; CELADON_MANSION_1
+	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_5
+	warp_to 33, 19, CELADON_CITY_WIDTH ; CELADON_PRIZE_ROOM
+	warp_to 31, 27, CELADON_CITY_WIDTH ; CELADON_DINER
+	warp_to 35, 27, CELADON_CITY_WIDTH ; CELADON_HOUSE
+	warp_to 43, 27, CELADON_CITY_WIDTH ; CELADON_HOTEL
--- a/data/mapObjects/celadondiner.asm
+++ b/data/mapObjects/celadondiner.asm
@@ -1,19 +1,19 @@
 CeladonDinerObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $7, $3, $a, $ff
-	db $7, $4, $a, $ff
+	db 2 ; warps
+	warp 3, 7, 10, -1
+	warp 4, 7, 10, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CELADON_DINER_WIDTH, $7, $3
-	EVENT_DISP CELADON_DINER_WIDTH, $7, $4
+	warp_to 3, 7, CELADON_DINER_WIDTH
+	warp_to 4, 7, CELADON_DINER_WIDTH
--- a/data/mapObjects/celadongamecorner.asm
+++ b/data/mapObjects/celadongamecorner.asm
@@ -1,28 +1,28 @@
 CeladonGameCornerObject:
 	db $f ; border block
 
-	db $3 ; warps
-	db $11, $f, $7, $ff
-	db $11, $10, $7, $ff
-	db $4, $11, $1, ROCKET_HIDEOUT_1
+	db 3 ; warps
+	warp 15, 17, 7, -1
+	warp 16, 17, 7, -1
+	warp 17, 4, 1, ROCKET_HIDEOUT_1
 
-	db $1 ; signs
-	db $4, $9, $c ; CeladonGameCornerText12
+	db 1 ; signs
+	sign 9, 4, 12 ; CeladonGameCornerText12
 
-	db $b ; 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, $a, STAY, LEFT, $3 ; person
-	object SPRITE_FOULARD_WOMAN, $2, $d, STAY, LEFT, $4 ; person
-	object SPRITE_FISHER, $5, $b, STAY, RIGHT, $5 ; person
-	object SPRITE_MOM_GEISHA, $8, $b, STAY, LEFT, $6 ; person
-	object SPRITE_GYM_HELPER, $8, $e, STAY, LEFT, $7 ; person
-	object SPRITE_GAMBLER, $b, $f, STAY, RIGHT, $8 ; person
-	object SPRITE_MART_GUY, $e, $b, STAY, LEFT, $9 ; person
-	object SPRITE_GENTLEMAN, $11, $d, STAY, RIGHT, $a ; person
-	object SPRITE_ROCKET, $9, $5, STAY, UP, $b, OPP_ROCKET, $7
+	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
-	EVENT_DISP GAME_CORNER_WIDTH, $11, $f
-	EVENT_DISP GAME_CORNER_WIDTH, $11, $10
-	EVENT_DISP GAME_CORNER_WIDTH, $4, $11 ; ROCKET_HIDEOUT_1
+	warp_to 15, 17, GAME_CORNER_WIDTH
+	warp_to 16, 17, GAME_CORNER_WIDTH
+	warp_to 17, 4, GAME_CORNER_WIDTH ; ROCKET_HIDEOUT_1
--- a/data/mapObjects/celadongym.asm
+++ b/data/mapObjects/celadongym.asm
@@ -1,22 +1,22 @@
 CeladonGymObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $11, $4, $6, $ff
-	db $11, $5, $6, $ff
+	db 2 ; warps
+	warp 4, 17, 6, -1
+	warp 5, 17, 6, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $8 ; objects
-	object SPRITE_ERIKA, $4, $3, STAY, DOWN, $1, OPP_ERIKA, $1
-	object SPRITE_LASS, $2, $b, STAY, RIGHT, $2, OPP_LASS, $11
-	object SPRITE_FOULARD_WOMAN, $7, $a, STAY, LEFT, $3, OPP_BEAUTY, $1
-	object SPRITE_LASS, $9, $5, STAY, DOWN, $4, OPP_JR_TRAINER_F, $b
-	object SPRITE_FOULARD_WOMAN, $1, $5, STAY, DOWN, $5, OPP_BEAUTY, $2
-	object SPRITE_LASS, $6, $3, STAY, DOWN, $6, OPP_LASS, $12
-	object SPRITE_FOULARD_WOMAN, $3, $3, STAY, DOWN, $7, OPP_BEAUTY, $3
-	object SPRITE_LASS, $5, $3, STAY, DOWN, $8, OPP_COOLTRAINER_F, $1
+	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
-	EVENT_DISP CELADON_GYM_WIDTH, $11, $4
-	EVENT_DISP CELADON_GYM_WIDTH, $11, $5
+	warp_to 4, 17, CELADON_GYM_WIDTH
+	warp_to 5, 17, CELADON_GYM_WIDTH
--- a/data/mapObjects/celadonhotel.asm
+++ b/data/mapObjects/celadonhotel.asm
@@ -1,17 +1,17 @@
 CeladonHotelObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $c, $ff
-	db $7, $4, $c, $ff
+	db 2 ; warps
+	warp 3, 7, 12, -1
+	warp 4, 7, 12, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CELADON_HOTEL_WIDTH, $7, $3
-	EVENT_DISP CELADON_HOTEL_WIDTH, $7, $4
+	warp_to 3, 7, CELADON_HOTEL_WIDTH
+	warp_to 4, 7, CELADON_HOTEL_WIDTH
--- a/data/mapObjects/celadonhouse.asm
+++ b/data/mapObjects/celadonhouse.asm
@@ -1,17 +1,17 @@
 CeladonHouseObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $7, $2, $b, $ff
-	db $7, $3, $b, $ff
+	db 2 ; warps
+	warp 2, 7, 11, -1
+	warp 3, 7, 11, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CELADON_HOUSE_WIDTH, $7, $2
-	EVENT_DISP CELADON_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, CELADON_HOUSE_WIDTH
+	warp_to 3, 7, CELADON_HOUSE_WIDTH
--- a/data/mapObjects/celadonmansion1.asm
+++ b/data/mapObjects/celadonmansion1.asm
@@ -1,25 +1,25 @@
 CeladonMansion1Object:
 	db $f ; border block
 
-	db $5 ; warps
-	db $b, $4, $2, $ff
-	db $b, $5, $2, $ff
-	db $0, $4, $4, $ff
-	db $1, $7, $1, CELADON_MANSION_2
-	db $1, $2, $2, CELADON_MANSION_2
+	db 5 ; warps
+	warp 4, 11, 2, -1
+	warp 5, 11, 2, -1
+	warp 4, 0, 4, -1
+	warp 7, 1, 1, CELADON_MANSION_2
+	warp 2, 1, 2, CELADON_MANSION_2
 
-	db $1 ; signs
-	db $9, $4, $5 ; CeladonMansion1Text5
+	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
+	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
-	EVENT_DISP CELADON_MANSION_1_WIDTH, $b, $4
-	EVENT_DISP CELADON_MANSION_1_WIDTH, $b, $5
-	EVENT_DISP CELADON_MANSION_1_WIDTH, $0, $4
-	EVENT_DISP CELADON_MANSION_1_WIDTH, $1, $7 ; CELADON_MANSION_2
-	EVENT_DISP CELADON_MANSION_1_WIDTH, $1, $2 ; CELADON_MANSION_2
+	warp_to 4, 11, CELADON_MANSION_1_WIDTH
+	warp_to 5, 11, CELADON_MANSION_1_WIDTH
+	warp_to 4, 0, CELADON_MANSION_1_WIDTH
+	warp_to 7, 1, CELADON_MANSION_1_WIDTH ; CELADON_MANSION_2
+	warp_to 2, 1, CELADON_MANSION_1_WIDTH ; CELADON_MANSION_2
--- a/data/mapObjects/celadonmansion2.asm
+++ b/data/mapObjects/celadonmansion2.asm
@@ -1,19 +1,19 @@
 CeladonMansion2Object:
 	db $f ; border block
 
-	db $4 ; warps
-	db $1, $6, $0, CELADON_MANSION_3
-	db $1, $7, $3, CELADON_MANSION_1
-	db $1, $2, $4, CELADON_MANSION_1
-	db $1, $4, $3, CELADON_MANSION_3
+	db 4 ; warps
+	warp 6, 1, 0, CELADON_MANSION_3
+	warp 7, 1, 3, CELADON_MANSION_1
+	warp 2, 1, 4, CELADON_MANSION_1
+	warp 4, 1, 3, CELADON_MANSION_3
 
-	db $1 ; signs
-	db $9, $4, $1 ; CeladonMansion2Text1
+	db 1 ; signs
+	sign 4, 9, 1 ; CeladonMansion2Text1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP CELADON_MANSION_2_WIDTH, $1, $6 ; CELADON_MANSION_3
-	EVENT_DISP CELADON_MANSION_2_WIDTH, $1, $7 ; CELADON_MANSION_1
-	EVENT_DISP CELADON_MANSION_2_WIDTH, $1, $2 ; CELADON_MANSION_1
-	EVENT_DISP CELADON_MANSION_2_WIDTH, $1, $4 ; CELADON_MANSION_3
+	warp_to 6, 1, CELADON_MANSION_2_WIDTH ; CELADON_MANSION_3
+	warp_to 7, 1, CELADON_MANSION_2_WIDTH ; CELADON_MANSION_1
+	warp_to 2, 1, CELADON_MANSION_2_WIDTH ; CELADON_MANSION_1
+	warp_to 4, 1, CELADON_MANSION_2_WIDTH ; CELADON_MANSION_3
--- a/data/mapObjects/celadonmansion3.asm
+++ b/data/mapObjects/celadonmansion3.asm
@@ -1,26 +1,26 @@
 CeladonMansion3Object:
 	db $f ; border block
 
-	db $4 ; warps
-	db $1, $6, $0, CELADON_MANSION_2
-	db $1, $7, $0, CELADON_MANSION_4
-	db $1, $2, $1, CELADON_MANSION_4
-	db $1, $4, $3, CELADON_MANSION_2
+	db 4 ; warps
+	warp 6, 1, 0, CELADON_MANSION_2
+	warp 7, 1, 0, CELADON_MANSION_4
+	warp 2, 1, 1, CELADON_MANSION_4
+	warp 4, 1, 3, CELADON_MANSION_2
 
-	db $4 ; signs
-	db $3, $1, $5 ; CeladonMansion3Text5
-	db $3, $4, $6 ; CeladonMansion3Text6
-	db $6, $1, $7 ; CeladonMansion3Text7
-	db $9, $4, $8 ; CeladonMansion3Text8
+	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
+	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
-	EVENT_DISP CELADON_MANSION_3_WIDTH, $1, $6 ; CELADON_MANSION_2
-	EVENT_DISP CELADON_MANSION_3_WIDTH, $1, $7 ; CELADON_MANSION_4
-	EVENT_DISP CELADON_MANSION_3_WIDTH, $1, $2 ; CELADON_MANSION_4
-	EVENT_DISP CELADON_MANSION_3_WIDTH, $1, $4 ; CELADON_MANSION_2
+	warp_to 6, 1, CELADON_MANSION_3_WIDTH ; CELADON_MANSION_2
+	warp_to 7, 1, CELADON_MANSION_3_WIDTH ; CELADON_MANSION_4
+	warp_to 2, 1, CELADON_MANSION_3_WIDTH ; CELADON_MANSION_4
+	warp_to 4, 1, CELADON_MANSION_3_WIDTH ; CELADON_MANSION_2
--- a/data/mapObjects/celadonmansion4.asm
+++ b/data/mapObjects/celadonmansion4.asm
@@ -1,17 +1,17 @@
 CeladonMansion4Object:
 	db $9 ; border block
 
-	db $3 ; warps
-	db $1, $6, $1, CELADON_MANSION_3
-	db $1, $2, $2, CELADON_MANSION_3
-	db $7, $2, $0, CELADON_MANSION_5
+	db 3 ; warps
+	warp 6, 1, 1, CELADON_MANSION_3
+	warp 2, 1, 2, CELADON_MANSION_3
+	warp 2, 7, 0, CELADON_MANSION_5
 
-	db $1 ; signs
-	db $7, $3, $1 ; CeladonMansion4Text1
+	db 1 ; signs
+	sign 3, 7, 1 ; CeladonMansion4Text1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP CELADON_MANSION_4_WIDTH, $1, $6 ; CELADON_MANSION_3
-	EVENT_DISP CELADON_MANSION_4_WIDTH, $1, $2 ; CELADON_MANSION_3
-	EVENT_DISP CELADON_MANSION_4_WIDTH, $7, $2 ; CELADON_MANSION_5
+	warp_to 6, 1, CELADON_MANSION_4_WIDTH ; CELADON_MANSION_3
+	warp_to 2, 1, CELADON_MANSION_4_WIDTH ; CELADON_MANSION_3
+	warp_to 2, 7, CELADON_MANSION_4_WIDTH ; CELADON_MANSION_5
--- a/data/mapObjects/celadonmansion5.asm
+++ b/data/mapObjects/celadonmansion5.asm
@@ -1,16 +1,16 @@
 CeladonMansion5Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $2, CELADON_MANSION_4
-	db $7, $3, $2, CELADON_MANSION_4
+	db 2 ; warps
+	warp 2, 7, 2, CELADON_MANSION_4
+	warp 3, 7, 2, CELADON_MANSION_4
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_HIKER, $2, $2, STAY, DOWN, $1 ; person
-	object SPRITE_BALL, $4, $3, STAY, NONE, $2 ; person
+	db 2 ; objects
+	object SPRITE_HIKER, 2, 2, STAY, DOWN, 1 ; person
+	object SPRITE_BALL, 4, 3, STAY, NONE, 2 ; person
 
 	; warp-to
-	EVENT_DISP CELADON_MANSION_5_WIDTH, $7, $2 ; CELADON_MANSION_4
-	EVENT_DISP CELADON_MANSION_5_WIDTH, $7, $3 ; CELADON_MANSION_4
+	warp_to 2, 7, CELADON_MANSION_5_WIDTH ; CELADON_MANSION_4
+	warp_to 3, 7, CELADON_MANSION_5_WIDTH ; CELADON_MANSION_4
--- a/data/mapObjects/celadonmart1.asm
+++ b/data/mapObjects/celadonmart1.asm
@@ -1,25 +1,25 @@
 CeladonMart1Object:
 	db $f ; border block
 
-	db $6 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $7, $10, $1, $ff
-	db $7, $11, $1, $ff
-	db $1, $c, $0, CELADON_MART_2
-	db $1, $1, $0, CELADON_MART_ELEVATOR
+	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_2
+	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db $2 ; signs
-	db $4, $b, $2 ; CeladonMart1Text2
-	db $1, $e, $3 ; CeladonMart1Text3
+	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
+	db 1 ; objects
+	object SPRITE_CABLE_CLUB_WOMAN, 8, 3, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP CELADON_MART_1_WIDTH, $7, $2
-	EVENT_DISP CELADON_MART_1_WIDTH, $7, $3
-	EVENT_DISP CELADON_MART_1_WIDTH, $7, $10
-	EVENT_DISP CELADON_MART_1_WIDTH, $7, $11
-	EVENT_DISP CELADON_MART_1_WIDTH, $1, $c ; CELADON_MART_2
-	EVENT_DISP CELADON_MART_1_WIDTH, $1, $1 ; CELADON_MART_ELEVATOR
+	warp_to 2, 7, CELADON_MART_1_WIDTH
+	warp_to 3, 7, CELADON_MART_1_WIDTH
+	warp_to 16, 7, CELADON_MART_1_WIDTH
+	warp_to 17, 7, CELADON_MART_1_WIDTH
+	warp_to 12, 1, CELADON_MART_1_WIDTH ; CELADON_MART_2
+	warp_to 1, 1, CELADON_MART_1_WIDTH ; CELADON_MART_ELEVATOR
--- a/data/mapObjects/celadonmart2.asm
+++ b/data/mapObjects/celadonmart2.asm
@@ -1,21 +1,21 @@
 CeladonMart2Object:
 	db $f ; border block
 
-	db $3 ; warps
-	db $1, $c, $4, CELADON_MART_1
-	db $1, $10, $1, CELADON_MART_3
-	db $1, $1, $0, CELADON_MART_ELEVATOR
+	db 3 ; warps
+	warp 12, 1, 4, CELADON_MART_1
+	warp 16, 1, 1, CELADON_MART_3
+	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db $1 ; signs
-	db $1, $e, $5 ; CeladonMart2Text5
+	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, $13, $5, STAY, NONE, $3 ; person
-	object SPRITE_GIRL, $e, $4, WALK, $1, $4 ; person
+	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
-	EVENT_DISP CELADON_MART_2_WIDTH, $1, $c ; CELADON_MART_1
-	EVENT_DISP CELADON_MART_2_WIDTH, $1, $10 ; CELADON_MART_3
-	EVENT_DISP CELADON_MART_2_WIDTH, $1, $1 ; CELADON_MART_ELEVATOR
+	warp_to 12, 1, CELADON_MART_2_WIDTH ; CELADON_MART_1
+	warp_to 16, 1, CELADON_MART_2_WIDTH ; CELADON_MART_3
+	warp_to 1, 1, CELADON_MART_2_WIDTH ; CELADON_MART_ELEVATOR
--- a/data/mapObjects/celadonmart3.asm
+++ b/data/mapObjects/celadonmart3.asm
@@ -1,33 +1,33 @@
 CeladonMart3Object:
 	db $f ; border block
 
-	db $3 ; warps
-	db $1, $c, $0, CELADON_MART_4
-	db $1, $10, $1, CELADON_MART_2
-	db $1, $1, $0, CELADON_MART_ELEVATOR
+	db 3 ; warps
+	warp 12, 1, 0, CELADON_MART_4
+	warp 16, 1, 1, CELADON_MART_2
+	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db $c ; signs
-	db $4, $2, $6 ; CeladonMart3Text6
-	db $4, $3, $7 ; CeladonMart3Text7
-	db $4, $5, $8 ; CeladonMart3Text8
-	db $4, $6, $9 ; CeladonMart3Text9
-	db $6, $2, $a ; CeladonMart3Text10
-	db $6, $3, $b ; CeladonMart3Text11
-	db $6, $5, $c ; CeladonMart3Text12
-	db $6, $6, $d ; CeladonMart3Text13
-	db $1, $e, $e ; CeladonMart3Text14
-	db $1, $4, $f ; CeladonMart3Text15
-	db $1, $6, $10 ; CeladonMart3Text16
-	db $1, $a, $11 ; CeladonMart3Text17
+	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, $10, $5, STAY, NONE, $1 ; person
-	object SPRITE_GAMEBOY_KID_COPY, $b, $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
+	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
-	EVENT_DISP CELADON_MART_3_WIDTH, $1, $c ; CELADON_MART_4
-	EVENT_DISP CELADON_MART_3_WIDTH, $1, $10 ; CELADON_MART_2
-	EVENT_DISP CELADON_MART_3_WIDTH, $1, $1 ; CELADON_MART_ELEVATOR
+	warp_to 12, 1, CELADON_MART_3_WIDTH ; CELADON_MART_4
+	warp_to 16, 1, CELADON_MART_3_WIDTH ; CELADON_MART_2
+	warp_to 1, 1, CELADON_MART_3_WIDTH ; CELADON_MART_ELEVATOR
--- a/data/mapObjects/celadonmart4.asm
+++ b/data/mapObjects/celadonmart4.asm
@@ -1,20 +1,20 @@
 CeladonMart4Object:
 	db $f ; border block
 
-	db $3 ; warps
-	db $1, $c, $0, CELADON_MART_3
-	db $1, $10, $1, CELADON_MART_5
-	db $1, $1, $0, CELADON_MART_ELEVATOR
+	db 3 ; warps
+	warp 12, 1, 0, CELADON_MART_3
+	warp 16, 1, 1, CELADON_MART_5
+	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db $1 ; signs
-	db $1, $e, $4 ; CeladonMart4Text4
+	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, $f, $5, WALK, $2, $2 ; person
-	object SPRITE_BUG_CATCHER, $5, $2, WALK, $2, $3 ; person
+	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
-	EVENT_DISP CELADON_MART_4_WIDTH, $1, $c ; CELADON_MART_3
-	EVENT_DISP CELADON_MART_4_WIDTH, $1, $10 ; CELADON_MART_5
-	EVENT_DISP CELADON_MART_4_WIDTH, $1, $1 ; CELADON_MART_ELEVATOR
+	warp_to 12, 1, CELADON_MART_4_WIDTH ; CELADON_MART_3
+	warp_to 16, 1, CELADON_MART_4_WIDTH ; CELADON_MART_5
+	warp_to 1, 1, CELADON_MART_4_WIDTH ; CELADON_MART_ELEVATOR
--- a/data/mapObjects/celadonmart5.asm
+++ b/data/mapObjects/celadonmart5.asm
@@ -1,21 +1,21 @@
 CeladonMart5Object:
 	db $f ; border block
 
-	db $3 ; warps
-	db $1, $c, $0, CELADON_MART_ROOF
-	db $1, $10, $1, CELADON_MART_4
-	db $1, $1, $0, CELADON_MART_ELEVATOR
+	db 3 ; warps
+	warp 12, 1, 0, CELADON_MART_ROOF
+	warp 16, 1, 1, CELADON_MART_4
+	warp 1, 1, 0, CELADON_MART_ELEVATOR
 
-	db $1 ; signs
-	db $1, $e, $5 ; CeladonMart5Text5
+	db 1 ; signs
+	sign 14, 1, 5 ; CeladonMart5Text5
 
-	db $4 ; objects
-	object SPRITE_GENTLEMAN, $e, $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
+	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
-	EVENT_DISP CELADON_MART_5_WIDTH, $1, $c ; CELADON_MART_ROOF
-	EVENT_DISP CELADON_MART_5_WIDTH, $1, $10 ; CELADON_MART_4
-	EVENT_DISP CELADON_MART_5_WIDTH, $1, $1 ; CELADON_MART_ELEVATOR
+	warp_to 12, 1, CELADON_MART_5_WIDTH ; CELADON_MART_ROOF
+	warp_to 16, 1, CELADON_MART_5_WIDTH ; CELADON_MART_4
+	warp_to 1, 1, CELADON_MART_5_WIDTH ; CELADON_MART_ELEVATOR
--- a/data/mapObjects/celadonmartelevator.asm
+++ b/data/mapObjects/celadonmartelevator.asm
@@ -1,15 +1,15 @@
 CeladonMartElevatorObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $3, $1, $5, CELADON_MART_1
-	db $3, $2, $5, CELADON_MART_1
+	db 2 ; warps
+	warp 1, 3, 5, CELADON_MART_1
+	warp 2, 3, 5, CELADON_MART_1
 
-	db $1 ; signs
-	db $0, $3, $1 ; CeladonMartElevatorText1
+	db 1 ; signs
+	sign 3, 0, 1 ; CeladonMartElevatorText1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $1 ; CELADON_MART_1
-	EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $2 ; CELADON_MART_1
+	warp_to 1, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1
+	warp_to 2, 3, CELADON_MART_ELEVATOR_WIDTH ; CELADON_MART_1
--- a/data/mapObjects/celadonmartroof.asm
+++ b/data/mapObjects/celadonmartroof.asm
@@ -1,18 +1,18 @@
 CeladonMartRoofObject:
 	db $42 ; border block
 
-	db $1 ; warps
-	db $2, $f, $0, CELADON_MART_5
+	db 1 ; warps
+	warp 15, 2, 0, CELADON_MART_5
 
-	db $4 ; signs
-	db $1, $a, $3 ; CeladonMartRoofText3
-	db $1, $b, $4 ; CeladonMartRoofText4
-	db $2, $c, $5 ; CeladonMartRoofText5
-	db $2, $d, $6 ; CeladonMartRoofText6
+	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, $a, $4, STAY, LEFT, $1 ; person
-	object SPRITE_LITTLE_GIRL, $5, $5, WALK, $0, $2 ; person
+	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
-	EVENT_DISP CELADON_MART_ROOF_WIDTH, $2, $f ; CELADON_MART_5
+	warp_to 15, 2, CELADON_MART_ROOF_WIDTH ; CELADON_MART_5
--- a/data/mapObjects/celadonpokecenter.asm
+++ b/data/mapObjects/celadonpokecenter.asm
@@ -1,18 +1,18 @@
 CeladonPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $5, $ff
-	db $7, $4, $5, $ff
+	db 2 ; warps
+	warp 3, 7, 5, -1
+	warp 4, 7, 5, -1
 
-	db $0 ; signs
+	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, $a, $5, WALK, $0, $3 ; person
-	object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, CELADON_POKECENTER_WIDTH
+	warp_to 4, 7, CELADON_POKECENTER_WIDTH
--- a/data/mapObjects/celadonprizeroom.asm
+++ b/data/mapObjects/celadonprizeroom.asm
@@ -1,19 +1,19 @@
 CeladonPrizeRoomObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $7, $4, $9, $ff
-	db $7, $5, $9, $ff
+	db 2 ; warps
+	warp 4, 7, 9, -1
+	warp 5, 7, 9, -1
 
-	db $3 ; signs
-	db $2, $2, $3 ; CeladonPrizeRoomText3
-	db $2, $4, $4 ; CeladonPrizeRoomText4
-	db $2, $6, $5 ; CeladonPrizeRoomText5
+	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
+	db 2 ; objects
+	object SPRITE_BALDING_GUY, 1, 4, STAY, NONE, 1 ; person
+	object SPRITE_GAMBLER, 7, 3, WALK, 2, 2 ; person
 
 	; warp-to
-	EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $4
-	EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $5
+	warp_to 4, 7, CELADON_PRIZE_ROOM_WIDTH
+	warp_to 5, 7, CELADON_PRIZE_ROOM_WIDTH
--- a/data/mapObjects/ceruleancity.asm
+++ b/data/mapObjects/ceruleancity.asm
@@ -1,47 +1,47 @@
 CeruleanCityObject:
 	db $f ; border block
 
-	db $a ; warps
-	db $b, $1b, $0, TRASHED_HOUSE
-	db $f, $d, $0, CERULEAN_HOUSE_1
-	db $11, $13, $0, CERULEAN_POKECENTER
-	db $13, $1e, $0, CERULEAN_GYM
-	db $19, $d, $0, BIKE_SHOP
-	db $19, $19, $0, CERULEAN_MART
-	db $b, $4, $0, UNKNOWN_DUNGEON_1
-	db $9, $1b, $2, TRASHED_HOUSE
-	db $b, $9, $1, CERULEAN_HOUSE_2
-	db $9, $9, $0, CERULEAN_HOUSE_2
+	db 10 ; warps
+	warp 27, 11, 0, TRASHED_HOUSE
+	warp 13, 15, 0, CERULEAN_HOUSE_1
+	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, UNKNOWN_DUNGEON_1
+	warp 27, 9, 2, TRASHED_HOUSE
+	warp 9, 11, 1, CERULEAN_HOUSE_2
+	warp 9, 9, 0, CERULEAN_HOUSE_2
 
-	db $6 ; signs
-	db $13, $17, $c ; CeruleanCityText12
-	db $1d, $11, $d ; CeruleanCityText13
-	db $19, $1a, $e ; MartSignText
-	db $11, $14, $f ; PokeCenterSignText
-	db $19, $b, $10 ; CeruleanCityText16
-	db $15, $1b, $11 ; CeruleanCityText17
+	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 $b ; objects
-	object SPRITE_BLUE, $14, $2, STAY, DOWN, $1 ; person
-	object SPRITE_ROCKET, $1e, $8, STAY, NONE, $2, OPP_ROCKET, $5
-	object SPRITE_BLACK_HAIR_BOY_1, $1f, $14, STAY, DOWN, $3 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $f, $12, WALK, $1, $4 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $9, $15, WALK, $2, $5 ; person
-	object SPRITE_GUARD, $1c, $c, STAY, DOWN, $6 ; person
-	object SPRITE_LASS, $1d, $1a, STAY, LEFT, $7 ; person
-	object SPRITE_SLOWBRO, $1c, $1a, STAY, DOWN, $8 ; person
-	object SPRITE_LASS, $9, $1b, WALK, $2, $9 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $4, $c, STAY, DOWN, $a ; person
-	object SPRITE_GUARD, $1b, $c, STAY, DOWN, $b ; person
+	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
-	EVENT_DISP CERULEAN_CITY_WIDTH, $b, $1b ; TRASHED_HOUSE
-	EVENT_DISP CERULEAN_CITY_WIDTH, $f, $d ; CERULEAN_HOUSE_1
-	EVENT_DISP CERULEAN_CITY_WIDTH, $11, $13 ; CERULEAN_POKECENTER
-	EVENT_DISP CERULEAN_CITY_WIDTH, $13, $1e ; CERULEAN_GYM
-	EVENT_DISP CERULEAN_CITY_WIDTH, $19, $d ; BIKE_SHOP
-	EVENT_DISP CERULEAN_CITY_WIDTH, $19, $19 ; CERULEAN_MART
-	EVENT_DISP CERULEAN_CITY_WIDTH, $b, $4 ; UNKNOWN_DUNGEON_1
-	EVENT_DISP CERULEAN_CITY_WIDTH, $9, $1b ; TRASHED_HOUSE
-	EVENT_DISP CERULEAN_CITY_WIDTH, $b, $9 ; CERULEAN_HOUSE_2
-	EVENT_DISP CERULEAN_CITY_WIDTH, $9, $9 ; CERULEAN_HOUSE_2
+	warp_to 27, 11, CERULEAN_CITY_WIDTH ; TRASHED_HOUSE
+	warp_to 13, 15, CERULEAN_CITY_WIDTH ; CERULEAN_HOUSE_1
+	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 ; UNKNOWN_DUNGEON_1
+	warp_to 27, 9, CERULEAN_CITY_WIDTH ; TRASHED_HOUSE
+	warp_to 9, 11, CERULEAN_CITY_WIDTH ; CERULEAN_HOUSE_2
+	warp_to 9, 9, CERULEAN_CITY_WIDTH ; CERULEAN_HOUSE_2
--- a/data/mapObjects/ceruleangym.asm
+++ b/data/mapObjects/ceruleangym.asm
@@ -1,18 +1,18 @@
 CeruleanGymObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $d, $4, $3, $ff
-	db $d, $5, $3, $ff
+	db 2 ; warps
+	warp 4, 13, 3, -1
+	warp 5, 13, 3, -1
 
-	db $0 ; signs
+	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, $a, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP CERULEAN_GYM_WIDTH, $d, $4
-	EVENT_DISP CERULEAN_GYM_WIDTH, $d, $5
+	warp_to 4, 13, CERULEAN_GYM_WIDTH
+	warp_to 5, 13, CERULEAN_GYM_WIDTH
--- a/data/mapObjects/ceruleanhouse1.asm
+++ b/data/mapObjects/ceruleanhouse1.asm
@@ -1,16 +1,16 @@
 CeruleanHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $1, $ff
-	db $7, $3, $1, $ff
+	db 2 ; warps
+	warp 2, 7, 1, -1
+	warp 3, 7, 1, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $3
+	warp_to 2, 7, CERULEAN_HOUSE_1_WIDTH
+	warp_to 3, 7, CERULEAN_HOUSE_1_WIDTH
--- a/data/mapObjects/ceruleanhouse2.asm
+++ b/data/mapObjects/ceruleanhouse2.asm
@@ -1,17 +1,17 @@
 CeruleanHouse2Object:
 	db $c ; border block
 
-	db $3 ; warps
-	db $0, $2, $9, $ff
-	db $7, $2, $8, $ff
-	db $7, $3, $8, $ff
+	db 3 ; warps
+	warp 2, 0, 9, -1
+	warp 2, 7, 8, -1
+	warp 3, 7, 8, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FAT_BALD_GUY, $5, $3, STAY, RIGHT, $1 ; person
+	db 1 ; objects
+	object SPRITE_FAT_BALD_GUY, 5, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
-	EVENT_DISP CERULEAN_HOUSE_2_WIDTH, $0, $2
-	EVENT_DISP CERULEAN_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP CERULEAN_HOUSE_2_WIDTH, $7, $3
+	warp_to 2, 0, CERULEAN_HOUSE_2_WIDTH
+	warp_to 2, 7, CERULEAN_HOUSE_2_WIDTH
+	warp_to 3, 7, CERULEAN_HOUSE_2_WIDTH
--- a/data/mapObjects/ceruleanhousetrashed.asm
+++ b/data/mapObjects/ceruleanhousetrashed.asm
@@ -1,19 +1,19 @@
 CeruleanHouseTrashedObject:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $0, $3, $7, $ff
+	db 3 ; warps
+	warp 2, 7, 0, -1
+	warp 3, 7, 0, -1
+	warp 3, 0, 7, -1
 
-	db $1 ; signs
-	db $0, $3, $3 ; CeruleanHouseTrashedText3
+	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
+	db 2 ; objects
+	object SPRITE_FISHER, 2, 1, STAY, DOWN, 1 ; person
+	object SPRITE_GIRL, 5, 6, WALK, 2, 2 ; person
 
 	; warp-to
-	EVENT_DISP TRASHED_HOUSE_WIDTH, $7, $2
-	EVENT_DISP TRASHED_HOUSE_WIDTH, $7, $3
-	EVENT_DISP TRASHED_HOUSE_WIDTH, $0, $3
+	warp_to 2, 7, TRASHED_HOUSE_WIDTH
+	warp_to 3, 7, TRASHED_HOUSE_WIDTH
+	warp_to 3, 0, TRASHED_HOUSE_WIDTH
--- a/data/mapObjects/ceruleanmart.asm
+++ b/data/mapObjects/ceruleanmart.asm
@@ -1,17 +1,17 @@
 CeruleanMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $5, $ff
-	db $7, $4, $5, $ff
+	db 2 ; warps
+	warp 3, 7, 5, -1
+	warp 4, 7, 5, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CERULEAN_MART_WIDTH, $7, $3
-	EVENT_DISP CERULEAN_MART_WIDTH, $7, $4
+	warp_to 3, 7, CERULEAN_MART_WIDTH
+	warp_to 4, 7, CERULEAN_MART_WIDTH
--- a/data/mapObjects/ceruleanpokecenter.asm
+++ b/data/mapObjects/ceruleanpokecenter.asm
@@ -1,18 +1,18 @@
 CeruleanPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $2, $ff
-	db $7, $4, $2, $ff
+	db 2 ; warps
+	warp 3, 7, 2, -1
+	warp 4, 7, 2, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $a, $5, WALK, $0, $2 ; person
-	object SPRITE_GENTLEMAN, $4, $3, STAY, DOWN, $3 ; person
-	object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, CERULEAN_POKECENTER_WIDTH
+	warp_to 4, 7, CERULEAN_POKECENTER_WIDTH
--- a/data/mapObjects/cinnabargym.asm
+++ b/data/mapObjects/cinnabargym.asm
@@ -1,23 +1,23 @@
 CinnabarGymObject:
 	db $2e ; border block
 
-	db $2 ; warps
-	db $11, $10, $1, $ff
-	db $11, $11, $1, $ff
+	db 2 ; warps
+	warp 16, 17, 1, -1
+	warp 17, 17, 1, -1
 
-	db $0 ; signs
+	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, $11, $2, STAY, DOWN, $2, OPP_SUPER_NERD, $9
-	object SPRITE_BLACK_HAIR_BOY_2, $11, $8, STAY, DOWN, $3, OPP_BURGLAR, $4
-	object SPRITE_BLACK_HAIR_BOY_2, $b, $4, STAY, DOWN, $4, OPP_SUPER_NERD, $a
-	object SPRITE_BLACK_HAIR_BOY_2, $b, $8, STAY, DOWN, $5, OPP_BURGLAR, $5
-	object SPRITE_BLACK_HAIR_BOY_2, $b, $e, STAY, DOWN, $6, OPP_SUPER_NERD, $b
-	object SPRITE_BLACK_HAIR_BOY_2, $3, $e, STAY, DOWN, $7, OPP_BURGLAR, $6
-	object SPRITE_BLACK_HAIR_BOY_2, $3, $8, STAY, DOWN, $8, OPP_SUPER_NERD, $c
-	object SPRITE_GYM_HELPER, $10, $d, STAY, DOWN, $9 ; person
+	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
-	EVENT_DISP CINNABAR_GYM_WIDTH, $11, $10
-	EVENT_DISP CINNABAR_GYM_WIDTH, $11, $11
+	warp_to 16, 17, CINNABAR_GYM_WIDTH
+	warp_to 17, 17, CINNABAR_GYM_WIDTH
--- a/data/mapObjects/cinnabarisland.asm
+++ b/data/mapObjects/cinnabarisland.asm
@@ -1,27 +1,27 @@
 CinnabarIslandObject:
 	db $43 ; border block
 
-	db $5 ; warps
-	db $3, $6, $1, MANSION_1
-	db $3, $12, $0, CINNABAR_GYM
-	db $9, $6, $0, CINNABAR_LAB_1
-	db $b, $b, $0, CINNABAR_POKECENTER
-	db $b, $f, $0, CINNABAR_MART
+	db 5 ; warps
+	warp 6, 3, 1, MANSION_1
+	warp 18, 3, 0, CINNABAR_GYM
+	warp 6, 9, 0, CINNABAR_LAB_1
+	warp 11, 11, 0, CINNABAR_POKECENTER
+	warp 15, 11, 0, CINNABAR_MART
 
-	db $5 ; signs
-	db $5, $9, $3 ; CinnabarIslandText3
-	db $b, $10, $4 ; MartSignText
-	db $b, $c, $5 ; PokeCenterSignText
-	db $b, $9, $6 ; CinnabarIslandText6
-	db $3, $d, $7 ; CinnabarIslandText7
+	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, $c, $5, WALK, $2, $1 ; person
-	object SPRITE_GAMBLER, $e, $6, STAY, NONE, $2 ; person
+	db 2 ; objects
+	object SPRITE_GIRL, 12, 5, WALK, 2, 1 ; person
+	object SPRITE_GAMBLER, 14, 6, STAY, NONE, 2 ; person
 
 	; warp-to
-	EVENT_DISP CINNABAR_ISLAND_WIDTH, $3, $6 ; MANSION_1
-	EVENT_DISP CINNABAR_ISLAND_WIDTH, $3, $12 ; CINNABAR_GYM
-	EVENT_DISP CINNABAR_ISLAND_WIDTH, $9, $6 ; CINNABAR_LAB_1
-	EVENT_DISP CINNABAR_ISLAND_WIDTH, $b, $b ; CINNABAR_POKECENTER
-	EVENT_DISP CINNABAR_ISLAND_WIDTH, $b, $f ; CINNABAR_MART
+	warp_to 6, 3, CINNABAR_ISLAND_WIDTH ; MANSION_1
+	warp_to 18, 3, CINNABAR_ISLAND_WIDTH ; CINNABAR_GYM
+	warp_to 6, 9, CINNABAR_ISLAND_WIDTH ; CINNABAR_LAB_1
+	warp_to 11, 11, CINNABAR_ISLAND_WIDTH ; CINNABAR_POKECENTER
+	warp_to 15, 11, CINNABAR_ISLAND_WIDTH ; CINNABAR_MART
--- a/data/mapObjects/cinnabarmart.asm
+++ b/data/mapObjects/cinnabarmart.asm
@@ -1,17 +1,17 @@
 CinnabarMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
+	db 2 ; warps
+	warp 3, 7, 4, -1
+	warp 4, 7, 4, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CINNABAR_MART_WIDTH, $7, $3
-	EVENT_DISP CINNABAR_MART_WIDTH, $7, $4
+	warp_to 3, 7, CINNABAR_MART_WIDTH
+	warp_to 4, 7, CINNABAR_MART_WIDTH
--- a/data/mapObjects/cinnabarpokecenter.asm
+++ b/data/mapObjects/cinnabarpokecenter.asm
@@ -1,18 +1,18 @@
 CinnabarPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
+	db 2 ; warps
+	warp 3, 7, 3, -1
+	warp 4, 7, 3, -1
 
-	db $0 ; signs
+	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, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, CINNABAR_POKECENTER_WIDTH
+	warp_to 4, 7, CINNABAR_POKECENTER_WIDTH
--- a/data/mapObjects/colosseum.asm
+++ b/data/mapObjects/colosseum.asm
@@ -1,9 +1,9 @@
 ColosseumObject:
 	db $e ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_RED, $2, $2, STAY, $0, $1 ; person
+	db 1 ; objects
+	object SPRITE_RED, 2, 2, STAY, 0, 1 ; person
--- a/data/mapObjects/copycatshouse1f.asm
+++ b/data/mapObjects/copycatshouse1f.asm
@@ -1,19 +1,19 @@
 CopycatsHouse1FObject:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $1, $7, $0, COPYCATS_HOUSE_2F
+	db 3 ; warps
+	warp 2, 7, 0, -1
+	warp 3, 7, 0, -1
+	warp 7, 1, 0, COPYCATS_HOUSE_2F
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP COPYCATS_HOUSE_1F_WIDTH, $7, $2
-	EVENT_DISP COPYCATS_HOUSE_1F_WIDTH, $7, $3
-	EVENT_DISP COPYCATS_HOUSE_1F_WIDTH, $1, $7 ; COPYCATS_HOUSE_2F
+	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
--- a/data/mapObjects/copycatshouse2f.asm
+++ b/data/mapObjects/copycatshouse2f.asm
@@ -1,19 +1,19 @@
 CopycatsHouse2FObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $1, $7, $2, COPYCATS_HOUSE_1F
+	db 1 ; warps
+	warp 7, 1, 2, COPYCATS_HOUSE_1F
 
-	db $2 ; signs
-	db $5, $3, $6 ; CopycatsHouse2FText6
-	db $1, $0, $7 ; CopycatsHouse2FText7
+	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
+	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
-	EVENT_DISP COPYCATS_HOUSE_2F_WIDTH, $1, $7 ; COPYCATS_HOUSE_1F
+	warp_to 7, 1, COPYCATS_HOUSE_2F_WIDTH ; COPYCATS_HOUSE_1F
--- a/data/mapObjects/daycarem.asm
+++ b/data/mapObjects/daycarem.asm
@@ -1,15 +1,15 @@
 DayCareMObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
+	db 2 ; warps
+	warp 2, 7, 4, -1
+	warp 3, 7, 4, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GENTLEMAN, $2, $3, STAY, RIGHT, $1 ; person
+	db 1 ; objects
+	object SPRITE_GENTLEMAN, 2, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
-	EVENT_DISP DAYCAREM_WIDTH, $7, $2
-	EVENT_DISP DAYCAREM_WIDTH, $7, $3
+	warp_to 2, 7, DAYCAREM_WIDTH
+	warp_to 3, 7, DAYCAREM_WIDTH
--- a/data/mapObjects/diglettscave.asm
+++ b/data/mapObjects/diglettscave.asm
@@ -1,14 +1,14 @@
 DiglettsCaveObject:
 	db $19 ; border block
 
-	db $2 ; warps
-	db $5, $5, $2, DIGLETTS_CAVE_EXIT
-	db $1f, $25, $2, DIGLETTS_CAVE_ENTRANCE
+	db 2 ; warps
+	warp 5, 5, 2, DIGLETTS_CAVE_EXIT
+	warp 37, 31, 2, DIGLETTS_CAVE_ENTRANCE
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP DIGLETTS_CAVE_WIDTH, $5, $5 ; DIGLETTS_CAVE_EXIT
-	EVENT_DISP DIGLETTS_CAVE_WIDTH, $1f, $25 ; DIGLETTS_CAVE_ENTRANCE
+	warp_to 5, 5, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_EXIT
+	warp_to 37, 31, DIGLETTS_CAVE_WIDTH ; DIGLETTS_CAVE_ENTRANCE
--- a/data/mapObjects/diglettscaveroute11.asm
+++ b/data/mapObjects/diglettscaveroute11.asm
@@ -1,17 +1,17 @@
 DiglettsCaveEntranceRoute11Object:
 	db $7d ; border block
 
-	db $3 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
-	db $4, $4, $1, DIGLETTS_CAVE
+	db 3 ; warps
+	warp 2, 7, 4, -1
+	warp 3, 7, 4, -1
+	warp 4, 4, 1, DIGLETTS_CAVE
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GAMBLER, $2, $3, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_GAMBLER, 2, 3, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP DIGLETTS_CAVE_ENTRANCE_WIDTH, $7, $2
-	EVENT_DISP DIGLETTS_CAVE_ENTRANCE_WIDTH, $7, $3
-	EVENT_DISP DIGLETTS_CAVE_ENTRANCE_WIDTH, $4, $4 ; DIGLETTS_CAVE
+	warp_to 2, 7, DIGLETTS_CAVE_ENTRANCE_WIDTH
+	warp_to 3, 7, DIGLETTS_CAVE_ENTRANCE_WIDTH
+	warp_to 4, 4, DIGLETTS_CAVE_ENTRANCE_WIDTH ; DIGLETTS_CAVE
--- a/data/mapObjects/diglettscaveroute2.asm
+++ b/data/mapObjects/diglettscaveroute2.asm
@@ -1,17 +1,17 @@
 DiglettsCaveRoute2Object:
 	db $7d ; border block
 
-	db $3 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $4, $4, $0, DIGLETTS_CAVE
+	db 3 ; warps
+	warp 2, 7, 0, -1
+	warp 3, 7, 0, -1
+	warp 4, 4, 0, DIGLETTS_CAVE
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FISHER, $3, $3, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_FISHER, 3, 3, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP DIGLETTS_CAVE_EXIT_WIDTH, $7, $2
-	EVENT_DISP DIGLETTS_CAVE_EXIT_WIDTH, $7, $3
-	EVENT_DISP DIGLETTS_CAVE_EXIT_WIDTH, $4, $4 ; DIGLETTS_CAVE
+	warp_to 2, 7, DIGLETTS_CAVE_EXIT_WIDTH
+	warp_to 3, 7, DIGLETTS_CAVE_EXIT_WIDTH
+	warp_to 4, 4, DIGLETTS_CAVE_EXIT_WIDTH ; DIGLETTS_CAVE
--- a/data/mapObjects/fanclub.asm
+++ b/data/mapObjects/fanclub.asm
@@ -1,22 +1,22 @@
 FanClubObject:
 	db $d ; border block
 
-	db $2 ; warps
-	db $7, $2, $1, $ff
-	db $7, $3, $1, $ff
+	db 2 ; warps
+	warp 2, 7, 1, -1
+	warp 3, 7, 1, -1
 
-	db $2 ; signs
-	db $0, $1, $7 ; FanClubText7
-	db $0, $6, $8 ; FanClubText8
+	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
+	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
-	EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $2
-	EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $3
+	warp_to 2, 7, POKEMON_FAN_CLUB_WIDTH
+	warp_to 3, 7, POKEMON_FAN_CLUB_WIDTH
--- a/data/mapObjects/fightingdojo.asm
+++ b/data/mapObjects/fightingdojo.asm
@@ -1,21 +1,21 @@
 FightingDojoObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $b, $4, $1, $ff
-	db $b, $5, $1, $ff
+	db 2 ; warps
+	warp 4, 11, 1, -1
+	warp 5, 11, 1, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $4
-	EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $5
+	warp_to 4, 11, FIGHTING_DOJO_WIDTH
+	warp_to 5, 11, FIGHTING_DOJO_WIDTH
--- a/data/mapObjects/fuchsiacity.asm
+++ b/data/mapObjects/fuchsiacity.asm
@@ -1,52 +1,52 @@
 FuchsiaCityObject:
 	db $f ; border block
 
-	db $9 ; warps
-	db $d, $5, $0, FUCHSIA_MART
-	db $1b, $b, $0, FUCHSIA_HOUSE_1
-	db $1b, $13, $0, FUCHSIA_POKECENTER
-	db $1b, $1b, $0, FUCHSIA_HOUSE_2
-	db $3, $12, $0, SAFARI_ZONE_ENTRANCE
-	db $1b, $5, $0, FUCHSIA_GYM
-	db $d, $16, $0, FUCHSIA_MEETING_ROOM
-	db $1b, $1f, $1, FUCHSIA_HOUSE_3
-	db $18, $1f, $0, FUCHSIA_HOUSE_3
+	db 9 ; warps
+	warp 5, 13, 0, FUCHSIA_MART
+	warp 11, 27, 0, FUCHSIA_HOUSE_1
+	warp 19, 27, 0, FUCHSIA_POKECENTER
+	warp 27, 27, 0, FUCHSIA_HOUSE_2
+	warp 18, 3, 0, SAFARI_ZONE_ENTRANCE
+	warp 5, 27, 0, FUCHSIA_GYM
+	warp 22, 13, 0, FUCHSIA_MEETING_ROOM
+	warp 31, 27, 1, FUCHSIA_HOUSE_3
+	warp 31, 24, 0, FUCHSIA_HOUSE_3
 
-	db $e ; signs
-	db $17, $f, $b ; FuchsiaCityText11
-	db $f, $19, $c ; FuchsiaCityText12
-	db $5, $11, $d ; FuchsiaCityText13
-	db $d, $6, $e ; MartSignText
-	db $1b, $14, $f ; PokeCenterSignText
-	db $1d, $1b, $10 ; FuchsiaCityText16
-	db $f, $15, $11 ; FuchsiaCityText17
-	db $1d, $5, $12 ; FuchsiaCityText18
-	db $7, $21, $13 ; FuchsiaCityText19
-	db $7, $1b, $14 ; FuchsiaCityText20
-	db $7, $d, $15 ; FuchsiaCityText21
-	db $d, $1f, $16 ; FuchsiaCityText22
-	db $f, $d, $17 ; FuchsiaCityText23
-	db $7, $7, $18 ; FuchsiaCityText24
+	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 $a ; objects
-	object SPRITE_BUG_CATCHER, $a, $c, WALK, $2, $1 ; person
-	object SPRITE_GAMBLER, $1c, $11, WALK, $2, $2 ; person
-	object SPRITE_FISHER2, $1e, $e, STAY, DOWN, $3 ; person
-	object SPRITE_BUG_CATCHER, $18, $8, STAY, UP, $4 ; person
-	object SPRITE_CLEFAIRY, $1f, $5, WALK, $0, $5 ; person
-	object SPRITE_BALL, $19, $6, STAY, NONE, $6 ; person
-	object SPRITE_SLOWBRO, $c, $6, WALK, $2, $7 ; person
-	object SPRITE_SLOWBRO, $1e, $c, WALK, $2, $8 ; person
-	object SPRITE_SEEL, $8, $11, WALK, $0, $9 ; person
-	object SPRITE_OMANYTE, $6, $5, STAY, NONE, $a ; person
+	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
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $d, $5 ; FUCHSIA_MART
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $1b, $b ; FUCHSIA_HOUSE_1
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $1b, $13 ; FUCHSIA_POKECENTER
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $1b, $1b ; FUCHSIA_HOUSE_2
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $3, $12 ; SAFARI_ZONE_ENTRANCE
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $1b, $5 ; FUCHSIA_GYM
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $d, $16 ; FUCHSIA_MEETING_ROOM
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $1b, $1f ; FUCHSIA_HOUSE_3
-	EVENT_DISP FUCHSIA_CITY_WIDTH, $18, $1f ; FUCHSIA_HOUSE_3
+	warp_to 5, 13, FUCHSIA_CITY_WIDTH ; FUCHSIA_MART
+	warp_to 11, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_HOUSE_1
+	warp_to 19, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_POKECENTER
+	warp_to 27, 27, FUCHSIA_CITY_WIDTH ; FUCHSIA_HOUSE_2
+	warp_to 18, 3, FUCHSIA_CITY_WIDTH ; SAFARI_ZONE_ENTRANCE
+	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_HOUSE_3
+	warp_to 31, 24, FUCHSIA_CITY_WIDTH ; FUCHSIA_HOUSE_3
--- a/data/mapObjects/fuchsiagym.asm
+++ b/data/mapObjects/fuchsiagym.asm
@@ -1,22 +1,22 @@
 FuchsiaGymObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $11, $4, $5, $ff
-	db $11, $5, $5, $ff
+	db 2 ; warps
+	warp 4, 17, 5, -1
+	warp 5, 17, 5, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $8 ; objects
-	object SPRITE_BLACKBELT, $4, $a, STAY, DOWN, $1, OPP_KOGA, $1
-	object SPRITE_ROCKER, $8, $d, STAY, DOWN, $2, OPP_JUGGLER, $7
-	object SPRITE_ROCKER, $7, $8, STAY, RIGHT, $3, OPP_JUGGLER, $3
-	object SPRITE_ROCKER, $1, $c, 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, $f, STAY, DOWN, $8 ; person
+	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
-	EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $4
-	EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $5
+	warp_to 4, 17, FUCHSIA_GYM_WIDTH
+	warp_to 5, 17, FUCHSIA_GYM_WIDTH
--- a/data/mapObjects/fuchsiahouse1.asm
+++ b/data/mapObjects/fuchsiahouse1.asm
@@ -1,17 +1,17 @@
 FuchsiaHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $1, $ff
-	db $7, $3, $1, $ff
+	db 2 ; warps
+	warp 2, 7, 1, -1
+	warp 3, 7, 1, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $3
+	warp_to 2, 7, FUCHSIA_HOUSE_1_WIDTH
+	warp_to 3, 7, FUCHSIA_HOUSE_1_WIDTH
--- a/data/mapObjects/fuchsiahouse2.asm
+++ b/data/mapObjects/fuchsiahouse2.asm
@@ -1,19 +1,19 @@
 FuchsiaHouse2Object:
 	db $17 ; border block
 
-	db $2 ; warps
-	db $7, $4, $3, $ff
-	db $7, $5, $3, $ff
+	db 2 ; warps
+	warp 4, 7, 3, -1
+	warp 5, 7, 3, -1
 
-	db $2 ; signs
-	db $3, $4, $4 ; FuchsiaHouse2Text4
-	db $3, $5, $5 ; FuchsiaHouse2Text5
+	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
+	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
-	EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $4
-	EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $5
+	warp_to 4, 7, FUCHSIA_HOUSE_2_WIDTH
+	warp_to 5, 7, FUCHSIA_HOUSE_2_WIDTH
--- a/data/mapObjects/fuchsiahouse3.asm
+++ b/data/mapObjects/fuchsiahouse3.asm
@@ -1,17 +1,17 @@
 FuchsiaHouse3Object:
 	db $c ; border block
 
-	db $3 ; warps
-	db $0, $2, $8, $ff
-	db $7, $2, $7, $ff
-	db $7, $3, $7, $ff
+	db 3 ; warps
+	warp 2, 0, 8, -1
+	warp 2, 7, 7, -1
+	warp 3, 7, 7, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FISHER, $5, $3, STAY, RIGHT, $1 ; person
+	db 1 ; objects
+	object SPRITE_FISHER, 5, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
-	EVENT_DISP FUCHSIA_HOUSE_3_WIDTH, $0, $2
-	EVENT_DISP FUCHSIA_HOUSE_3_WIDTH, $7, $2
-	EVENT_DISP FUCHSIA_HOUSE_3_WIDTH, $7, $3
+	warp_to 2, 0, FUCHSIA_HOUSE_3_WIDTH
+	warp_to 2, 7, FUCHSIA_HOUSE_3_WIDTH
+	warp_to 3, 7, FUCHSIA_HOUSE_3_WIDTH
--- a/data/mapObjects/fuchsiamart.asm
+++ b/data/mapObjects/fuchsiamart.asm
@@ -1,17 +1,17 @@
 FuchsiaMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
+	db 2 ; warps
+	warp 3, 7, 0, -1
+	warp 4, 7, 0, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP FUCHSIA_MART_WIDTH, $7, $3
-	EVENT_DISP FUCHSIA_MART_WIDTH, $7, $4
+	warp_to 3, 7, FUCHSIA_MART_WIDTH
+	warp_to 4, 7, FUCHSIA_MART_WIDTH
--- a/data/mapObjects/fuchsiameetingroom.asm
+++ b/data/mapObjects/fuchsiameetingroom.asm
@@ -1,17 +1,17 @@
 FuchsiaMeetingRoomObject:
 	db $17 ; border block
 
-	db $2 ; warps
-	db $7, $4, $6, $ff
-	db $7, $5, $6, $ff
+	db 2 ; warps
+	warp 4, 7, 6, -1
+	warp 5, 7, 6, -1
 
-	db $0 ; signs
+	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, $a, $1, STAY, DOWN, $3 ; person
+	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
-	EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $4
-	EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $5
+	warp_to 4, 7, FUCHSIA_MEETING_ROOM_WIDTH
+	warp_to 5, 7, FUCHSIA_MEETING_ROOM_WIDTH
--- a/data/mapObjects/fuchsiapokecenter.asm
+++ b/data/mapObjects/fuchsiapokecenter.asm
@@ -1,18 +1,18 @@
 FuchsiaPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $2, $ff
-	db $7, $4, $2, $ff
+	db 2 ; warps
+	warp 3, 7, 2, -1
+	warp 4, 7, 2, -1
 
-	db $0 ; signs
+	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, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, FUCHSIA_POKECENTER_WIDTH
+	warp_to 4, 7, FUCHSIA_POKECENTER_WIDTH
--- a/data/mapObjects/gary.asm
+++ b/data/mapObjects/gary.asm
@@ -1,20 +1,20 @@
 GaryObject:
 	db $3 ; border block
 
-	db $4 ; warps
-	db $7, $3, $1, LANCES_ROOM
-	db $7, $4, $2, LANCES_ROOM
-	db $0, $3, $0, HALL_OF_FAME
-	db $0, $4, $0, HALL_OF_FAME
+	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 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_BLUE, $4, $2, STAY, DOWN, $1 ; person
-	object SPRITE_OAK, $3, $7, STAY, UP, $2 ; person
+	db 2 ; objects
+	object SPRITE_BLUE, 4, 2, STAY, DOWN, 1 ; person
+	object SPRITE_OAK, 3, 7, STAY, UP, 2 ; person
 
 	; warp-to
-	EVENT_DISP CHAMPIONS_ROOM_WIDTH, $7, $3 ; LANCES_ROOM
-	EVENT_DISP CHAMPIONS_ROOM_WIDTH, $7, $4 ; LANCES_ROOM
-	EVENT_DISP CHAMPIONS_ROOM_WIDTH, $0, $3 ; HALL_OF_FAME
-	EVENT_DISP CHAMPIONS_ROOM_WIDTH, $0, $4 ; HALL_OF_FAME
+	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
--- a/data/mapObjects/halloffameroom.asm
+++ b/data/mapObjects/halloffameroom.asm
@@ -1,15 +1,15 @@
 HallofFameRoomObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $7, $4, $2, CHAMPIONS_ROOM
-	db $7, $5, $3, CHAMPIONS_ROOM
+	db 2 ; warps
+	warp 4, 7, 2, CHAMPIONS_ROOM
+	warp 5, 7, 3, CHAMPIONS_ROOM
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_OAK, $5, $2, STAY, DOWN, $1 ; person
+	db 1 ; objects
+	object SPRITE_OAK, 5, 2, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP HALL_OF_FAME_WIDTH, $7, $4 ; CHAMPIONS_ROOM
-	EVENT_DISP HALL_OF_FAME_WIDTH, $7, $5 ; CHAMPIONS_ROOM
+	warp_to 4, 7, HALL_OF_FAME_WIDTH ; CHAMPIONS_ROOM
+	warp_to 5, 7, HALL_OF_FAME_WIDTH ; CHAMPIONS_ROOM
--- a/data/mapObjects/indigoplateau.asm
+++ b/data/mapObjects/indigoplateau.asm
@@ -1,14 +1,14 @@
 IndigoPlateauObject:
 	db $e ; border block
 
-	db $2 ; warps
-	db $5, $9, $0, INDIGO_PLATEAU_LOBBY
-	db $5, $a, $0, INDIGO_PLATEAU_LOBBY
+	db 2 ; warps
+	warp 9, 5, 0, INDIGO_PLATEAU_LOBBY
+	warp 10, 5, 0, INDIGO_PLATEAU_LOBBY
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $9 ; INDIGO_PLATEAU_LOBBY
-	EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $a ; INDIGO_PLATEAU_LOBBY
+	warp_to 9, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY
+	warp_to 10, 5, INDIGO_PLATEAU_WIDTH ; INDIGO_PLATEAU_LOBBY
--- a/data/mapObjects/indigoplateaulobby.asm
+++ b/data/mapObjects/indigoplateaulobby.asm
@@ -1,21 +1,21 @@
 IndigoPlateauLobbyObject:
 	db $0 ; border block
 
-	db $3 ; warps
-	db $b, $7, $0, $ff
-	db $b, $8, $1, $ff
-	db $0, $8, $0, LORELEIS_ROOM
+	db 3 ; warps
+	warp 7, 11, 0, -1
+	warp 8, 11, 1, -1
+	warp 8, 0, 0, LORELEIS_ROOM
 
-	db $0 ; signs
+	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, $d, $6, STAY, DOWN, $5 ; person
+	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
-	EVENT_DISP INDIGO_PLATEAU_LOBBY_WIDTH, $b, $7
-	EVENT_DISP INDIGO_PLATEAU_LOBBY_WIDTH, $b, $8
-	EVENT_DISP INDIGO_PLATEAU_LOBBY_WIDTH, $0, $8 ; LORELEIS_ROOM
+	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
--- a/data/mapObjects/lab1.asm
+++ b/data/mapObjects/lab1.asm
@@ -1,25 +1,25 @@
 Lab1Object:
 	db $17 ; border block
 
-	db $5 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
-	db $4, $8, $0, CINNABAR_LAB_2
-	db $4, $c, $0, CINNABAR_LAB_3
-	db $4, $10, $0, CINNABAR_LAB_4
+	db 5 ; warps
+	warp 2, 7, 2, -1
+	warp 3, 7, 2, -1
+	warp 8, 4, 0, CINNABAR_LAB_2
+	warp 12, 4, 0, CINNABAR_LAB_3
+	warp 16, 4, 0, CINNABAR_LAB_4
 
-	db $4 ; signs
-	db $2, $3, $2 ; Lab1Text2
-	db $4, $9, $3 ; Lab1Text3
-	db $4, $d, $4 ; Lab1Text4
-	db $4, $11, $5 ; Lab1Text5
+	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
+	db 1 ; objects
+	object SPRITE_FISHER, 1, 3, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP CINNABAR_LAB_1_WIDTH, $7, $2
-	EVENT_DISP CINNABAR_LAB_1_WIDTH, $7, $3
-	EVENT_DISP CINNABAR_LAB_1_WIDTH, $4, $8 ; CINNABAR_LAB_2
-	EVENT_DISP CINNABAR_LAB_1_WIDTH, $4, $c ; CINNABAR_LAB_3
-	EVENT_DISP CINNABAR_LAB_1_WIDTH, $4, $10 ; CINNABAR_LAB_4
+	warp_to 2, 7, CINNABAR_LAB_1_WIDTH
+	warp_to 3, 7, CINNABAR_LAB_1_WIDTH
+	warp_to 8, 4, CINNABAR_LAB_1_WIDTH ; CINNABAR_LAB_2
+	warp_to 12, 4, CINNABAR_LAB_1_WIDTH ; CINNABAR_LAB_3
+	warp_to 16, 4, CINNABAR_LAB_1_WIDTH ; CINNABAR_LAB_4
--- a/data/mapObjects/lab2.asm
+++ b/data/mapObjects/lab2.asm
@@ -1,17 +1,17 @@
 Lab2Object:
 	db $17 ; border block
 
-	db $2 ; warps
-	db $7, $2, $2, CINNABAR_LAB_1
-	db $7, $3, $2, CINNABAR_LAB_1
+	db 2 ; warps
+	warp 2, 7, 2, CINNABAR_LAB_1
+	warp 3, 7, 2, CINNABAR_LAB_1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CINNABAR_LAB_2_WIDTH, $7, $2 ; CINNABAR_LAB_1
-	EVENT_DISP CINNABAR_LAB_2_WIDTH, $7, $3 ; CINNABAR_LAB_1
+	warp_to 2, 7, CINNABAR_LAB_2_WIDTH ; CINNABAR_LAB_1
+	warp_to 3, 7, CINNABAR_LAB_2_WIDTH ; CINNABAR_LAB_1
--- a/data/mapObjects/lab3.asm
+++ b/data/mapObjects/lab3.asm
@@ -1,19 +1,19 @@
 Lab3Object:
 	db $17 ; border block
 
-	db $2 ; warps
-	db $7, $2, $3, CINNABAR_LAB_1
-	db $7, $3, $3, CINNABAR_LAB_1
+	db 2 ; warps
+	warp 2, 7, 3, CINNABAR_LAB_1
+	warp 3, 7, 3, CINNABAR_LAB_1
 
-	db $3 ; signs
-	db $4, $0, $3 ; Lab3Text3
-	db $4, $1, $4 ; Lab3Text4
-	db $1, $2, $5 ; Lab3Text5
+	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
+	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
-	EVENT_DISP CINNABAR_LAB_3_WIDTH, $7, $2 ; CINNABAR_LAB_1
-	EVENT_DISP CINNABAR_LAB_3_WIDTH, $7, $3 ; CINNABAR_LAB_1
+	warp_to 2, 7, CINNABAR_LAB_3_WIDTH ; CINNABAR_LAB_1
+	warp_to 3, 7, CINNABAR_LAB_3_WIDTH ; CINNABAR_LAB_1
--- a/data/mapObjects/lab4.asm
+++ b/data/mapObjects/lab4.asm
@@ -1,16 +1,16 @@
 Lab4Object:
 	db $17 ; border block
 
-	db $2 ; warps
-	db $7, $2, $4, CINNABAR_LAB_1
-	db $7, $3, $4, CINNABAR_LAB_1
+	db 2 ; warps
+	warp 2, 7, 4, CINNABAR_LAB_1
+	warp 3, 7, 4, CINNABAR_LAB_1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP CINNABAR_LAB_4_WIDTH, $7, $2 ; CINNABAR_LAB_1
-	EVENT_DISP CINNABAR_LAB_4_WIDTH, $7, $3 ; CINNABAR_LAB_1
+	warp_to 2, 7, CINNABAR_LAB_4_WIDTH ; CINNABAR_LAB_1
+	warp_to 3, 7, CINNABAR_LAB_4_WIDTH ; CINNABAR_LAB_1
--- a/data/mapObjects/lance.asm
+++ b/data/mapObjects/lance.asm
@@ -1,17 +1,17 @@
 LanceObject:
 	db $3 ; border block
 
-	db $3 ; warps
-	db $10, $18, $2, AGATHAS_ROOM
-	db $0, $5, $0, CHAMPIONS_ROOM
-	db $0, $6, $0, CHAMPIONS_ROOM
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_LANCE, $6, $1, STAY, DOWN, $1, OPP_LANCE, $1
+	db 1 ; objects
+	object SPRITE_LANCE, 6, 1, STAY, DOWN, 1, OPP_LANCE, 1
 
 	; warp-to
-	EVENT_DISP LANCES_ROOM_WIDTH, $10, $18 ; AGATHAS_ROOM
-	EVENT_DISP LANCES_ROOM_WIDTH, $0, $5 ; CHAMPIONS_ROOM
-	EVENT_DISP LANCES_ROOM_WIDTH, $0, $6 ; CHAMPIONS_ROOM
+	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
--- a/data/mapObjects/lavenderhouse1.asm
+++ b/data/mapObjects/lavenderhouse1.asm
@@ -1,20 +1,20 @@
 LavenderHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
+	db 2 ; warps
+	warp 2, 7, 2, -1
+	warp 3, 7, 2, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $3
+	warp_to 2, 7, LAVENDER_HOUSE_1_WIDTH
+	warp_to 3, 7, LAVENDER_HOUSE_1_WIDTH
--- a/data/mapObjects/lavenderhouse2.asm
+++ b/data/mapObjects/lavenderhouse2.asm
@@ -1,16 +1,16 @@
 LavenderHouse2Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
+	db 2 ; warps
+	warp 2, 7, 4, -1
+	warp 3, 7, 4, -1
 
-	db $0 ; signs
+	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
+	db 2 ; objects
+	object SPRITE_SLOWBRO, 3, 5, STAY, UP, 1 ; person
+	object SPRITE_BRUNETTE_GIRL, 2, 4, STAY, RIGHT, 2 ; person
 
 	; warp-to
-	EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $3
+	warp_to 2, 7, LAVENDER_HOUSE_2_WIDTH
+	warp_to 3, 7, LAVENDER_HOUSE_2_WIDTH
--- a/data/mapObjects/lavendermart.asm
+++ b/data/mapObjects/lavendermart.asm
@@ -1,17 +1,17 @@
 LavenderMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
+	db 2 ; warps
+	warp 3, 7, 3, -1
+	warp 4, 7, 3, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP LAVENDER_MART_WIDTH, $7, $3
-	EVENT_DISP LAVENDER_MART_WIDTH, $7, $4
+	warp_to 3, 7, LAVENDER_MART_WIDTH
+	warp_to 4, 7, LAVENDER_MART_WIDTH
--- a/data/mapObjects/lavenderpokecenter.asm
+++ b/data/mapObjects/lavenderpokecenter.asm
@@ -1,18 +1,18 @@
 LavenderPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
+	db 2 ; warps
+	warp 3, 7, 0, -1
+	warp 4, 7, 0, -1
 
-	db $0 ; signs
+	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, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, LAVENDER_POKECENTER_WIDTH
+	warp_to 4, 7, LAVENDER_POKECENTER_WIDTH
--- a/data/mapObjects/lavendertown.asm
+++ b/data/mapObjects/lavendertown.asm
@@ -1,31 +1,31 @@
 LavenderTownObject:
 	db $2c ; border block
 
-	db $6 ; warps
-	db $5, $3, $0, LAVENDER_POKECENTER
-	db $5, $e, $0, POKEMONTOWER_1
-	db $9, $7, $0, LAVENDER_HOUSE_1
-	db $d, $f, $0, LAVENDER_MART
-	db $d, $3, $0, LAVENDER_HOUSE_2
-	db $d, $7, $0, NAME_RATERS_HOUSE
+	db 6 ; warps
+	warp 3, 5, 0, LAVENDER_POKECENTER
+	warp 14, 5, 0, POKEMONTOWER_1
+	warp 7, 9, 0, LAVENDER_HOUSE_1
+	warp 15, 13, 0, LAVENDER_MART
+	warp 3, 13, 0, LAVENDER_HOUSE_2
+	warp 7, 13, 0, NAME_RATERS_HOUSE
 
-	db $6 ; signs
-	db $9, $b, $4 ; LavenderTownText4
-	db $3, $9, $5 ; LavenderTownText5
-	db $d, $10, $6 ; MartSignText
-	db $5, $4, $7 ; PokeCenterSignText
-	db $9, $5, $8 ; LavenderTownText8
-	db $7, $11, $9 ; LavenderTownText9
+	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, $f, $9, WALK, $0, $1 ; person
-	object SPRITE_BLACK_HAIR_BOY_1, $9, $a, STAY, NONE, $2 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $8, $7, WALK, $2, $3 ; person
+	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
-	EVENT_DISP LAVENDER_TOWN_WIDTH, $5, $3 ; LAVENDER_POKECENTER
-	EVENT_DISP LAVENDER_TOWN_WIDTH, $5, $e ; POKEMONTOWER_1
-	EVENT_DISP LAVENDER_TOWN_WIDTH, $9, $7 ; LAVENDER_HOUSE_1
-	EVENT_DISP LAVENDER_TOWN_WIDTH, $d, $f ; LAVENDER_MART
-	EVENT_DISP LAVENDER_TOWN_WIDTH, $d, $3 ; LAVENDER_HOUSE_2
-	EVENT_DISP LAVENDER_TOWN_WIDTH, $d, $7 ; NAME_RATERS_HOUSE
+	warp_to 3, 5, LAVENDER_TOWN_WIDTH ; LAVENDER_POKECENTER
+	warp_to 14, 5, LAVENDER_TOWN_WIDTH ; POKEMONTOWER_1
+	warp_to 7, 9, LAVENDER_TOWN_WIDTH ; LAVENDER_HOUSE_1
+	warp_to 15, 13, LAVENDER_TOWN_WIDTH ; LAVENDER_MART
+	warp_to 3, 13, LAVENDER_TOWN_WIDTH ; LAVENDER_HOUSE_2
+	warp_to 7, 13, LAVENDER_TOWN_WIDTH ; NAME_RATERS_HOUSE
--- a/data/mapObjects/lorelei.asm
+++ b/data/mapObjects/lorelei.asm
@@ -1,19 +1,19 @@
 LoreleiObject:
 	db $3 ; border block
 
-	db $4 ; warps
-	db $b, $4, $2, INDIGO_PLATEAU_LOBBY
-	db $b, $5, $2, INDIGO_PLATEAU_LOBBY
-	db $0, $4, $0, BRUNOS_ROOM
-	db $0, $5, $1, BRUNOS_ROOM
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_LORELEI, $5, $2, STAY, DOWN, $1, OPP_LORELEI, $1
+	db 1 ; objects
+	object SPRITE_LORELEI, 5, 2, STAY, DOWN, 1, OPP_LORELEI, 1
 
 	; warp-to
-	EVENT_DISP LORELEIS_ROOM_WIDTH, $b, $4 ; INDIGO_PLATEAU_LOBBY
-	EVENT_DISP LORELEIS_ROOM_WIDTH, $b, $5 ; INDIGO_PLATEAU_LOBBY
-	EVENT_DISP LORELEIS_ROOM_WIDTH, $0, $4 ; BRUNOS_ROOM
-	EVENT_DISP LORELEIS_ROOM_WIDTH, $0, $5 ; BRUNOS_ROOM
+	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
--- a/data/mapObjects/mansion1.asm
+++ b/data/mapObjects/mansion1.asm
@@ -1,29 +1,29 @@
 Mansion1Object:
 	db $2e ; border block
 
-	db $8 ; warps
-	db $1b, $4, $0, $ff
-	db $1b, $5, $0, $ff
-	db $1b, $6, $0, $ff
-	db $1b, $7, $0, $ff
-	db $a, $5, $0, MANSION_2
-	db $17, $15, $0, MANSION_4
-	db $1b, $1a, $0, $ff
-	db $1b, $1b, $0, $ff
+	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, MANSION_2
+	warp 21, 23, 0, MANSION_4
+	warp 26, 27, 0, -1
+	warp 27, 27, 0, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $3 ; objects
-	object SPRITE_OAK_AIDE, $11, $11, STAY, LEFT, $1, OPP_SCIENTIST, $4
-	object SPRITE_BALL, $e, $3, STAY, NONE, $2, ESCAPE_ROPE
-	object SPRITE_BALL, $12, $15, STAY, NONE, $3, CARBOS
+	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
-	EVENT_DISP MANSION_1_WIDTH, $1b, $4
-	EVENT_DISP MANSION_1_WIDTH, $1b, $5
-	EVENT_DISP MANSION_1_WIDTH, $1b, $6
-	EVENT_DISP MANSION_1_WIDTH, $1b, $7
-	EVENT_DISP MANSION_1_WIDTH, $a, $5 ; MANSION_2
-	EVENT_DISP MANSION_1_WIDTH, $17, $15 ; MANSION_4
-	EVENT_DISP MANSION_1_WIDTH, $1b, $1a
-	EVENT_DISP MANSION_1_WIDTH, $1b, $1b
+	warp_to 4, 27, MANSION_1_WIDTH
+	warp_to 5, 27, MANSION_1_WIDTH
+	warp_to 6, 27, MANSION_1_WIDTH
+	warp_to 7, 27, MANSION_1_WIDTH
+	warp_to 5, 10, MANSION_1_WIDTH ; MANSION_2
+	warp_to 21, 23, MANSION_1_WIDTH ; MANSION_4
+	warp_to 26, 27, MANSION_1_WIDTH
+	warp_to 27, 27, MANSION_1_WIDTH
--- a/data/mapObjects/mansion2.asm
+++ b/data/mapObjects/mansion2.asm
@@ -1,22 +1,22 @@
 Mansion2Object:
 	db $1 ; border block
 
-	db $4 ; warps
-	db $a, $5, $4, MANSION_1
-	db $a, $7, $0, MANSION_3
-	db $e, $19, $2, MANSION_3
-	db $1, $6, $1, MANSION_3
+	db 4 ; warps
+	warp 5, 10, 4, MANSION_1
+	warp 7, 10, 0, MANSION_3
+	warp 25, 14, 2, MANSION_3
+	warp 6, 1, 1, MANSION_3
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_BLACK_HAIR_BOY_2, $3, $11, WALK, $2, $1, OPP_BURGLAR, $7
-	object SPRITE_BALL, $1c, $7, STAY, NONE, $2, CALCIUM
-	object SPRITE_BOOK_MAP_DEX, $12, $2, STAY, NONE, $3 ; person
-	object SPRITE_BOOK_MAP_DEX, $3, $16, STAY, NONE, $4 ; person
+	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
-	EVENT_DISP MANSION_2_WIDTH, $a, $5 ; MANSION_1
-	EVENT_DISP MANSION_2_WIDTH, $a, $7 ; MANSION_3
-	EVENT_DISP MANSION_2_WIDTH, $e, $19 ; MANSION_3
-	EVENT_DISP MANSION_2_WIDTH, $1, $6 ; MANSION_3
+	warp_to 5, 10, MANSION_2_WIDTH ; MANSION_1
+	warp_to 7, 10, MANSION_2_WIDTH ; MANSION_3
+	warp_to 25, 14, MANSION_2_WIDTH ; MANSION_3
+	warp_to 6, 1, MANSION_2_WIDTH ; MANSION_3
--- a/data/mapObjects/mansion3.asm
+++ b/data/mapObjects/mansion3.asm
@@ -1,21 +1,21 @@
 Mansion3Object:
 	db $1 ; border block
 
-	db $3 ; warps
-	db $a, $7, $1, MANSION_2
-	db $1, $6, $3, MANSION_2
-	db $e, $19, $2, MANSION_2
+	db 3 ; warps
+	warp 7, 10, 1, MANSION_2
+	warp 6, 1, 3, MANSION_2
+	warp 25, 14, 2, MANSION_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_BLACK_HAIR_BOY_2, $5, $b, WALK, $2, $1, OPP_BURGLAR, $8
-	object SPRITE_OAK_AIDE, $14, $b, STAY, LEFT, $2, OPP_SCIENTIST, $c
-	object SPRITE_BALL, $1, $10, STAY, NONE, $3, MAX_POTION
-	object SPRITE_BALL, $19, $5, STAY, NONE, $4, IRON
-	object SPRITE_BOOK_MAP_DEX, $6, $c, STAY, NONE, $5 ; person
+	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
-	EVENT_DISP MANSION_3_WIDTH, $a, $7 ; MANSION_2
-	EVENT_DISP MANSION_3_WIDTH, $1, $6 ; MANSION_2
-	EVENT_DISP MANSION_3_WIDTH, $e, $19 ; MANSION_2
+	warp_to 7, 10, MANSION_3_WIDTH ; MANSION_2
+	warp_to 6, 1, MANSION_3_WIDTH ; MANSION_2
+	warp_to 25, 14, MANSION_3_WIDTH ; MANSION_2
--- a/data/mapObjects/mansion4.asm
+++ b/data/mapObjects/mansion4.asm
@@ -1,20 +1,20 @@
 Mansion4Object:
 	db $1 ; border block
 
-	db $1 ; warps
-	db $16, $17, $5, MANSION_1
+	db 1 ; warps
+	warp 23, 22, 5, MANSION_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $8 ; objects
-	object SPRITE_BLACK_HAIR_BOY_2, $10, $17, STAY, NONE, $1, OPP_BURGLAR, $9
-	object SPRITE_OAK_AIDE, $1b, $b, STAY, DOWN, $2, OPP_SCIENTIST, $d
-	object SPRITE_BALL, $a, $2, STAY, NONE, $3, RARE_CANDY
-	object SPRITE_BALL, $1, $16, STAY, NONE, $4, FULL_RESTORE
-	object SPRITE_BALL, $13, $19, STAY, NONE, $5, TM_14
-	object SPRITE_BALL, $5, $4, STAY, NONE, $6, TM_22
-	object SPRITE_BOOK_MAP_DEX, $10, $14, STAY, NONE, $7 ; person
-	object SPRITE_BALL, $5, $d, STAY, NONE, $8, SECRET_KEY
+	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
-	EVENT_DISP MANSION_4_WIDTH, $16, $17 ; MANSION_1
+	warp_to 23, 22, MANSION_4_WIDTH ; MANSION_1
--- a/data/mapObjects/mtmoon1.asm
+++ b/data/mapObjects/mtmoon1.asm
@@ -1,34 +1,34 @@
 MtMoon1Object:
 	db $3 ; border block
 
-	db $5 ; warps
-	db $23, $e, $1, $ff
-	db $23, $f, $1, $ff
-	db $5, $5, $0, MT_MOON_2
-	db $b, $11, $2, MT_MOON_2
-	db $f, $19, $3, MT_MOON_2
+	db 5 ; warps
+	warp 14, 35, 1, -1
+	warp 15, 35, 1, -1
+	warp 5, 5, 0, MT_MOON_2
+	warp 17, 11, 2, MT_MOON_2
+	warp 25, 15, 3, MT_MOON_2
 
-	db $1 ; signs
-	db $17, $f, $e ; MtMoon1Text14
+	db 1 ; signs
+	sign 15, 23, 14 ; MtMoon1Text14
 
-	db $d ; objects
-	object SPRITE_HIKER, $5, $6, STAY, DOWN, $1, OPP_HIKER, $1
-	object SPRITE_BUG_CATCHER, $c, $10, STAY, RIGHT, $2, OPP_YOUNGSTER, $3
-	object SPRITE_LASS, $1e, $4, STAY, DOWN, $3, OPP_LASS, $5
-	object SPRITE_BLACK_HAIR_BOY_2, $18, $1f, STAY, UP, $4, OPP_SUPER_NERD, $1
-	object SPRITE_LASS, $10, $17, STAY, DOWN, $5, OPP_LASS, $6
-	object SPRITE_BUG_CATCHER, $7, $16, STAY, DOWN, $6, OPP_BUG_CATCHER, $7
-	object SPRITE_BUG_CATCHER, $1e, $1b, STAY, RIGHT, $7, OPP_BUG_CATCHER, $8
-	object SPRITE_BALL, $2, $14, STAY, NONE, $8, POTION
-	object SPRITE_BALL, $2, $2, STAY, NONE, $9, MOON_STONE
-	object SPRITE_BALL, $23, $1f, STAY, NONE, $a, RARE_CANDY
-	object SPRITE_BALL, $24, $17, STAY, NONE, $b, ESCAPE_ROPE
-	object SPRITE_BALL, $14, $21, STAY, NONE, $c, POTION
-	object SPRITE_BALL, $5, $20, STAY, NONE, $d, TM_12
+	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
-	EVENT_DISP MT_MOON_1_WIDTH, $23, $e
-	EVENT_DISP MT_MOON_1_WIDTH, $23, $f
-	EVENT_DISP MT_MOON_1_WIDTH, $5, $5 ; MT_MOON_2
-	EVENT_DISP MT_MOON_1_WIDTH, $b, $11 ; MT_MOON_2
-	EVENT_DISP MT_MOON_1_WIDTH, $f, $19 ; MT_MOON_2
+	warp_to 14, 35, MT_MOON_1_WIDTH
+	warp_to 15, 35, MT_MOON_1_WIDTH
+	warp_to 5, 5, MT_MOON_1_WIDTH ; MT_MOON_2
+	warp_to 17, 11, MT_MOON_1_WIDTH ; MT_MOON_2
+	warp_to 25, 15, MT_MOON_1_WIDTH ; MT_MOON_2
--- a/data/mapObjects/mtmoon2.asm
+++ b/data/mapObjects/mtmoon2.asm
@@ -1,26 +1,26 @@
 MtMoon2Object:
 	db $3 ; border block
 
-	db $8 ; warps
-	db $5, $5, $2, MT_MOON_1
-	db $b, $11, $0, MT_MOON_3
-	db $9, $19, $3, MT_MOON_1
-	db $f, $19, $4, MT_MOON_1
-	db $11, $15, $1, MT_MOON_3
-	db $1b, $d, $2, MT_MOON_3
-	db $3, $17, $3, MT_MOON_3
-	db $3, $1b, $2, $ff
+	db 8 ; warps
+	warp 5, 5, 2, MT_MOON_1
+	warp 17, 11, 0, MT_MOON_3
+	warp 25, 9, 3, MT_MOON_1
+	warp 25, 15, 4, MT_MOON_1
+	warp 21, 17, 1, MT_MOON_3
+	warp 13, 27, 2, MT_MOON_3
+	warp 23, 3, 3, MT_MOON_3
+	warp 27, 3, 2, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP MT_MOON_2_WIDTH, $5, $5 ; MT_MOON_1
-	EVENT_DISP MT_MOON_2_WIDTH, $b, $11 ; MT_MOON_3
-	EVENT_DISP MT_MOON_2_WIDTH, $9, $19 ; MT_MOON_1
-	EVENT_DISP MT_MOON_2_WIDTH, $f, $19 ; MT_MOON_1
-	EVENT_DISP MT_MOON_2_WIDTH, $11, $15 ; MT_MOON_3
-	EVENT_DISP MT_MOON_2_WIDTH, $1b, $d ; MT_MOON_3
-	EVENT_DISP MT_MOON_2_WIDTH, $3, $17 ; MT_MOON_3
-	EVENT_DISP MT_MOON_2_WIDTH, $3, $1b
+	warp_to 5, 5, MT_MOON_2_WIDTH ; MT_MOON_1
+	warp_to 17, 11, MT_MOON_2_WIDTH ; MT_MOON_3
+	warp_to 25, 9, MT_MOON_2_WIDTH ; MT_MOON_1
+	warp_to 25, 15, MT_MOON_2_WIDTH ; MT_MOON_1
+	warp_to 21, 17, MT_MOON_2_WIDTH ; MT_MOON_3
+	warp_to 13, 27, MT_MOON_2_WIDTH ; MT_MOON_3
+	warp_to 23, 3, MT_MOON_2_WIDTH ; MT_MOON_3
+	warp_to 27, 3, MT_MOON_2_WIDTH
--- a/data/mapObjects/mtmoon3.asm
+++ b/data/mapObjects/mtmoon3.asm
@@ -1,27 +1,27 @@
 MtMoon3Object:
 	db $3 ; border block
 
-	db $4 ; warps
-	db $9, $19, $1, MT_MOON_2
-	db $11, $15, $4, MT_MOON_2
-	db $1b, $f, $5, MT_MOON_2
-	db $7, $5, $6, MT_MOON_2
+	db 4 ; warps
+	warp 25, 9, 1, MT_MOON_2
+	warp 21, 17, 4, MT_MOON_2
+	warp 15, 27, 5, MT_MOON_2
+	warp 5, 7, 6, MT_MOON_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $9 ; objects
-	object SPRITE_BLACK_HAIR_BOY_2, $c, $8, STAY, RIGHT, $1, OPP_SUPER_NERD, $2
-	object SPRITE_ROCKET, $b, $10, STAY, DOWN, $2, OPP_ROCKET, $1
-	object SPRITE_ROCKET, $f, $16, STAY, DOWN, $3, OPP_ROCKET, $2
-	object SPRITE_ROCKET, $1d, $b, STAY, UP, $4, OPP_ROCKET, $3
-	object SPRITE_ROCKET, $1d, $11, STAY, LEFT, $5, OPP_ROCKET, $4
-	object SPRITE_OMANYTE, $c, $6, STAY, NONE, $6 ; person
-	object SPRITE_OMANYTE, $d, $6, STAY, NONE, $7 ; person
-	object SPRITE_BALL, $19, $15, STAY, NONE, $8, HP_UP
-	object SPRITE_BALL, $1d, $5, STAY, NONE, $9, TM_01
+	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
-	EVENT_DISP MT_MOON_3_WIDTH, $9, $19 ; MT_MOON_2
-	EVENT_DISP MT_MOON_3_WIDTH, $11, $15 ; MT_MOON_2
-	EVENT_DISP MT_MOON_3_WIDTH, $1b, $f ; MT_MOON_2
-	EVENT_DISP MT_MOON_3_WIDTH, $7, $5 ; MT_MOON_2
+	warp_to 25, 9, MT_MOON_3_WIDTH ; MT_MOON_2
+	warp_to 21, 17, MT_MOON_3_WIDTH ; MT_MOON_2
+	warp_to 15, 27, MT_MOON_3_WIDTH ; MT_MOON_2
+	warp_to 5, 7, MT_MOON_3_WIDTH ; MT_MOON_2
--- a/data/mapObjects/mtmoonpokecenter.asm
+++ b/data/mapObjects/mtmoonpokecenter.asm
@@ -1,20 +1,20 @@
 MtMoonPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
+	db 2 ; warps
+	warp 3, 7, 0, -1
+	warp 4, 7, 0, -1
 
-	db $0 ; signs
+	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, $a, $6, WALK, $2, $4 ; person
-	object SPRITE_CLIPBOARD, $7, $2, STAY, NONE, $5 ; person
-	object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $6 ; person
+	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
-	EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, MT_MOON_POKECENTER_WIDTH
+	warp_to 4, 7, MT_MOON_POKECENTER_WIDTH
--- a/data/mapObjects/museum1f.asm
+++ b/data/mapObjects/museum1f.asm
@@ -1,25 +1,25 @@
 Museum1FObject:
 	db $a ; border block
 
-	db $5 ; warps
-	db $7, $a, $0, $ff
-	db $7, $b, $0, $ff
-	db $7, $10, $1, $ff
-	db $7, $11, $1, $ff
-	db $7, $7, $0, MUSEUM_2F
+	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 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_OAK_AIDE, $c, $4, STAY, LEFT, $1 ; person
-	object SPRITE_GAMBLER, $1, $4, STAY, NONE, $2 ; person
-	object SPRITE_OAK_AIDE, $f, $2, STAY, DOWN, $3 ; person
-	object SPRITE_OAK_AIDE, $11, $4, STAY, NONE, $4 ; person
-	object SPRITE_OLD_AMBER, $10, $2, STAY, NONE, $5 ; person
+	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
-	EVENT_DISP MUSEUM_1F_WIDTH, $7, $a
-	EVENT_DISP MUSEUM_1F_WIDTH, $7, $b
-	EVENT_DISP MUSEUM_1F_WIDTH, $7, $10
-	EVENT_DISP MUSEUM_1F_WIDTH, $7, $11
-	EVENT_DISP MUSEUM_1F_WIDTH, $7, $7 ; MUSEUM_2F
+	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
--- a/data/mapObjects/museum2f.asm
+++ b/data/mapObjects/museum2f.asm
@@ -1,19 +1,19 @@
 Museum2FObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $7, $7, $4, MUSEUM_1F
+	db 1 ; warps
+	warp 7, 7, 4, MUSEUM_1F
 
-	db $2 ; signs
-	db $2, $b, $6 ; Museum2FText6
-	db $5, $2, $7 ; Museum2FText7
+	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, $b, $5, STAY, NONE, $4 ; person
-	object SPRITE_HIKER, $c, $5, STAY, DOWN, $5 ; person
+	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
-	EVENT_DISP MUSEUM_2F_WIDTH, $7, $7 ; MUSEUM_1F
+	warp_to 7, 7, MUSEUM_2F_WIDTH ; MUSEUM_1F
--- a/data/mapObjects/namerater.asm
+++ b/data/mapObjects/namerater.asm
@@ -1,15 +1,15 @@
 NameRaterObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $5, $ff
-	db $7, $3, $5, $ff
+	db 2 ; warps
+	warp 2, 7, 5, -1
+	warp 3, 7, 5, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_MR_MASTERBALL, $5, $3, STAY, LEFT, $1 ; person
+	db 1 ; objects
+	object SPRITE_MR_MASTERBALL, 5, 3, STAY, LEFT, 1 ; person
 
 	; warp-to
-	EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $2
-	EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, NAME_RATERS_HOUSE_WIDTH
+	warp_to 3, 7, NAME_RATERS_HOUSE_WIDTH
--- a/data/mapObjects/oakslab.asm
+++ b/data/mapObjects/oakslab.asm
@@ -1,25 +1,25 @@
 OaksLabObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $b, $4, $2, $ff
-	db $b, $5, $2, $ff
+	db 2 ; warps
+	warp 4, 11, 2, -1
+	warp 5, 11, 2, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $b ; 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, $a, STAY, UP, $8 ; person
-	object SPRITE_GIRL, $1, $9, WALK, $1, $9 ; person
-	object SPRITE_OAK_AIDE, $2, $a, STAY, NONE, $a ; person
-	object SPRITE_OAK_AIDE, $8, $a, STAY, NONE, $b ; person
+	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
-	EVENT_DISP OAKS_LAB_WIDTH, $b, $4
-	EVENT_DISP OAKS_LAB_WIDTH, $b, $5
+	warp_to 4, 11, OAKS_LAB_WIDTH
+	warp_to 5, 11, OAKS_LAB_WIDTH
--- a/data/mapObjects/pallettown.asm
+++ b/data/mapObjects/pallettown.asm
@@ -1,23 +1,23 @@
 PalletTownObject:
 	db $b ; border block
 
-	db $3 ; warps
-	db $5, $5, $0, REDS_HOUSE_1F
-	db $5, $d, $0, BLUES_HOUSE
-	db $b, $c, $1, OAKS_LAB
+	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
-	db $d, $d, $4 ; PalletTownText4
-	db $9, $7, $5 ; PalletTownText5
-	db $5, $3, $6 ; PalletTownText6
-	db $5, $b, $7 ; PalletTownText7
+	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, $b, $e, WALK, $0, $3 ; person
+	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
-	EVENT_DISP PALLET_TOWN_WIDTH, $5, $5 ; REDS_HOUSE_1F
-	EVENT_DISP PALLET_TOWN_WIDTH, $5, $d ; BLUES_HOUSE
-	EVENT_DISP PALLET_TOWN_WIDTH, $b, $c ; OAKS_LAB
+	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
--- a/data/mapObjects/pewtercity.asm
+++ b/data/mapObjects/pewtercity.asm
@@ -1,36 +1,36 @@
 PewterCityObject:
 	db $a ; border block
 
-	db $7 ; warps
-	db $7, $e, $0, MUSEUM_1F
-	db $5, $13, $2, MUSEUM_1F
-	db $11, $10, $0, PEWTER_GYM
-	db $d, $1d, $0, PEWTER_HOUSE_1
-	db $11, $17, $0, PEWTER_MART
-	db $1d, $7, $0, PEWTER_HOUSE_2
-	db $19, $d, $0, PEWTER_POKECENTER
+	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_HOUSE_1
+	warp 23, 17, 0, PEWTER_MART
+	warp 7, 29, 0, PEWTER_HOUSE_2
+	warp 13, 25, 0, PEWTER_POKECENTER
 
-	db $7 ; signs
-	db $1d, $13, $6 ; PewterCityText6
-	db $13, $21, $7 ; PewterCityText7
-	db $11, $18, $8 ; MartSignText
-	db $19, $e, $9 ; PokeCenterSignText
-	db $9, $f, $a ; PewterCityText10
-	db $11, $b, $b ; PewterCityText11
-	db $17, $19, $c ; PewterCityText12
+	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, $f, STAY, NONE, $1 ; person
-	object SPRITE_BLACK_HAIR_BOY_1, $11, $19, STAY, NONE, $2 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $1b, $11, STAY, NONE, $3 ; person
-	object SPRITE_BLACK_HAIR_BOY_2, $1a, $19, WALK, $2, $4 ; person
-	object SPRITE_BUG_CATCHER, $23, $10, STAY, DOWN, $5 ; person
+	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
-	EVENT_DISP PEWTER_CITY_WIDTH, $7, $e ; MUSEUM_1F
-	EVENT_DISP PEWTER_CITY_WIDTH, $5, $13 ; MUSEUM_1F
-	EVENT_DISP PEWTER_CITY_WIDTH, $11, $10 ; PEWTER_GYM
-	EVENT_DISP PEWTER_CITY_WIDTH, $d, $1d ; PEWTER_HOUSE_1
-	EVENT_DISP PEWTER_CITY_WIDTH, $11, $17 ; PEWTER_MART
-	EVENT_DISP PEWTER_CITY_WIDTH, $1d, $7 ; PEWTER_HOUSE_2
-	EVENT_DISP PEWTER_CITY_WIDTH, $19, $d ; PEWTER_POKECENTER
+	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_HOUSE_1
+	warp_to 23, 17, PEWTER_CITY_WIDTH ; PEWTER_MART
+	warp_to 7, 29, PEWTER_CITY_WIDTH ; PEWTER_HOUSE_2
+	warp_to 13, 25, PEWTER_CITY_WIDTH ; PEWTER_POKECENTER
--- a/data/mapObjects/pewtergym.asm
+++ b/data/mapObjects/pewtergym.asm
@@ -1,17 +1,17 @@
 PewterGymObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $d, $4, $2, $ff
-	db $d, $5, $2, $ff
+	db 2 ; warps
+	warp 4, 13, 2, -1
+	warp 5, 13, 2, -1
 
-	db $0 ; signs
+	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, $a, STAY, DOWN, $3 ; person
+	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
-	EVENT_DISP PEWTER_GYM_WIDTH, $d, $4
-	EVENT_DISP PEWTER_GYM_WIDTH, $d, $5
+	warp_to 4, 13, PEWTER_GYM_WIDTH
+	warp_to 5, 13, PEWTER_GYM_WIDTH
--- a/data/mapObjects/pewterhouse1.asm
+++ b/data/mapObjects/pewterhouse1.asm
@@ -1,17 +1,17 @@
 PewterHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
+	db 2 ; warps
+	warp 2, 7, 3, -1
+	warp 3, 7, 3, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $3
+	warp_to 2, 7, PEWTER_HOUSE_1_WIDTH
+	warp_to 3, 7, PEWTER_HOUSE_1_WIDTH
--- a/data/mapObjects/pewterhouse2.asm
+++ b/data/mapObjects/pewterhouse2.asm
@@ -1,16 +1,16 @@
 PewterHouse2Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $5, $ff
-	db $7, $3, $5, $ff
+	db 2 ; warps
+	warp 2, 7, 5, -1
+	warp 3, 7, 5, -1
 
-	db $0 ; signs
+	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
+	db 2 ; objects
+	object SPRITE_GAMBLER, 2, 3, STAY, RIGHT, 1 ; person
+	object SPRITE_BUG_CATCHER, 4, 5, STAY, NONE, 2 ; person
 
 	; warp-to
-	EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $3
+	warp_to 2, 7, PEWTER_HOUSE_2_WIDTH
+	warp_to 3, 7, PEWTER_HOUSE_2_WIDTH
--- a/data/mapObjects/pewtermart.asm
+++ b/data/mapObjects/pewtermart.asm
@@ -1,17 +1,17 @@
 PewterMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
+	db 2 ; warps
+	warp 3, 7, 4, -1
+	warp 4, 7, 4, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP PEWTER_MART_WIDTH, $7, $3
-	EVENT_DISP PEWTER_MART_WIDTH, $7, $4
+	warp_to 3, 7, PEWTER_MART_WIDTH
+	warp_to 4, 7, PEWTER_MART_WIDTH
--- a/data/mapObjects/pewterpokecenter.asm
+++ b/data/mapObjects/pewterpokecenter.asm
@@ -1,18 +1,18 @@
 PewterPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $6, $ff
-	db $7, $4, $6, $ff
+	db 2 ; warps
+	warp 3, 7, 6, -1
+	warp 4, 7, 6, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
-	object SPRITE_GENTLEMAN, $b, $7, STAY, LEFT, $2 ; person
-	object SPRITE_CLEFAIRY, $1, $3, STAY, DOWN, $3 ; person
-	object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, PEWTER_POKECENTER_WIDTH
+	warp_to 4, 7, PEWTER_POKECENTER_WIDTH
--- a/data/mapObjects/pokemontower1.asm
+++ b/data/mapObjects/pokemontower1.asm
@@ -1,21 +1,21 @@
 PokemonTower1Object:
 	db $1 ; border block
 
-	db $3 ; warps
-	db $11, $a, $1, $ff
-	db $11, $b, $1, $ff
-	db $9, $12, $1, POKEMONTOWER_2
+	db 3 ; warps
+	warp 10, 17, 1, -1
+	warp 11, 17, 1, -1
+	warp 18, 9, 1, POKEMONTOWER_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_CABLE_CLUB_WOMAN, $f, $d, STAY, UP, $1 ; person
-	object SPRITE_MOM_GEISHA, $6, $8, STAY, NONE, $2 ; person
-	object SPRITE_BALDING_GUY, $8, $c, STAY, NONE, $3 ; person
-	object SPRITE_GIRL, $d, $7, STAY, NONE, $4 ; person
-	object SPRITE_MEDIUM, $11, $7, STAY, LEFT, $5 ; person
+	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
-	EVENT_DISP POKEMONTOWER_1_WIDTH, $11, $a
-	EVENT_DISP POKEMONTOWER_1_WIDTH, $11, $b
-	EVENT_DISP POKEMONTOWER_1_WIDTH, $9, $12 ; POKEMONTOWER_2
+	warp_to 10, 17, POKEMONTOWER_1_WIDTH
+	warp_to 11, 17, POKEMONTOWER_1_WIDTH
+	warp_to 18, 9, POKEMONTOWER_1_WIDTH ; POKEMONTOWER_2
--- a/data/mapObjects/pokemontower2.asm
+++ b/data/mapObjects/pokemontower2.asm
@@ -1,16 +1,16 @@
 PokemonTower2Object:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_3
-	db $9, $12, $2, POKEMONTOWER_1
+	db 2 ; warps
+	warp 3, 9, 0, POKEMONTOWER_3
+	warp 18, 9, 2, POKEMONTOWER_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_BLUE, $e, $5, STAY, NONE, $1 ; person
-	object SPRITE_MEDIUM, $3, $7, STAY, RIGHT, $2 ; person
+	db 2 ; objects
+	object SPRITE_BLUE, 14, 5, STAY, NONE, 1 ; person
+	object SPRITE_MEDIUM, 3, 7, STAY, RIGHT, 2 ; person
 
 	; warp-to
-	EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $3 ; POKEMONTOWER_3
-	EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $12 ; POKEMONTOWER_1
+	warp_to 3, 9, POKEMONTOWER_2_WIDTH ; POKEMONTOWER_3
+	warp_to 18, 9, POKEMONTOWER_2_WIDTH ; POKEMONTOWER_1
--- a/data/mapObjects/pokemontower3.asm
+++ b/data/mapObjects/pokemontower3.asm
@@ -1,18 +1,18 @@
 PokemonTower3Object:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_2
-	db $9, $12, $1, POKEMONTOWER_4
+	db 2 ; warps
+	warp 3, 9, 0, POKEMONTOWER_2
+	warp 18, 9, 1, POKEMONTOWER_4
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_MEDIUM, $c, $3, STAY, LEFT, $1, OPP_CHANNELER, $5
-	object SPRITE_MEDIUM, $9, $8, STAY, DOWN, $2, OPP_CHANNELER, $6
-	object SPRITE_MEDIUM, $a, $d, STAY, DOWN, $3, OPP_CHANNELER, $8
-	object SPRITE_BALL, $c, $1, STAY, NONE, $4, ESCAPE_ROPE
+	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
-	EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $3 ; POKEMONTOWER_2
-	EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $12 ; POKEMONTOWER_4
+	warp_to 3, 9, POKEMONTOWER_3_WIDTH ; POKEMONTOWER_2
+	warp_to 18, 9, POKEMONTOWER_3_WIDTH ; POKEMONTOWER_4
--- a/data/mapObjects/pokemontower4.asm
+++ b/data/mapObjects/pokemontower4.asm
@@ -1,20 +1,20 @@
 PokemonTower4Object:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_5
-	db $9, $12, $1, POKEMONTOWER_3
+	db 2 ; warps
+	warp 3, 9, 0, POKEMONTOWER_5
+	warp 18, 9, 1, POKEMONTOWER_3
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $6 ; objects
-	object SPRITE_MEDIUM, $5, $a, STAY, RIGHT, $1, OPP_CHANNELER, $9
-	object SPRITE_MEDIUM, $f, $7, STAY, DOWN, $2, OPP_CHANNELER, $a
-	object SPRITE_MEDIUM, $e, $c, STAY, LEFT, $3, OPP_CHANNELER, $c
-	object SPRITE_BALL, $c, $a, STAY, NONE, $4, ELIXER
-	object SPRITE_BALL, $9, $a, STAY, NONE, $5, AWAKENING
-	object SPRITE_BALL, $c, $10, STAY, NONE, $6, HP_UP
+	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
-	EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $3 ; POKEMONTOWER_5
-	EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $12 ; POKEMONTOWER_3
+	warp_to 3, 9, POKEMONTOWER_4_WIDTH ; POKEMONTOWER_5
+	warp_to 18, 9, POKEMONTOWER_4_WIDTH ; POKEMONTOWER_3
--- a/data/mapObjects/pokemontower5.asm
+++ b/data/mapObjects/pokemontower5.asm
@@ -1,20 +1,20 @@
 PokemonTower5Object:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_4
-	db $9, $12, $0, POKEMONTOWER_6
+	db 2 ; warps
+	warp 3, 9, 0, POKEMONTOWER_4
+	warp 18, 9, 0, POKEMONTOWER_6
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $6 ; objects
-	object SPRITE_MEDIUM, $c, $8, STAY, NONE, $1 ; person
-	object SPRITE_MEDIUM, $11, $7, STAY, LEFT, $2, OPP_CHANNELER, $e
-	object SPRITE_MEDIUM, $e, $3, STAY, LEFT, $3, OPP_CHANNELER, $10
-	object SPRITE_MEDIUM, $6, $a, STAY, RIGHT, $4, OPP_CHANNELER, $11
-	object SPRITE_MEDIUM, $9, $10, STAY, RIGHT, $5, OPP_CHANNELER, $12
-	object SPRITE_BALL, $6, $e, STAY, NONE, $6, NUGGET
+	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
-	EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $3 ; POKEMONTOWER_4
-	EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $12 ; POKEMONTOWER_6
+	warp_to 3, 9, POKEMONTOWER_5_WIDTH ; POKEMONTOWER_4
+	warp_to 18, 9, POKEMONTOWER_5_WIDTH ; POKEMONTOWER_6
--- a/data/mapObjects/pokemontower6.asm
+++ b/data/mapObjects/pokemontower6.asm
@@ -1,19 +1,19 @@
 PokemonTower6Object:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $9, $12, $1, POKEMONTOWER_5
-	db $10, $9, $0, POKEMONTOWER_7
+	db 2 ; warps
+	warp 18, 9, 1, POKEMONTOWER_5
+	warp 9, 16, 0, POKEMONTOWER_7
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_MEDIUM, $c, $a, STAY, RIGHT, $1, OPP_CHANNELER, $13
-	object SPRITE_MEDIUM, $9, $5, STAY, DOWN, $2, OPP_CHANNELER, $14
-	object SPRITE_MEDIUM, $10, $5, STAY, LEFT, $3, OPP_CHANNELER, $15
-	object SPRITE_BALL, $6, $8, STAY, NONE, $4, RARE_CANDY
-	object SPRITE_BALL, $e, $e, STAY, NONE, $5, X_ACCURACY
+	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
-	EVENT_DISP POKEMONTOWER_6_WIDTH, $9, $12 ; POKEMONTOWER_5
-	EVENT_DISP POKEMONTOWER_6_WIDTH, $10, $9 ; POKEMONTOWER_7
+	warp_to 18, 9, POKEMONTOWER_6_WIDTH ; POKEMONTOWER_5
+	warp_to 9, 16, POKEMONTOWER_6_WIDTH ; POKEMONTOWER_7
--- a/data/mapObjects/pokemontower7.asm
+++ b/data/mapObjects/pokemontower7.asm
@@ -1,16 +1,16 @@
 PokemonTower7Object:
 	db $1 ; border block
 
-	db $1 ; warps
-	db $10, $9, $1, POKEMONTOWER_6
+	db 1 ; warps
+	warp 9, 16, 1, POKEMONTOWER_6
 
-	db $0 ; signs
+	db 0 ; signs
 
 	db 4 ; objects
-	object SPRITE_ROCKET, $9, $b, STAY, RIGHT, $1, OPP_ROCKET, $13
-	object SPRITE_ROCKET, $c, $9, STAY, LEFT, $2, OPP_ROCKET, $14
-	object SPRITE_ROCKET, $9, $7, STAY, RIGHT, $3, OPP_ROCKET, $15
-	object SPRITE_MR_FUJI, $a, $3, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP POKEMONTOWER_7_WIDTH, $10, $9 ; POKEMONTOWER_6
+	warp_to 9, 16, POKEMONTOWER_7_WIDTH ; POKEMONTOWER_6
--- a/data/mapObjects/powerplant.asm
+++ b/data/mapObjects/powerplant.asm
@@ -1,30 +1,30 @@
 PowerPlantObject:
 	db $2e ; border block
 
-	db $3 ; warps
-	db $23, $4, $3, $ff
-	db $23, $5, $3, $ff
-	db $b, $0, $3, $ff
+	db 3 ; warps
+	warp 4, 35, 3, -1
+	warp 5, 35, 3, -1
+	warp 0, 11, 3, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $e ; objects
-	object SPRITE_BALL, $9, $14, STAY, NONE, $1, VOLTORB, 40
-	object SPRITE_BALL, $20, $12, STAY, NONE, $2, VOLTORB, 40
-	object SPRITE_BALL, $15, $19, STAY, NONE, $3, VOLTORB, 40
-	object SPRITE_BALL, $19, $12, STAY, NONE, $4, ELECTRODE, 43
-	object SPRITE_BALL, $17, $22, STAY, NONE, $5, VOLTORB, 40
-	object SPRITE_BALL, $1a, $1c, STAY, NONE, $6, VOLTORB, 40
-	object SPRITE_BALL, $15, $e, STAY, NONE, $7, ELECTRODE, 43
-	object SPRITE_BALL, $25, $20, STAY, NONE, $8, VOLTORB, 40
-	object SPRITE_BIRD, $4, $9, STAY, UP, $9, ZAPDOS, 50
-	object SPRITE_BALL, $7, $19, STAY, NONE, $a, CARBOS
-	object SPRITE_BALL, $1c, $3, STAY, NONE, $b, HP_UP
-	object SPRITE_BALL, $22, $3, STAY, NONE, $c, RARE_CANDY
-	object SPRITE_BALL, $1a, $20, STAY, NONE, $d, TM_25
-	object SPRITE_BALL, $14, $20, STAY, NONE, $e, TM_33
+	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
-	EVENT_DISP POWER_PLANT_WIDTH, $23, $4
-	EVENT_DISP POWER_PLANT_WIDTH, $23, $5
-	EVENT_DISP POWER_PLANT_WIDTH, $b, $0
+	warp_to 4, 35, POWER_PLANT_WIDTH
+	warp_to 5, 35, POWER_PLANT_WIDTH
+	warp_to 0, 11, POWER_PLANT_WIDTH
--- a/data/mapObjects/redshouse1f.asm
+++ b/data/mapObjects/redshouse1f.asm
@@ -1,18 +1,18 @@
 RedsHouse1FObject:
-	db $0A ; border block
+	db $a ; border block
 
-	db $3 ; warps
-	db $7, $2, $0, $FF ; exit1
-	db $7, $3, $0, $FF ; exit2
-	db $1, $7, $0, REDS_HOUSE_2F ; staircase
+	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
-	db $1, $3, $2 ; TV
+	db 1 ; signs
+	sign 3, 1, 2 ; TV
 
-	db $1 ; objects
-	object SPRITE_MOM, $5, $4, STAY, LEFT, $1 ; Mom
+	db 1 ; objects
+	object SPRITE_MOM, 5, 4, STAY, LEFT, 1 ; Mom
 
 	; warp-to
-	EVENT_DISP REDS_HOUSE_1F_WIDTH, $7, $2
-	EVENT_DISP REDS_HOUSE_1F_WIDTH, $7, $3
-	EVENT_DISP REDS_HOUSE_1F_WIDTH, $1, $7
+	warp_to 2, 7, REDS_HOUSE_1F_WIDTH
+	warp_to 3, 7, REDS_HOUSE_1F_WIDTH
+	warp_to 7, 1, REDS_HOUSE_1F_WIDTH
--- a/data/mapObjects/redshouse2f.asm
+++ b/data/mapObjects/redshouse2f.asm
@@ -1,12 +1,12 @@
 RedsHouse2FObject:
-	db $0A ; border block
+	db $a ; border block
 
-	db $1 ; warps
-	db $1, $7, $2, REDS_HOUSE_1F
+	db 1 ; warps
+	warp 7, 1, 2, REDS_HOUSE_1F
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP REDS_HOUSE_2F_WIDTH, $1, $7
+	warp_to 7, 1, REDS_HOUSE_2F_WIDTH
--- a/data/mapObjects/rockethideout1.asm
+++ b/data/mapObjects/rockethideout1.asm
@@ -1,27 +1,27 @@
 RocketHideout1Object:
 	db $2e ; border block
 
-	db $5 ; warps
-	db $2, $17, $0, ROCKET_HIDEOUT_2
-	db $2, $15, $2, GAME_CORNER
-	db $13, $18, $0, ROCKET_HIDEOUT_ELEVATOR
-	db $18, $15, $3, ROCKET_HIDEOUT_2
-	db $13, $19, $1, ROCKET_HIDEOUT_ELEVATOR
+	db 5 ; warps
+	warp 23, 2, 0, ROCKET_HIDEOUT_2
+	warp 21, 2, 2, GAME_CORNER
+	warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR
+	warp 21, 24, 3, ROCKET_HIDEOUT_2
+	warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $7 ; objects
-	object SPRITE_ROCKET, $1a, $8, STAY, LEFT, $1, OPP_ROCKET, $8
-	object SPRITE_ROCKET, $c, $6, STAY, RIGHT, $2, OPP_ROCKET, $9
-	object SPRITE_ROCKET, $12, $11, STAY, DOWN, $3, OPP_ROCKET, $a
-	object SPRITE_ROCKET, $f, $19, STAY, RIGHT, $4, OPP_ROCKET, $b
-	object SPRITE_ROCKET, $1c, $12, STAY, LEFT, $5, OPP_ROCKET, $c
-	object SPRITE_BALL, $b, $e, STAY, NONE, $6, ESCAPE_ROPE
-	object SPRITE_BALL, $9, $11, STAY, NONE, $7, HYPER_POTION
+	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
-	EVENT_DISP ROCKET_HIDEOUT_1_WIDTH, $2, $17 ; ROCKET_HIDEOUT_2
-	EVENT_DISP ROCKET_HIDEOUT_1_WIDTH, $2, $15 ; GAME_CORNER
-	EVENT_DISP ROCKET_HIDEOUT_1_WIDTH, $13, $18 ; ROCKET_HIDEOUT_ELEVATOR
-	EVENT_DISP ROCKET_HIDEOUT_1_WIDTH, $18, $15 ; ROCKET_HIDEOUT_2
-	EVENT_DISP ROCKET_HIDEOUT_1_WIDTH, $13, $19 ; ROCKET_HIDEOUT_ELEVATOR
+	warp_to 23, 2, ROCKET_HIDEOUT_1_WIDTH ; ROCKET_HIDEOUT_2
+	warp_to 21, 2, ROCKET_HIDEOUT_1_WIDTH ; GAME_CORNER
+	warp_to 24, 19, ROCKET_HIDEOUT_1_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
+	warp_to 21, 24, ROCKET_HIDEOUT_1_WIDTH ; ROCKET_HIDEOUT_2
+	warp_to 25, 19, ROCKET_HIDEOUT_1_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
--- a/data/mapObjects/rockethideout2.asm
+++ b/data/mapObjects/rockethideout2.asm
@@ -1,25 +1,25 @@
 RocketHideout2Object:
 	db $2e ; border block
 
-	db $5 ; warps
-	db $8, $1b, $0, ROCKET_HIDEOUT_1
-	db $8, $15, $0, ROCKET_HIDEOUT_3
-	db $13, $18, $0, ROCKET_HIDEOUT_ELEVATOR
-	db $16, $15, $3, ROCKET_HIDEOUT_1
-	db $13, $19, $1, ROCKET_HIDEOUT_ELEVATOR
+	db 5 ; warps
+	warp 27, 8, 0, ROCKET_HIDEOUT_1
+	warp 21, 8, 0, ROCKET_HIDEOUT_3
+	warp 24, 19, 0, ROCKET_HIDEOUT_ELEVATOR
+	warp 21, 22, 3, ROCKET_HIDEOUT_1
+	warp 25, 19, 1, ROCKET_HIDEOUT_ELEVATOR
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_ROCKET, $14, $c, STAY, DOWN, $1, OPP_ROCKET, $d
-	object SPRITE_BALL, $1, $b, STAY, NONE, $2, MOON_STONE
-	object SPRITE_BALL, $10, $8, STAY, NONE, $3, NUGGET
-	object SPRITE_BALL, $6, $c, STAY, NONE, $4, TM_07
-	object SPRITE_BALL, $3, $15, STAY, NONE, $5, SUPER_POTION
+	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
-	EVENT_DISP ROCKET_HIDEOUT_2_WIDTH, $8, $1b ; ROCKET_HIDEOUT_1
-	EVENT_DISP ROCKET_HIDEOUT_2_WIDTH, $8, $15 ; ROCKET_HIDEOUT_3
-	EVENT_DISP ROCKET_HIDEOUT_2_WIDTH, $13, $18 ; ROCKET_HIDEOUT_ELEVATOR
-	EVENT_DISP ROCKET_HIDEOUT_2_WIDTH, $16, $15 ; ROCKET_HIDEOUT_1
-	EVENT_DISP ROCKET_HIDEOUT_2_WIDTH, $13, $19 ; ROCKET_HIDEOUT_ELEVATOR
+	warp_to 27, 8, ROCKET_HIDEOUT_2_WIDTH ; ROCKET_HIDEOUT_1
+	warp_to 21, 8, ROCKET_HIDEOUT_2_WIDTH ; ROCKET_HIDEOUT_3
+	warp_to 24, 19, ROCKET_HIDEOUT_2_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
+	warp_to 21, 22, ROCKET_HIDEOUT_2_WIDTH ; ROCKET_HIDEOUT_1
+	warp_to 25, 19, ROCKET_HIDEOUT_2_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
--- a/data/mapObjects/rockethideout3.asm
+++ b/data/mapObjects/rockethideout3.asm
@@ -1,18 +1,18 @@
 RocketHideout3Object:
 	db $2e ; border block
 
-	db $2 ; warps
-	db $6, $19, $1, ROCKET_HIDEOUT_2
-	db $12, $13, $0, ROCKET_HIDEOUT_4
+	db 2 ; warps
+	warp 25, 6, 1, ROCKET_HIDEOUT_2
+	warp 19, 18, 0, ROCKET_HIDEOUT_4
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_ROCKET, $a, $16, STAY, RIGHT, $1, OPP_ROCKET, $e
-	object SPRITE_ROCKET, $1a, $c, STAY, UP, $2, OPP_ROCKET, $f
-	object SPRITE_BALL, $1a, $11, STAY, NONE, $3, TM_10
-	object SPRITE_BALL, $14, $e, STAY, NONE, $4, RARE_CANDY
+	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
-	EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $6, $19 ; ROCKET_HIDEOUT_2
-	EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $12, $13 ; ROCKET_HIDEOUT_4
+	warp_to 25, 6, ROCKET_HIDEOUT_3_WIDTH ; ROCKET_HIDEOUT_2
+	warp_to 19, 18, ROCKET_HIDEOUT_3_WIDTH ; ROCKET_HIDEOUT_4
--- a/data/mapObjects/rockethideout4.asm
+++ b/data/mapObjects/rockethideout4.asm
@@ -1,25 +1,25 @@
 RocketHideout4Object:
 	db $2e ; border block
 
-	db $3 ; warps
-	db $a, $13, $1, ROCKET_HIDEOUT_3
-	db $f, $18, $0, ROCKET_HIDEOUT_ELEVATOR
-	db $f, $19, $1, ROCKET_HIDEOUT_ELEVATOR
+	db 3 ; warps
+	warp 19, 10, 1, ROCKET_HIDEOUT_3
+	warp 24, 15, 0, ROCKET_HIDEOUT_ELEVATOR
+	warp 25, 15, 1, ROCKET_HIDEOUT_ELEVATOR
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $9 ; objects
-	object SPRITE_GIOVANNI, $19, $3, STAY, DOWN, $1, OPP_GIOVANNI, $1
-	object SPRITE_ROCKET, $17, $c, STAY, DOWN, $2, OPP_ROCKET, $10
-	object SPRITE_ROCKET, $1a, $c, STAY, DOWN, $3, OPP_ROCKET, $11
-	object SPRITE_ROCKET, $b, $2, STAY, DOWN, $4, OPP_ROCKET, $12
-	object SPRITE_BALL, $a, $c, STAY, NONE, $5, HP_UP
-	object SPRITE_BALL, $9, $4, STAY, NONE, $6, TM_02
-	object SPRITE_BALL, $c, $14, STAY, NONE, $7, IRON
-	object SPRITE_BALL, $19, $2, STAY, NONE, $8, SILPH_SCOPE
-	object SPRITE_BALL, $a, $2, STAY, NONE, $9, LIFT_KEY
+	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
-	EVENT_DISP ROCKET_HIDEOUT_4_WIDTH, $a, $13 ; ROCKET_HIDEOUT_3
-	EVENT_DISP ROCKET_HIDEOUT_4_WIDTH, $f, $18 ; ROCKET_HIDEOUT_ELEVATOR
-	EVENT_DISP ROCKET_HIDEOUT_4_WIDTH, $f, $19 ; ROCKET_HIDEOUT_ELEVATOR
+	warp_to 19, 10, ROCKET_HIDEOUT_4_WIDTH ; ROCKET_HIDEOUT_3
+	warp_to 24, 15, ROCKET_HIDEOUT_4_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
+	warp_to 25, 15, ROCKET_HIDEOUT_4_WIDTH ; ROCKET_HIDEOUT_ELEVATOR
--- a/data/mapObjects/rockethideoutelevator.asm
+++ b/data/mapObjects/rockethideoutelevator.asm
@@ -1,15 +1,15 @@
 RocketHideoutElevatorObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $1, $2, $2, ROCKET_HIDEOUT_1
-	db $1, $3, $4, ROCKET_HIDEOUT_1
+	db 2 ; warps
+	warp 2, 1, 2, ROCKET_HIDEOUT_1
+	warp 3, 1, 4, ROCKET_HIDEOUT_1
 
-	db $1 ; signs
-	db $1, $1, $1 ; RocketHideoutElevatorText1
+	db 1 ; signs
+	sign 1, 1, 1 ; RocketHideoutElevatorText1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $2 ; ROCKET_HIDEOUT_1
-	EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $3 ; ROCKET_HIDEOUT_1
+	warp_to 2, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_1
+	warp_to 3, 1, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; ROCKET_HIDEOUT_1
--- a/data/mapObjects/rocktunnel1.asm
+++ b/data/mapObjects/rocktunnel1.asm
@@ -1,34 +1,34 @@
 RockTunnel1Object:
 	db $3 ; border block
 
-	db $8 ; warps
-	db $3, $f, $1, $ff
-	db $0, $f, $1, $ff
-	db $21, $f, $2, $ff
-	db $23, $f, $2, $ff
-	db $3, $25, $0, ROCK_TUNNEL_2
-	db $3, $5, $1, ROCK_TUNNEL_2
-	db $b, $11, $2, ROCK_TUNNEL_2
-	db $11, $25, $3, ROCK_TUNNEL_2
+	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_2
+	warp 5, 3, 1, ROCK_TUNNEL_2
+	warp 17, 11, 2, ROCK_TUNNEL_2
+	warp 37, 17, 3, ROCK_TUNNEL_2
 
-	db $1 ; signs
-	db $1d, $b, $8 ; RockTunnel1Text8
+	db 1 ; signs
+	sign 11, 29, 8 ; RockTunnel1Text8
 
-	db $7 ; objects
-	object SPRITE_HIKER, $7, $5, STAY, DOWN, $1, OPP_HIKER, $c
-	object SPRITE_HIKER, $5, $10, STAY, DOWN, $2, OPP_HIKER, $d
-	object SPRITE_HIKER, $11, $f, STAY, LEFT, $3, OPP_HIKER, $e
-	object SPRITE_BLACK_HAIR_BOY_2, $17, $8, STAY, LEFT, $4, OPP_POKEMANIAC, $7
-	object SPRITE_LASS, $25, $15, STAY, LEFT, $5, OPP_JR_TRAINER_F, $11
-	object SPRITE_LASS, $16, $18, STAY, DOWN, $6, OPP_JR_TRAINER_F, $12
-	object SPRITE_LASS, $20, $18, STAY, RIGHT, $7, OPP_JR_TRAINER_F, $13
+	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
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $3, $f
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $0, $f
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $21, $f
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $23, $f
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $3, $25 ; ROCK_TUNNEL_2
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $3, $5 ; ROCK_TUNNEL_2
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $b, $11 ; ROCK_TUNNEL_2
-	EVENT_DISP ROCK_TUNNEL_1_WIDTH, $11, $25 ; ROCK_TUNNEL_2
+	warp_to 15, 3, ROCK_TUNNEL_1_WIDTH
+	warp_to 15, 0, ROCK_TUNNEL_1_WIDTH
+	warp_to 15, 33, ROCK_TUNNEL_1_WIDTH
+	warp_to 15, 35, ROCK_TUNNEL_1_WIDTH
+	warp_to 37, 3, ROCK_TUNNEL_1_WIDTH ; ROCK_TUNNEL_2
+	warp_to 5, 3, ROCK_TUNNEL_1_WIDTH ; ROCK_TUNNEL_2
+	warp_to 17, 11, ROCK_TUNNEL_1_WIDTH ; ROCK_TUNNEL_2
+	warp_to 37, 17, ROCK_TUNNEL_1_WIDTH ; ROCK_TUNNEL_2
--- a/data/mapObjects/rocktunnel2.asm
+++ b/data/mapObjects/rocktunnel2.asm
@@ -1,26 +1,26 @@
 RockTunnel2Object:
 	db $3 ; border block
 
-	db $4 ; warps
-	db $19, $21, $4, ROCK_TUNNEL_1
-	db $3, $1b, $5, ROCK_TUNNEL_1
-	db $b, $17, $6, ROCK_TUNNEL_1
-	db $3, $3, $7, ROCK_TUNNEL_1
+	db 4 ; warps
+	warp 33, 25, 4, ROCK_TUNNEL_1
+	warp 27, 3, 5, ROCK_TUNNEL_1
+	warp 23, 11, 6, ROCK_TUNNEL_1
+	warp 3, 3, 7, ROCK_TUNNEL_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $8 ; objects
-	object SPRITE_LASS, $b, $d, STAY, DOWN, $1, OPP_JR_TRAINER_F, $9
-	object SPRITE_HIKER, $6, $a, 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, $14, $15, STAY, RIGHT, $4, OPP_POKEMANIAC, $4
-	object SPRITE_HIKER, $1e, $a, STAY, DOWN, $5, OPP_HIKER, $a
-	object SPRITE_LASS, $e, $1c, STAY, RIGHT, $6, OPP_JR_TRAINER_F, $a
-	object SPRITE_HIKER, $21, $5, STAY, RIGHT, $7, OPP_HIKER, $b
-	object SPRITE_BLACK_HAIR_BOY_2, $1a, $1e, STAY, DOWN, $8, OPP_POKEMANIAC, $5
+	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
-	EVENT_DISP ROCK_TUNNEL_2_WIDTH, $19, $21 ; ROCK_TUNNEL_1
-	EVENT_DISP ROCK_TUNNEL_2_WIDTH, $3, $1b ; ROCK_TUNNEL_1
-	EVENT_DISP ROCK_TUNNEL_2_WIDTH, $b, $17 ; ROCK_TUNNEL_1
-	EVENT_DISP ROCK_TUNNEL_2_WIDTH, $3, $3 ; ROCK_TUNNEL_1
+	warp_to 33, 25, ROCK_TUNNEL_2_WIDTH ; ROCK_TUNNEL_1
+	warp_to 27, 3, ROCK_TUNNEL_2_WIDTH ; ROCK_TUNNEL_1
+	warp_to 23, 11, ROCK_TUNNEL_2_WIDTH ; ROCK_TUNNEL_1
+	warp_to 3, 3, ROCK_TUNNEL_2_WIDTH ; ROCK_TUNNEL_1
--- a/data/mapObjects/rocktunnelpokecenter.asm
+++ b/data/mapObjects/rocktunnelpokecenter.asm
@@ -1,18 +1,18 @@
 RockTunnelPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
+	db 2 ; warps
+	warp 3, 7, 0, -1
+	warp 4, 7, 0, -1
 
-	db $0 ; signs
+	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, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, ROCK_TUNNEL_POKECENTER_WIDTH
+	warp_to 4, 7, ROCK_TUNNEL_POKECENTER_WIDTH
--- a/data/mapObjects/route1.asm
+++ b/data/mapObjects/route1.asm
@@ -1,14 +1,14 @@
 Route1Object:
 	db $b ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $1 ; signs
-	db $1b, $9, $3 ; Route1Text3
+	db 1 ; signs
+	sign 9, 27, 3 ; Route1Text3
 
-	db $2 ; objects
-	object SPRITE_BUG_CATCHER, $5, $18, WALK, $1, $1 ; person
-	object SPRITE_BUG_CATCHER, $f, $d, WALK, $2, $2 ; person
+	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)
-	EVENT_DISP $4, $7, $2
+	warp_to 2, 7, 4
--- a/data/mapObjects/route10.asm
+++ b/data/mapObjects/route10.asm
@@ -1,28 +1,28 @@
 Route10Object:
 	db $2c ; border block
 
-	db $4 ; warps
-	db $13, $b, $0, ROCK_TUNNEL_POKECENTER
-	db $11, $8, $0, ROCK_TUNNEL_1
-	db $35, $8, $2, ROCK_TUNNEL_1
-	db $27, $6, $0, POWER_PLANT
+	db 4 ; warps
+	warp 11, 19, 0, ROCK_TUNNEL_POKECENTER
+	warp 8, 17, 0, ROCK_TUNNEL_1
+	warp 8, 53, 2, ROCK_TUNNEL_1
+	warp 6, 39, 0, POWER_PLANT
 
-	db $4 ; signs
-	db $13, $7, $7 ; Route10Text7
-	db $13, $c, $8 ; PokeCenterSignText
-	db $37, $9, $9 ; Route10Text9
-	db $29, $5, $a ; Route10Text10
+	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, $a, $2c, STAY, LEFT, $1, OPP_POKEMANIAC, $1
-	object SPRITE_HIKER, $3, $39, STAY, UP, $2, OPP_HIKER, $7
-	object SPRITE_BLACK_HAIR_BOY_2, $e, $40, STAY, LEFT, $3, OPP_POKEMANIAC, $2
-	object SPRITE_LASS, $7, $19, STAY, LEFT, $4, OPP_JR_TRAINER_F, $7
-	object SPRITE_HIKER, $3, $3d, STAY, DOWN, $5, OPP_HIKER, $8
-	object SPRITE_LASS, $7, $36, STAY, DOWN, $6, OPP_JR_TRAINER_F, $8
+	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
-	EVENT_DISP ROUTE_10_WIDTH, $13, $b ; ROCK_TUNNEL_POKECENTER
-	EVENT_DISP ROUTE_10_WIDTH, $11, $8 ; ROCK_TUNNEL_1
-	EVENT_DISP ROUTE_10_WIDTH, $35, $8 ; ROCK_TUNNEL_1
-	EVENT_DISP ROUTE_10_WIDTH, $27, $6 ; POWER_PLANT
+	warp_to 11, 19, ROUTE_10_WIDTH ; ROCK_TUNNEL_POKECENTER
+	warp_to 8, 17, ROUTE_10_WIDTH ; ROCK_TUNNEL_1
+	warp_to 8, 53, ROUTE_10_WIDTH ; ROCK_TUNNEL_1
+	warp_to 6, 39, ROUTE_10_WIDTH ; POWER_PLANT
--- a/data/mapObjects/route11.asm
+++ b/data/mapObjects/route11.asm
@@ -1,31 +1,31 @@
 Route11Object:
 	db $f ; border block
 
-	db $5 ; warps
-	db $8, $31, $0, ROUTE_11_GATE_1F
-	db $9, $31, $1, ROUTE_11_GATE_1F
-	db $8, $3a, $2, ROUTE_11_GATE_1F
-	db $9, $3a, $3, ROUTE_11_GATE_1F
-	db $5, $4, $0, DIGLETTS_CAVE_ENTRANCE
+	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_ENTRANCE
 
-	db $1 ; signs
-	db $5, $1, $b ; Route11Text11
+	db 1 ; signs
+	sign 1, 5, 11 ; Route11Text11
 
-	db $a ; objects
-	object SPRITE_GAMBLER, $a, $e, STAY, DOWN, $1, OPP_GAMBLER, $1
-	object SPRITE_GAMBLER, $1a, $9, STAY, DOWN, $2, OPP_GAMBLER, $2
-	object SPRITE_BUG_CATCHER, $d, $5, STAY, LEFT, $3, OPP_YOUNGSTER, $9
-	object SPRITE_BLACK_HAIR_BOY_2, $24, $b, STAY, DOWN, $4, OPP_ENGINEER, $2
-	object SPRITE_BUG_CATCHER, $16, $4, STAY, UP, $5, OPP_YOUNGSTER, $a
-	object SPRITE_GAMBLER, $2d, $7, STAY, DOWN, $6, OPP_GAMBLER, $3
-	object SPRITE_GAMBLER, $21, $3, STAY, UP, $7, OPP_GAMBLER, $4
-	object SPRITE_BUG_CATCHER, $2b, $5, STAY, RIGHT, $8, OPP_YOUNGSTER, $b
-	object SPRITE_BLACK_HAIR_BOY_2, $2d, $10, STAY, LEFT, $9, OPP_ENGINEER, $3
-	object SPRITE_BUG_CATCHER, $16, $c, STAY, UP, $a, OPP_YOUNGSTER, $c
+	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
-	EVENT_DISP ROUTE_11_WIDTH, $8, $31 ; ROUTE_11_GATE_1F
-	EVENT_DISP ROUTE_11_WIDTH, $9, $31 ; ROUTE_11_GATE_1F
-	EVENT_DISP ROUTE_11_WIDTH, $8, $3a ; ROUTE_11_GATE_1F
-	EVENT_DISP ROUTE_11_WIDTH, $9, $3a ; ROUTE_11_GATE_1F
-	EVENT_DISP ROUTE_11_WIDTH, $5, $4 ; DIGLETTS_CAVE_ENTRANCE
+	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_ENTRANCE
--- a/data/mapObjects/route11gate.asm
+++ b/data/mapObjects/route11gate.asm
@@ -1,21 +1,21 @@
 Route11GateObject:
 	db $a ; border block
 
-	db $5 ; warps
-	db $4, $0, $0, $ff
-	db $5, $0, $1, $ff
-	db $4, $7, $2, $ff
-	db $5, $7, $3, $ff
-	db $8, $6, $0, ROUTE_11_GATE_2F
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $4, $1, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_11_GATE_1F_WIDTH, $4, $0
-	EVENT_DISP ROUTE_11_GATE_1F_WIDTH, $5, $0
-	EVENT_DISP ROUTE_11_GATE_1F_WIDTH, $4, $7
-	EVENT_DISP ROUTE_11_GATE_1F_WIDTH, $5, $7
-	EVENT_DISP ROUTE_11_GATE_1F_WIDTH, $8, $6 ; ROUTE_11_GATE_2F
+	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
--- a/data/mapObjects/route11gateupstairs.asm
+++ b/data/mapObjects/route11gateupstairs.asm
@@ -1,16 +1,16 @@
 Route11GateUpstairsObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_11_GATE_1F
+	db 1 ; warps
+	warp 7, 7, 4, ROUTE_11_GATE_1F
 
-	db $2 ; signs
-	db $2, $1, $3 ; Route11GateUpstairsText3
-	db $2, $6, $4 ; Route11GateUpstairsText4
+	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
+	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
-	EVENT_DISP ROUTE_11_GATE_2F_WIDTH, $7, $7 ; ROUTE_11_GATE_1F
+	warp_to 7, 7, ROUTE_11_GATE_2F_WIDTH ; ROUTE_11_GATE_1F
--- a/data/mapObjects/route12.asm
+++ b/data/mapObjects/route12.asm
@@ -1,30 +1,30 @@
 Route12Object:
 	db $43 ; border block
 
-	db $4 ; warps
-	db $f, $a, $0, ROUTE_12_GATE_1F
-	db $f, $b, $1, ROUTE_12_GATE_1F
-	db $15, $a, $2, ROUTE_12_GATE_1F
-	db $4d, $b, $0, ROUTE_12_HOUSE
+	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_HOUSE
 
-	db $2 ; signs
-	db $d, $d, $b ; Route12Text11
-	db $3f, $b, $c ; Route12Text12
+	db 2 ; signs
+	sign 13, 13, 11 ; Route12Text11
+	sign 11, 63, 12 ; Route12Text12
 
-	db $a ; objects
-	object SPRITE_SNORLAX, $a, $3e, STAY, DOWN, $1 ; person
-	object SPRITE_FISHER2, $e, $1f, STAY, LEFT, $2, OPP_FISHER, $3
-	object SPRITE_FISHER2, $5, $27, STAY, UP, $3, OPP_FISHER, $4
-	object SPRITE_BLACK_HAIR_BOY_1, $b, $5c, STAY, LEFT, $4, OPP_JR_TRAINER_M, $9
-	object SPRITE_BLACK_HAIR_BOY_2, $e, $4c, STAY, UP, $5, OPP_ROCKER, $2
-	object SPRITE_FISHER2, $c, $28, STAY, LEFT, $6, OPP_FISHER, $5
-	object SPRITE_FISHER2, $9, $34, STAY, RIGHT, $7, OPP_FISHER, $6
-	object SPRITE_FISHER2, $6, $57, STAY, DOWN, $8, OPP_FISHER, $b
-	object SPRITE_BALL, $e, $23, STAY, NONE, $9, TM_16
-	object SPRITE_BALL, $5, $59, STAY, NONE, $a, IRON
+	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
-	EVENT_DISP ROUTE_12_WIDTH, $f, $a ; ROUTE_12_GATE_1F
-	EVENT_DISP ROUTE_12_WIDTH, $f, $b ; ROUTE_12_GATE_1F
-	EVENT_DISP ROUTE_12_WIDTH, $15, $a ; ROUTE_12_GATE_1F
-	EVENT_DISP ROUTE_12_WIDTH, $4d, $b ; ROUTE_12_HOUSE
+	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_HOUSE
--- a/data/mapObjects/route12gate.asm
+++ b/data/mapObjects/route12gate.asm
@@ -1,21 +1,21 @@
 Route12GateObject:
 	db $a ; border block
 
-	db $5 ; warps
-	db $0, $4, $0, $ff
-	db $0, $5, $1, $ff
-	db $7, $4, $2, $ff
-	db $7, $5, $2, $ff
-	db $6, $8, $0, ROUTE_12_GATE_2F
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $1, $3, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 1, 3, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_12_GATE_1F_WIDTH, $0, $4
-	EVENT_DISP ROUTE_12_GATE_1F_WIDTH, $0, $5
-	EVENT_DISP ROUTE_12_GATE_1F_WIDTH, $7, $4
-	EVENT_DISP ROUTE_12_GATE_1F_WIDTH, $7, $5
-	EVENT_DISP ROUTE_12_GATE_1F_WIDTH, $6, $8 ; ROUTE_12_GATE_2F
+	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
--- a/data/mapObjects/route12gateupstairs.asm
+++ b/data/mapObjects/route12gateupstairs.asm
@@ -1,15 +1,15 @@
 Route12GateUpstairsObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_12_GATE_1F
+	db 1 ; warps
+	warp 7, 7, 4, ROUTE_12_GATE_1F
 
-	db $2 ; signs
-	db $2, $1, $2 ; Route12GateUpstairsText2
-	db $2, $6, $3 ; Route12GateUpstairsText3
+	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
+	db 1 ; objects
+	object SPRITE_BRUNETTE_GIRL, 3, 4, WALK, 1, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_12_GATE_2F_WIDTH, $7, $7 ; ROUTE_12_GATE_1F
+	warp_to 7, 7, ROUTE_12_GATE_2F_WIDTH ; ROUTE_12_GATE_1F
--- a/data/mapObjects/route12house.asm
+++ b/data/mapObjects/route12house.asm
@@ -1,15 +1,15 @@
 Route12HouseObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
+	db 2 ; warps
+	warp 2, 7, 3, -1
+	warp 3, 7, 3, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FISHER, $2, $4, STAY, RIGHT, $1 ; person
+	db 1 ; objects
+	object SPRITE_FISHER, 2, 4, STAY, RIGHT, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $2
-	EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, ROUTE_12_HOUSE_WIDTH
+	warp_to 3, 7, ROUTE_12_HOUSE_WIDTH
--- a/data/mapObjects/route13.asm
+++ b/data/mapObjects/route13.asm
@@ -1,21 +1,21 @@
 Route13Object:
 	db $43 ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $3 ; signs
-	db $d, $f, $b ; Route13Text11
-	db $5, $21, $c ; Route13Text12
-	db $b, $1f, $d ; Route13Text13
+	db 3 ; signs
+	sign 15, 13, 11 ; Route13Text11
+	sign 33, 5, 12 ; Route13Text12
+	sign 31, 11, 13 ; Route13Text13
 
-	db $a ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $31, $a, STAY, RIGHT, $1, OPP_BIRD_KEEPER, $1
-	object SPRITE_LASS, $30, $a, STAY, DOWN, $2, OPP_JR_TRAINER_F, $c
-	object SPRITE_LASS, $1b, $9, STAY, DOWN, $3, OPP_JR_TRAINER_F, $d
-	object SPRITE_LASS, $17, $a, STAY, LEFT, $4, OPP_JR_TRAINER_F, $e
-	object SPRITE_LASS, $32, $5, STAY, DOWN, $5, OPP_JR_TRAINER_F, $f
-	object SPRITE_BLACK_HAIR_BOY_1, $c, $4, STAY, RIGHT, $6, OPP_BIRD_KEEPER, $2
-	object SPRITE_FOULARD_WOMAN, $21, $6, STAY, DOWN, $7, OPP_BEAUTY, $4
-	object SPRITE_FOULARD_WOMAN, $20, $6, STAY, DOWN, $8, OPP_BEAUTY, $5
-	object SPRITE_BIKER, $a, $7, STAY, UP, $9, OPP_BIKER, $1
-	object SPRITE_BLACK_HAIR_BOY_1, $7, $d, STAY, UP, $a, OPP_BIRD_KEEPER, $3
+	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
--- a/data/mapObjects/route14.asm
+++ b/data/mapObjects/route14.asm
@@ -1,19 +1,19 @@
 Route14Object:
 	db $43 ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $1 ; signs
-	db $d, $11, $b ; Route14Text11
+	db 1 ; signs
+	sign 17, 13, 11 ; Route14Text11
 
-	db $a ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $4, $4, STAY, DOWN, $1, OPP_BIRD_KEEPER, $e
-	object SPRITE_BLACK_HAIR_BOY_1, $f, $6, STAY, DOWN, $2, OPP_BIRD_KEEPER, $f
-	object SPRITE_BLACK_HAIR_BOY_1, $c, $b, STAY, DOWN, $3, OPP_BIRD_KEEPER, $10
-	object SPRITE_BLACK_HAIR_BOY_1, $e, $f, STAY, UP, $4, OPP_BIRD_KEEPER, $11
-	object SPRITE_BLACK_HAIR_BOY_1, $f, $1f, STAY, LEFT, $5, OPP_BIRD_KEEPER, $4
-	object SPRITE_BLACK_HAIR_BOY_1, $6, $31, STAY, UP, $6, OPP_BIRD_KEEPER, $5
-	object SPRITE_BIKER, $5, $27, STAY, DOWN, $7, OPP_BIKER, $d
-	object SPRITE_BIKER, $4, $1e, STAY, RIGHT, $8, OPP_BIKER, $e
-	object SPRITE_BIKER, $f, $1e, STAY, LEFT, $9, OPP_BIKER, $f
-	object SPRITE_BIKER, $4, $1f, STAY, RIGHT, $a, OPP_BIKER, $2
+	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
--- a/data/mapObjects/route15.asm
+++ b/data/mapObjects/route15.asm
@@ -1,30 +1,30 @@
 Route15Object:
 	db $43 ; border block
 
-	db $4 ; warps
-	db $8, $7, $0, ROUTE_15_GATE_1F
-	db $9, $7, $1, ROUTE_15_GATE_1F
-	db $8, $e, $2, ROUTE_15_GATE_1F
-	db $9, $e, $3, ROUTE_15_GATE_1F
+	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
-	db $9, $27, $c ; Route15Text12
+	db 1 ; signs
+	sign 39, 9, 12 ; Route15Text12
 
-	db $b ; objects
-	object SPRITE_LASS, $29, $b, STAY, DOWN, $1, OPP_JR_TRAINER_F, $14
-	object SPRITE_LASS, $35, $a, STAY, LEFT, $2, OPP_JR_TRAINER_F, $15
-	object SPRITE_BLACK_HAIR_BOY_1, $1f, $d, STAY, UP, $3, OPP_BIRD_KEEPER, $6
-	object SPRITE_BLACK_HAIR_BOY_1, $23, $d, STAY, UP, $4, OPP_BIRD_KEEPER, $7
-	object SPRITE_FOULARD_WOMAN, $35, $b, STAY, DOWN, $5, OPP_BEAUTY, $9
-	object SPRITE_FOULARD_WOMAN, $29, $a, STAY, RIGHT, $6, OPP_BEAUTY, $a
-	object SPRITE_BIKER, $30, $a, STAY, DOWN, $7, OPP_BIKER, $3
-	object SPRITE_BIKER, $2e, $a, STAY, DOWN, $8, OPP_BIKER, $4
-	object SPRITE_LASS, $25, $5, STAY, RIGHT, $9, OPP_JR_TRAINER_F, $16
-	object SPRITE_LASS, $12, $d, STAY, UP, $a, OPP_JR_TRAINER_F, $17
-	object SPRITE_BALL, $12, $5, STAY, NONE, $b, TM_20
+	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
-	EVENT_DISP ROUTE_15_WIDTH, $8, $7 ; ROUTE_15_GATE_1F
-	EVENT_DISP ROUTE_15_WIDTH, $9, $7 ; ROUTE_15_GATE_1F
-	EVENT_DISP ROUTE_15_WIDTH, $8, $e ; ROUTE_15_GATE_1F
-	EVENT_DISP ROUTE_15_WIDTH, $9, $e ; ROUTE_15_GATE_1F
+	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
--- a/data/mapObjects/route15gate.asm
+++ b/data/mapObjects/route15gate.asm
@@ -1,21 +1,21 @@
 Route15GateObject:
 	db $a ; border block
 
-	db $5 ; warps
-	db $4, $0, $0, $ff
-	db $5, $0, $1, $ff
-	db $4, $7, $2, $ff
-	db $5, $7, $3, $ff
-	db $8, $6, $0, ROUTE_15_GATE_2F
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $4, $1, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 4, 1, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_15_GATE_1F_WIDTH, $4, $0
-	EVENT_DISP ROUTE_15_GATE_1F_WIDTH, $5, $0
-	EVENT_DISP ROUTE_15_GATE_1F_WIDTH, $4, $7
-	EVENT_DISP ROUTE_15_GATE_1F_WIDTH, $5, $7
-	EVENT_DISP ROUTE_15_GATE_1F_WIDTH, $8, $6 ; ROUTE_15_GATE_2F
+	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
--- a/data/mapObjects/route15gateupstairs.asm
+++ b/data/mapObjects/route15gateupstairs.asm
@@ -1,14 +1,14 @@
 Route15GateUpstairsObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_15_GATE_1F
+	db 1 ; warps
+	warp 7, 7, 4, ROUTE_15_GATE_1F
 
-	db $1 ; signs
-	db $2, $6, $2 ; Route15GateUpstairsText2
+	db 1 ; signs
+	sign 6, 2, 2 ; Route15GateUpstairsText2
 
-	db $1 ; objects
-	object SPRITE_OAK_AIDE, $4, $2, STAY, DOWN, $1
+	db 1 ; objects
+	object SPRITE_OAK_AIDE, 4, 2, STAY, DOWN, 1
 
 	; warp-to
-	EVENT_DISP ROUTE_15_GATE_2F_WIDTH, $7, $7 ; ROUTE_15_GATE_1F
+	warp_to 7, 7, ROUTE_15_GATE_2F_WIDTH ; ROUTE_15_GATE_1F
--- a/data/mapObjects/route16.asm
+++ b/data/mapObjects/route16.asm
@@ -1,37 +1,37 @@
 Route16Object:
 	db $f ; border block
 
-	db $9 ; warps
-	db $a, $11, $0, ROUTE_16_GATE_1F
-	db $b, $11, $1, ROUTE_16_GATE_1F
-	db $a, $18, $2, ROUTE_16_GATE_1F
-	db $b, $18, $3, ROUTE_16_GATE_1F
-	db $4, $11, $4, ROUTE_16_GATE_1F
-	db $5, $11, $5, ROUTE_16_GATE_1F
-	db $4, $18, $6, ROUTE_16_GATE_1F
-	db $5, $18, $7, ROUTE_16_GATE_1F
-	db $5, $7, $0, ROUTE_16_HOUSE
+	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_HOUSE
 
-	db $2 ; signs
-	db $b, $1b, $8 ; Route16Text8
-	db $11, $5, $9 ; Route16Text9
+	db 2 ; signs
+	sign 27, 11, 8 ; Route16Text8
+	sign 5, 17, 9 ; Route16Text9
 
-	db $7 ; objects
-	object SPRITE_BIKER, $11, $c, STAY, LEFT, $1, OPP_BIKER, $5
-	object SPRITE_BIKER, $e, $d, STAY, RIGHT, $2, OPP_CUE_BALL, $1
-	object SPRITE_BIKER, $b, $c, STAY, UP, $3, OPP_CUE_BALL, $2
-	object SPRITE_BIKER, $9, $b, STAY, LEFT, $4, OPP_BIKER, $6
-	object SPRITE_BIKER, $6, $a, STAY, RIGHT, $5, OPP_CUE_BALL, $3
-	object SPRITE_BIKER, $3, $c, STAY, RIGHT, $6, OPP_BIKER, $7
-	object SPRITE_SNORLAX, $1a, $a, STAY, DOWN, $7 ; person
+	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
-	EVENT_DISP ROUTE_16_WIDTH, $a, $11 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $b, $11 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $a, $18 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $b, $18 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $4, $11 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $5, $11 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $4, $18 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $5, $18 ; ROUTE_16_GATE_1F
-	EVENT_DISP ROUTE_16_WIDTH, $5, $7 ; ROUTE_16_HOUSE
+	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_HOUSE
--- a/data/mapObjects/route16gate.asm
+++ b/data/mapObjects/route16gate.asm
@@ -1,30 +1,30 @@
 Route16GateObject:
 	db $a ; border block
 
-	db $9 ; warps
-	db $8, $0, $0, $ff
-	db $9, $0, $1, $ff
-	db $8, $7, $2, $ff
-	db $9, $7, $2, $ff
-	db $2, $0, $4, $ff
-	db $3, $0, $5, $ff
-	db $2, $7, $6, $ff
-	db $3, $7, $7, $ff
-	db $c, $6, $0, ROUTE_16_GATE_2F
+	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 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_GUARD, $4, $5, STAY, DOWN, $1 ; person
-	object SPRITE_GAMBLER, $4, $3, STAY, NONE, $2 ; person
+	db 2 ; objects
+	object SPRITE_GUARD, 4, 5, STAY, DOWN, 1 ; person
+	object SPRITE_GAMBLER, 4, 3, STAY, NONE, 2 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $8, $0
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $9, $0
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $8, $7
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $9, $7
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $2, $0
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $3, $0
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $2, $7
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $3, $7
-	EVENT_DISP ROUTE_16_GATE_1F_WIDTH, $c, $6 ; ROUTE_16_GATE_2F
+	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
--- a/data/mapObjects/route16gateupstairs.asm
+++ b/data/mapObjects/route16gateupstairs.asm
@@ -1,16 +1,16 @@
 Route16GateUpstairsObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $7, $7, $8, ROUTE_16_GATE_1F
+	db 1 ; warps
+	warp 7, 7, 8, ROUTE_16_GATE_1F
 
-	db $2 ; signs
-	db $2, $1, $3 ; Route16GateUpstairsText3
-	db $2, $6, $4 ; Route16GateUpstairsText4
+	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
+	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
-	EVENT_DISP ROUTE_16_GATE_2F_WIDTH, $7, $7 ; ROUTE_16_GATE_1F
+	warp_to 7, 7, ROUTE_16_GATE_2F_WIDTH ; ROUTE_16_GATE_1F
--- a/data/mapObjects/route16house.asm
+++ b/data/mapObjects/route16house.asm
@@ -1,16 +1,16 @@
 Route16HouseObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $8, $ff
-	db $7, $3, $8, $ff
+	db 2 ; warps
+	warp 2, 7, 8, -1
+	warp 3, 7, 8, -1
 
-	db $0 ; signs
+	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
+	db 2 ; objects
+	object SPRITE_BRUNETTE_GIRL, 2, 3, STAY, RIGHT, 1 ; person
+	object SPRITE_BIRD, 6, 4, WALK, 0, 2 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $2
-	EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, ROUTE_16_HOUSE_WIDTH
+	warp_to 3, 7, ROUTE_16_HOUSE_WIDTH
--- a/data/mapObjects/route17.asm
+++ b/data/mapObjects/route17.asm
@@ -1,24 +1,24 @@
 Route17Object:
 	db $43 ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $6 ; signs
-	db $33, $9, $b ; Route17Text11
-	db $3f, $9, $c ; Route17Text12
-	db $4b, $9, $d ; Route17Text13
-	db $57, $9, $e ; Route17Text14
-	db $6f, $9, $f ; Route17Text15
-	db $8d, $9, $10 ; Route17Text16
+	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 $a ; objects
-	object SPRITE_BIKER, $c, $13, STAY, LEFT, $1, OPP_CUE_BALL, $4
-	object SPRITE_BIKER, $b, $10, STAY, RIGHT, $2, OPP_CUE_BALL, $5
-	object SPRITE_BIKER, $4, $12, STAY, UP, $3, OPP_BIKER, $8
-	object SPRITE_BIKER, $7, $20, STAY, LEFT, $4, OPP_BIKER, $9
-	object SPRITE_BIKER, $e, $22, STAY, RIGHT, $5, OPP_BIKER, $a
-	object SPRITE_BIKER, $11, $3a, STAY, LEFT, $6, OPP_CUE_BALL, $6
-	object SPRITE_BIKER, $2, $44, STAY, RIGHT, $7, OPP_CUE_BALL, $7
-	object SPRITE_BIKER, $e, $62, STAY, RIGHT, $8, OPP_CUE_BALL, $8
-	object SPRITE_BIKER, $5, $62, STAY, LEFT, $9, OPP_BIKER, $b
-	object SPRITE_BIKER, $a, $76, STAY, DOWN, $a, OPP_BIKER, $c
+	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
--- a/data/mapObjects/route18.asm
+++ b/data/mapObjects/route18.asm
@@ -1,23 +1,23 @@
 Route18Object:
 	db $43 ; border block
 
-	db $4 ; warps
-	db $8, $21, $0, ROUTE_18_GATE_1F
-	db $9, $21, $1, ROUTE_18_GATE_1F
-	db $8, $28, $2, ROUTE_18_GATE_1F
-	db $9, $28, $3, ROUTE_18_GATE_1F
+	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
-	db $7, $2b, $4 ; Route18Text4
-	db $5, $21, $5 ; Route18Text5
+	db 2 ; signs
+	sign 43, 7, 4 ; Route18Text4
+	sign 33, 5, 5 ; Route18Text5
 
-	db $3 ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $24, $b, STAY, RIGHT, $1, OPP_BIRD_KEEPER, $8
-	object SPRITE_BLACK_HAIR_BOY_1, $28, $f, STAY, LEFT, $2, OPP_BIRD_KEEPER, $9
-	object SPRITE_BLACK_HAIR_BOY_1, $2a, $d, STAY, LEFT, $3, OPP_BIRD_KEEPER, $a
+	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
-	EVENT_DISP ROUTE_18_WIDTH, $8, $21 ; ROUTE_18_GATE_1F
-	EVENT_DISP ROUTE_18_WIDTH, $9, $21 ; ROUTE_18_GATE_1F
-	EVENT_DISP ROUTE_18_WIDTH, $8, $28 ; ROUTE_18_GATE_1F
-	EVENT_DISP ROUTE_18_WIDTH, $9, $28 ; ROUTE_18_GATE_1F
+	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
--- a/data/mapObjects/route18gate.asm
+++ b/data/mapObjects/route18gate.asm
@@ -1,21 +1,21 @@
 Route18GateObject:
 	db $a ; border block
 
-	db $5 ; warps
-	db $4, $0, $0, $ff
-	db $5, $0, $1, $ff
-	db $4, $7, $2, $ff
-	db $5, $7, $3, $ff
-	db $8, $6, $0, ROUTE_18_GATE_2F
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $4, $1, STAY, DOWN, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 4, 1, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_18_GATE_1F_WIDTH, $4, $0
-	EVENT_DISP ROUTE_18_GATE_1F_WIDTH, $5, $0
-	EVENT_DISP ROUTE_18_GATE_1F_WIDTH, $4, $7
-	EVENT_DISP ROUTE_18_GATE_1F_WIDTH, $5, $7
-	EVENT_DISP ROUTE_18_GATE_1F_WIDTH, $8, $6 ; ROUTE_18_GATE_2F
+	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
--- a/data/mapObjects/route18gateupstairs.asm
+++ b/data/mapObjects/route18gateupstairs.asm
@@ -1,15 +1,15 @@
 Route18GateUpstairsObject:
 	db $a ; border block
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_18_GATE_1F
+	db 1 ; warps
+	warp 7, 7, 4, ROUTE_18_GATE_1F
 
-	db $2 ; signs
-	db $2, $1, $2 ; Route18GateUpstairsText2
-	db $2, $6, $3 ; Route18GateUpstairsText3
+	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
+	db 1 ; objects
+	object SPRITE_BUG_CATCHER, 4, 2, WALK, 2, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_18_GATE_2F_WIDTH, $7, $7 ; ROUTE_18_GATE_1F
+	warp_to 7, 7, ROUTE_18_GATE_2F_WIDTH ; ROUTE_18_GATE_1F
--- a/data/mapObjects/route19.asm
+++ b/data/mapObjects/route19.asm
@@ -1,21 +1,21 @@
 Route19Object:
 	db $43 ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $1 ; signs
-	db $9, $b, $b ; Route19Text11
+	db 1 ; signs
+	sign 11, 9, 11 ; Route19Text11
 
-	db $a ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $8, $7, STAY, LEFT, 1, OPP_SWIMMER, 2
-	object SPRITE_BLACK_HAIR_BOY_1, $d, $7, STAY, LEFT, 2, OPP_SWIMMER, 3
-	object SPRITE_SWIMMER, $d, $19, STAY, LEFT, $3, OPP_SWIMMER, $4
-	object SPRITE_SWIMMER, $4, $1b, STAY, RIGHT, $4, OPP_SWIMMER, $5
-	object SPRITE_SWIMMER, $10, $1f, STAY, UP, $5, OPP_SWIMMER, $6
-	object SPRITE_SWIMMER, $9, $b, STAY, DOWN, $6, OPP_SWIMMER, $7
-	object SPRITE_SWIMMER, $8, $2b, STAY, LEFT, $7, OPP_BEAUTY, $c
-	object SPRITE_SWIMMER, $b, $2b, STAY, RIGHT, $8, OPP_BEAUTY, $d
-	object SPRITE_SWIMMER, $9, $2a, STAY, UP, $9, OPP_SWIMMER, $8
-	object SPRITE_SWIMMER, $a, $2c, STAY, DOWN, $a, OPP_BEAUTY, $e
+	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
--- a/data/mapObjects/route2.asm
+++ b/data/mapObjects/route2.asm
@@ -1,33 +1,33 @@
 Route2Object:
 	db $f ; border block
 
-	db $6 ; warps
-	db $9, $c, $0, DIGLETTS_CAVE_EXIT
-	db $b, $3, $1, VIRIDIAN_FOREST_EXIT
-	db $13, $f, $0, ROUTE_2_HOUSE
-	db $23, $10, $1, ROUTE_2_GATE
-	db $27, $f, $2, ROUTE_2_GATE
-	db $2b, $3, $2, VIRIDIAN_FOREST_ENTRANCE
+	db 6 ; warps
+	warp 12, 9, 0, DIGLETTS_CAVE_EXIT
+	warp 3, 11, 1, VIRIDIAN_FOREST_EXIT
+	warp 15, 19, 0, ROUTE_2_HOUSE
+	warp 16, 35, 1, ROUTE_2_GATE
+	warp 15, 39, 2, ROUTE_2_GATE
+	warp 3, 43, 2, VIRIDIAN_FOREST_ENTRANCE
 
-	db $2 ; signs
-	db $41, $5, $3 ; Route2Text3
-	db $b, $b, $4 ; Route2Text4
+	db 2 ; signs
+	sign 5, 65, 3 ; Route2Text3
+	sign 11, 11, 4 ; Route2Text4
 
-	db $2 ; objects
-	object SPRITE_BALL, $d, $36, STAY, NONE, $1, MOON_STONE
-	object SPRITE_BALL, $d, $2d, STAY, NONE, $2, HP_UP
+	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
-	EVENT_DISP ROUTE_2_WIDTH, $9, $c ; DIGLETTS_CAVE_EXIT
-	EVENT_DISP ROUTE_2_WIDTH, $b, $3 ; VIRIDIAN_FOREST_EXIT
-	EVENT_DISP ROUTE_2_WIDTH, $13, $f ; ROUTE_2_HOUSE
-	EVENT_DISP ROUTE_2_WIDTH, $23, $10 ; ROUTE_2_GATE
-	EVENT_DISP ROUTE_2_WIDTH, $27, $f ; ROUTE_2_GATE
-	EVENT_DISP ROUTE_2_WIDTH, $2b, $3 ; VIRIDIAN_FOREST_ENTRANCE
+	warp_to 12, 9, ROUTE_2_WIDTH ; DIGLETTS_CAVE_EXIT
+	warp_to 3, 11, ROUTE_2_WIDTH ; VIRIDIAN_FOREST_EXIT
+	warp_to 15, 19, ROUTE_2_WIDTH ; ROUTE_2_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_ENTRANCE
 
 	; unused
-	EVENT_DISP $4, $7, $2
-	db   $12, $c7, $9, $7
-	EVENT_DISP $4, $7, $2
-	EVENT_DISP $4, $7, $2
-	EVENT_DISP $4, $7, $2
+	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
--- a/data/mapObjects/route20.asm
+++ b/data/mapObjects/route20.asm
@@ -1,26 +1,26 @@
 Route20Object:
 	db $43 ; border block
 
-	db $2 ; warps
-	db $5, $30, $0, SEAFOAM_ISLANDS_1
-	db $9, $3a, $2, SEAFOAM_ISLANDS_1
+	db 2 ; warps
+	warp 48, 5, 0, SEAFOAM_ISLANDS_1
+	warp 58, 9, 2, SEAFOAM_ISLANDS_1
 
-	db $2 ; signs
-	db $7, $33, $b ; Route20Text11
-	db $b, $39, $c ; Route20Text12
+	db 2 ; signs
+	sign 51, 7, 11 ; Route20Text11
+	sign 57, 11, 12 ; Route20Text12
 
-	db $a ; objects
-	object SPRITE_SWIMMER, $57, $8, STAY, UP, $1, OPP_SWIMMER, $9
-	object SPRITE_SWIMMER, $44, $b, STAY, UP, $2, OPP_BEAUTY, $f
-	object SPRITE_SWIMMER, $2d, $a, STAY, DOWN, $3, OPP_BEAUTY, $6
-	object SPRITE_SWIMMER, $37, $e, STAY, RIGHT, $4, OPP_JR_TRAINER_F, $18
-	object SPRITE_SWIMMER, $26, $d, STAY, DOWN, $5, OPP_SWIMMER, $a
-	object SPRITE_SWIMMER, $57, $d, STAY, UP, $6, OPP_SWIMMER, $b
-	object SPRITE_BLACK_HAIR_BOY_1, $22, $9, STAY, UP, $7, OPP_BIRD_KEEPER, $b
-	object SPRITE_SWIMMER, $19, $7, STAY, UP, $8, OPP_BEAUTY, $7
-	object SPRITE_SWIMMER, $18, $c, STAY, DOWN, $9, OPP_JR_TRAINER_F, $10
-	object SPRITE_SWIMMER, $f, $8, STAY, UP, $a, OPP_BEAUTY, $8
+	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
-	EVENT_DISP ROUTE_20_WIDTH, $5, $30 ; SEAFOAM_ISLANDS_1
-	EVENT_DISP ROUTE_20_WIDTH, $9, $3a ; SEAFOAM_ISLANDS_1
+	warp_to 48, 5, ROUTE_20_WIDTH ; SEAFOAM_ISLANDS_1
+	warp_to 58, 9, ROUTE_20_WIDTH ; SEAFOAM_ISLANDS_1
--- a/data/mapObjects/route21.asm
+++ b/data/mapObjects/route21.asm
@@ -1,17 +1,17 @@
 Route21Object:
 	db $43 ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $9 ; objects
-	object SPRITE_FISHER2, $4, $18, STAY, LEFT, $1, OPP_FISHER, $7
-	object SPRITE_FISHER2, $6, $19, STAY, DOWN, $2, OPP_FISHER, $9
-	object SPRITE_SWIMMER, $a, $1f, STAY, UP, $3, OPP_SWIMMER, $c
-	object SPRITE_SWIMMER, $c, $1e, STAY, RIGHT, $4, OPP_CUE_BALL, $9
-	object SPRITE_SWIMMER, $10, $3f, STAY, DOWN, $5, OPP_SWIMMER, $d
-	object SPRITE_SWIMMER, $5, $47, STAY, RIGHT, $6, OPP_SWIMMER, $e
-	object SPRITE_SWIMMER, $f, $47, STAY, LEFT, $7, OPP_SWIMMER, $f
-	object SPRITE_FISHER2, $e, $38, STAY, LEFT, $8, OPP_FISHER, $8
-	object SPRITE_FISHER2, $11, $39, STAY, RIGHT, $9, OPP_FISHER, $a
+	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
--- a/data/mapObjects/route22.asm
+++ b/data/mapObjects/route22.asm
@@ -1,15 +1,15 @@
 Route22Object:
 	db $2c ; border block
 
-	db $1 ; warps
-	db $5, $8, $0, ROUTE_22_GATE
+	db 1 ; warps
+	warp 8, 5, 0, ROUTE_22_GATE
 
-	db $1 ; signs
-	db $b, $7, $3 ; Route22FrontGateText
+	db 1 ; signs
+	sign 7, 11, 3 ; Route22FrontGateText
 
-	db $2 ; objects
-	object SPRITE_BLUE, $19, $5, STAY, NONE, $1 ; person
-	object SPRITE_BLUE, $19, $5, STAY, NONE, $2 ; person
+	db 2 ; objects
+	object SPRITE_BLUE, 25, 5, STAY, NONE, 1 ; person
+	object SPRITE_BLUE, 25, 5, STAY, NONE, 2 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_22_WIDTH, $5, $8 ; ROUTE_22_GATE
+	warp_to 8, 5, ROUTE_22_WIDTH ; ROUTE_22_GATE
--- a/data/mapObjects/route22gate.asm
+++ b/data/mapObjects/route22gate.asm
@@ -1,19 +1,19 @@
 Route22GateObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $7, $4, $0, $ff
-	db $7, $5, $0, $ff
-	db $0, $4, $0, $ff
-	db $0, $5, $1, $ff
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $6, $2, STAY, LEFT, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_22_GATE_WIDTH, $7, $4
-	EVENT_DISP ROUTE_22_GATE_WIDTH, $7, $5
-	EVENT_DISP ROUTE_22_GATE_WIDTH, $0, $4
-	EVENT_DISP ROUTE_22_GATE_WIDTH, $0, $5
+	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
--- a/data/mapObjects/route23.asm
+++ b/data/mapObjects/route23.asm
@@ -1,26 +1,26 @@
 Route23Object:
 	db $f ; border block
 
-	db $4 ; warps
-	db $8b, $7, $2, ROUTE_22_GATE
-	db $8b, $8, $3, ROUTE_22_GATE
-	db $1f, $4, $0, VICTORY_ROAD_1
-	db $1f, $e, $1, VICTORY_ROAD_2
+	db 4 ; warps
+	warp 7, 139, 2, ROUTE_22_GATE
+	warp 8, 139, 3, ROUTE_22_GATE
+	warp 4, 31, 0, VICTORY_ROAD_1
+	warp 14, 31, 1, VICTORY_ROAD_2
 
-	db $1 ; signs
-	db $21, $3, $8 ; Route23Text8
+	db 1 ; signs
+	sign 3, 33, 8 ; Route23Text8
 
-	db $7 ; objects
-	object SPRITE_GUARD, $4, $23, STAY, DOWN, $1 ; person
-	object SPRITE_GUARD, $a, $38, STAY, DOWN, $2 ; person
-	object SPRITE_SWIMMER, $8, $55, STAY, DOWN, $3 ; person
-	object SPRITE_SWIMMER, $b, $60, STAY, DOWN, $4 ; person
-	object SPRITE_GUARD, $c, $69, STAY, DOWN, $5 ; person
-	object SPRITE_GUARD, $8, $77, STAY, DOWN, $6 ; person
-	object SPRITE_GUARD, $8, $88, STAY, DOWN, $7 ; person
+	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
-	EVENT_DISP ROUTE_23_WIDTH, $8b, $7 ; ROUTE_22_GATE
-	EVENT_DISP ROUTE_23_WIDTH, $8b, $8 ; ROUTE_22_GATE
-	EVENT_DISP ROUTE_23_WIDTH, $1f, $4 ; VICTORY_ROAD_1
-	EVENT_DISP ROUTE_23_WIDTH, $1f, $e ; VICTORY_ROAD_2
+	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_1
+	warp_to 14, 31, ROUTE_23_WIDTH ; VICTORY_ROAD_2
--- a/data/mapObjects/route24.asm
+++ b/data/mapObjects/route24.asm
@@ -1,16 +1,16 @@
 Route24Object:
 	db $2c ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $8 ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $b, $f, STAY, LEFT, $1, OPP_ROCKET, $6
-	object SPRITE_BLACK_HAIR_BOY_1, $5, $14, STAY, UP, $2, OPP_JR_TRAINER_M, $2
-	object SPRITE_BLACK_HAIR_BOY_1, $b, $13, STAY, LEFT, $3, OPP_JR_TRAINER_M, $3
-	object SPRITE_LASS, $a, $16, STAY, RIGHT, $4, OPP_LASS, $7
-	object SPRITE_BUG_CATCHER, $b, $19, STAY, LEFT, $5, OPP_YOUNGSTER, $4
-	object SPRITE_LASS, $a, $1c, STAY, RIGHT, $6, OPP_LASS, $8
-	object SPRITE_BUG_CATCHER, $b, $1f, STAY, LEFT, $7, OPP_BUG_CATCHER, $9
-	object SPRITE_BALL, $a, $5, STAY, NONE, $8, TM_45
+	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
--- a/data/mapObjects/route25.asm
+++ b/data/mapObjects/route25.asm
@@ -1,23 +1,23 @@
 Route25Object:
 	db $2c ; border block
 
-	db $1 ; warps
-	db $3, $2d, $0, BILLS_HOUSE
+	db 1 ; warps
+	warp 45, 3, 0, BILLS_HOUSE
 
-	db $1 ; signs
-	db $3, $2b, $b ; Route25Text11
+	db 1 ; signs
+	sign 43, 3, 11 ; Route25Text11
 
-	db $a ; objects
-	object SPRITE_BUG_CATCHER, $e, $2, STAY, DOWN, $1, OPP_YOUNGSTER, $5
-	object SPRITE_BUG_CATCHER, $12, $5, STAY, UP, $2, OPP_YOUNGSTER, $6
-	object SPRITE_BLACK_HAIR_BOY_1, $18, $4, STAY, DOWN, $3, OPP_JR_TRAINER_M, $2
-	object SPRITE_LASS, $12, $8, STAY, RIGHT, $4, OPP_LASS, $9
-	object SPRITE_BUG_CATCHER, $20, $3, STAY, LEFT, $5, OPP_YOUNGSTER, $7
-	object SPRITE_LASS, $25, $4, STAY, DOWN, $6, OPP_LASS, $a
-	object SPRITE_HIKER, $8, $4, STAY, RIGHT, $7, OPP_HIKER, $2
-	object SPRITE_HIKER, $17, $9, STAY, UP, $8, OPP_HIKER, $3
-	object SPRITE_HIKER, $d, $7, STAY, RIGHT, $9, OPP_HIKER, $4
-	object SPRITE_BALL, $16, $2, STAY, NONE, $a, TM_19
+	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
-	EVENT_DISP ROUTE_25_WIDTH, $3, $2d ; BILLS_HOUSE
+	warp_to 45, 3, ROUTE_25_WIDTH ; BILLS_HOUSE
--- a/data/mapObjects/route2gate.asm
+++ b/data/mapObjects/route2gate.asm
@@ -1,20 +1,20 @@
 Route2GateObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $0, $4, $3, $ff
-	db $0, $5, $3, $ff
-	db $7, $4, $4, $ff
-	db $7, $5, $4, $ff
+	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 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
+	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
-	EVENT_DISP ROUTE_2_GATE_WIDTH, $0, $4
-	EVENT_DISP ROUTE_2_GATE_WIDTH, $0, $5
-	EVENT_DISP ROUTE_2_GATE_WIDTH, $7, $4
-	EVENT_DISP ROUTE_2_GATE_WIDTH, $7, $5
+	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
--- a/data/mapObjects/route2house.asm
+++ b/data/mapObjects/route2house.asm
@@ -1,16 +1,16 @@
 Route2HouseObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
+	db 2 ; warps
+	warp 2, 7, 2, -1
+	warp 3, 7, 2, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $2
-	EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, ROUTE_2_HOUSE_WIDTH
+	warp_to 3, 7, ROUTE_2_HOUSE_WIDTH
--- a/data/mapObjects/route3.asm
+++ b/data/mapObjects/route3.asm
@@ -1,18 +1,18 @@
 Route3Object:
 	db $2c ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $1 ; signs
-	db $9, $3b, $a ; Route3Text10
+	db 1 ; signs
+	sign 59, 9, 10 ; Route3Text10
 
-	db $9 ; objects
-	object SPRITE_BLACK_HAIR_BOY_2, $39, $b, STAY, NONE, $1 ; person
-	object SPRITE_BUG_CATCHER, $a, $6, STAY, RIGHT, $2, OPP_BUG_CATCHER, $4
-	object SPRITE_BUG_CATCHER, $e, $4, STAY, DOWN, $3, OPP_YOUNGSTER, $1
-	object SPRITE_LASS, $10, $9, STAY, LEFT, $4, OPP_LASS, $1
-	object SPRITE_BUG_CATCHER, $13, $5, STAY, DOWN, $5, OPP_BUG_CATCHER, $5
-	object SPRITE_LASS, $17, $4, STAY, LEFT, $6, OPP_LASS, $2
-	object SPRITE_BUG_CATCHER, $16, $9, STAY, LEFT, $7, OPP_YOUNGSTER, $2
-	object SPRITE_BUG_CATCHER, $18, $6, STAY, RIGHT, $8, OPP_BUG_CATCHER, $6
-	object SPRITE_LASS, $21, $a, STAY, UP, $9, OPP_LASS, $3
+	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
--- a/data/mapObjects/route4.asm
+++ b/data/mapObjects/route4.asm
@@ -1,22 +1,22 @@
 Route4Object:
 	db $2c ; border block
 
-	db $3 ; warps
-	db $5, $b, $0, MT_MOON_POKECENTER
-	db $5, $12, $0, MT_MOON_1
-	db $5, $18, $7, MT_MOON_2
+	db 3 ; warps
+	warp 11, 5, 0, MT_MOON_POKECENTER
+	warp 18, 5, 0, MT_MOON_1
+	warp 24, 5, 7, MT_MOON_2
 
-	db $3 ; signs
-	db $5, $c, $4 ; PokeCenterSignText
-	db $7, $11, $5 ; Route4Text5
-	db $7, $1b, $6 ; Route4Text6
+	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, $3f, $3, STAY, RIGHT, $2, OPP_LASS, $4
-	object SPRITE_BALL, $39, $3, STAY, NONE, $3, TM_04
+	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
-	EVENT_DISP ROUTE_4_WIDTH, $5, $b ; MT_MOON_POKECENTER
-	EVENT_DISP ROUTE_4_WIDTH, $5, $12 ; MT_MOON_1
-	EVENT_DISP ROUTE_4_WIDTH, $5, $18 ; MT_MOON_2
+	warp_to 11, 5, ROUTE_4_WIDTH ; MT_MOON_POKECENTER
+	warp_to 18, 5, ROUTE_4_WIDTH ; MT_MOON_1
+	warp_to 24, 5, ROUTE_4_WIDTH ; MT_MOON_2
--- a/data/mapObjects/route5.asm
+++ b/data/mapObjects/route5.asm
@@ -1,21 +1,21 @@
 Route5Object:
 	db $a ; border block
 
-	db $5 ; warps
-	db $1d, $a, $3, ROUTE_5_GATE
-	db $1d, $9, $2, ROUTE_5_GATE
-	db $21, $a, $0, ROUTE_5_GATE
-	db $1b, $11, $0, PATH_ENTRANCE_ROUTE_5
-	db $15, $a, $0, DAYCAREM
+	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, PATH_ENTRANCE_ROUTE_5
+	warp 10, 21, 0, DAYCAREM
 
-	db $1 ; signs
-	db $1d, $11, $1 ; Route5Text1
+	db 1 ; signs
+	sign 17, 29, 1 ; Route5Text1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP ROUTE_5_WIDTH, $1d, $a ; ROUTE_5_GATE
-	EVENT_DISP ROUTE_5_WIDTH, $1d, $9 ; ROUTE_5_GATE
-	EVENT_DISP ROUTE_5_WIDTH, $21, $a ; ROUTE_5_GATE
-	EVENT_DISP ROUTE_5_WIDTH, $1b, $11 ; PATH_ENTRANCE_ROUTE_5
-	EVENT_DISP ROUTE_5_WIDTH, $15, $a ; DAYCAREM
+	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 ; PATH_ENTRANCE_ROUTE_5
+	warp_to 10, 21, ROUTE_5_WIDTH ; DAYCAREM
--- a/data/mapObjects/route5gate.asm
+++ b/data/mapObjects/route5gate.asm
@@ -1,19 +1,19 @@
 Route5GateObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $5, $3, $2, $ff
-	db $5, $4, $2, $ff
-	db $0, $3, $1, $ff
-	db $0, $4, $0, $ff
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $1, $3, STAY, RIGHT, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 1, 3, STAY, RIGHT, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_5_GATE_WIDTH, $5, $3
-	EVENT_DISP ROUTE_5_GATE_WIDTH, $5, $4
-	EVENT_DISP ROUTE_5_GATE_WIDTH, $0, $3
-	EVENT_DISP ROUTE_5_GATE_WIDTH, $0, $4
+	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
--- a/data/mapObjects/route6.asm
+++ b/data/mapObjects/route6.asm
@@ -1,25 +1,25 @@
 Route6Object:
 	db $f ; border block
 
-	db $4 ; warps
-	db $1, $9, $2, ROUTE_6_GATE
-	db $1, $a, $2, ROUTE_6_GATE
-	db $7, $a, $0, ROUTE_6_GATE
-	db $d, $11, $0, PATH_ENTRANCE_ROUTE_6
+	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, PATH_ENTRANCE_ROUTE_6
 
-	db $1 ; signs
-	db $f, $13, $7 ; Route6Text7
+	db 1 ; signs
+	sign 19, 15, 7 ; Route6Text7
 
-	db $6 ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $a, $15, STAY, RIGHT, $1, OPP_JR_TRAINER_M, $4
-	object SPRITE_LASS, $b, $15, STAY, LEFT, $2, OPP_JR_TRAINER_F, $2
-	object SPRITE_BUG_CATCHER, $0, $f, STAY, RIGHT, $3, OPP_BUG_CATCHER, $a
-	object SPRITE_BLACK_HAIR_BOY_1, $b, $1f, STAY, LEFT, $4, OPP_JR_TRAINER_M, $5
-	object SPRITE_LASS, $b, $1e, STAY, LEFT, $5, OPP_JR_TRAINER_F, $3
-	object SPRITE_BUG_CATCHER, $13, $1a, STAY, LEFT, $6, OPP_BUG_CATCHER, $b
+	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
-	EVENT_DISP ROUTE_6_WIDTH, $1, $9 ; ROUTE_6_GATE
-	EVENT_DISP ROUTE_6_WIDTH, $1, $a ; ROUTE_6_GATE
-	EVENT_DISP ROUTE_6_WIDTH, $7, $a ; ROUTE_6_GATE
-	EVENT_DISP ROUTE_6_WIDTH, $d, $11 ; PATH_ENTRANCE_ROUTE_6
+	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 ; PATH_ENTRANCE_ROUTE_6
--- a/data/mapObjects/route6gate.asm
+++ b/data/mapObjects/route6gate.asm
@@ -1,19 +1,19 @@
 Route6GateObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $5, $3, $2, $ff
-	db $5, $4, $2, $ff
-	db $0, $3, $1, $ff
-	db $0, $4, $1, $ff
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $6, $2, STAY, LEFT, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 6, 2, STAY, LEFT, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_6_GATE_WIDTH, $5, $3
-	EVENT_DISP ROUTE_6_GATE_WIDTH, $5, $4
-	EVENT_DISP ROUTE_6_GATE_WIDTH, $0, $3
-	EVENT_DISP ROUTE_6_GATE_WIDTH, $0, $4
+	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
--- a/data/mapObjects/route7.asm
+++ b/data/mapObjects/route7.asm
@@ -1,21 +1,21 @@
 Route7Object:
 	db $f ; border block
 
-	db $5 ; warps
-	db $9, $12, $2, ROUTE_7_GATE
-	db $a, $12, $3, ROUTE_7_GATE
-	db $9, $b, $0, ROUTE_7_GATE
-	db $a, $b, $1, ROUTE_7_GATE
-	db $d, $5, $0, PATH_ENTRANCE_ROUTE_7
+	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, PATH_ENTRANCE_ROUTE_7
 
-	db $1 ; signs
-	db $d, $3, $1 ; Route7Text1
+	db 1 ; signs
+	sign 3, 13, 1 ; Route7Text1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP ROUTE_7_WIDTH, $9, $12 ; ROUTE_7_GATE
-	EVENT_DISP ROUTE_7_WIDTH, $a, $12 ; ROUTE_7_GATE
-	EVENT_DISP ROUTE_7_WIDTH, $9, $b ; ROUTE_7_GATE
-	EVENT_DISP ROUTE_7_WIDTH, $a, $b ; ROUTE_7_GATE
-	EVENT_DISP ROUTE_7_WIDTH, $d, $5 ; PATH_ENTRANCE_ROUTE_7
+	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 ; PATH_ENTRANCE_ROUTE_7
--- a/data/mapObjects/route7gate.asm
+++ b/data/mapObjects/route7gate.asm
@@ -1,19 +1,19 @@
 Route7GateObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $3, $0, $3, $ff
-	db $4, $0, $3, $ff
-	db $3, $5, $0, $ff
-	db $4, $5, $1, $ff
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $3, $1, STAY, DOWN, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 3, 1, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_7_GATE_WIDTH, $3, $0
-	EVENT_DISP ROUTE_7_GATE_WIDTH, $4, $0
-	EVENT_DISP ROUTE_7_GATE_WIDTH, $3, $5
-	EVENT_DISP ROUTE_7_GATE_WIDTH, $4, $5
+	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
--- a/data/mapObjects/route8.asm
+++ b/data/mapObjects/route8.asm
@@ -1,30 +1,30 @@
 Route8Object:
 	db $2c ; border block
 
-	db $5 ; warps
-	db $9, $1, $0, ROUTE_8_GATE
-	db $a, $1, $1, ROUTE_8_GATE
-	db $9, $8, $2, ROUTE_8_GATE
-	db $a, $8, $3, ROUTE_8_GATE
-	db $3, $d, $0, PATH_ENTRANCE_ROUTE_8
+	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, PATH_ENTRANCE_ROUTE_8
 
-	db $1 ; signs
-	db $3, $11, $a ; Route8Text10
+	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, $d, $9, STAY, UP, $2, OPP_GAMBLER, $5
-	object SPRITE_BLACK_HAIR_BOY_2, $2a, $6, STAY, UP, $3, OPP_SUPER_NERD, $4
-	object SPRITE_LASS, $1a, $3, STAY, LEFT, $4, OPP_LASS, $d
-	object SPRITE_BLACK_HAIR_BOY_2, $1a, $4, STAY, RIGHT, $5, OPP_SUPER_NERD, $5
-	object SPRITE_LASS, $1a, $5, STAY, LEFT, $6, OPP_LASS, $e
-	object SPRITE_LASS, $1a, $6, STAY, RIGHT, $7, OPP_LASS, $f
-	object SPRITE_GAMBLER, $2e, $d, STAY, DOWN, $8, OPP_GAMBLER, $7
-	object SPRITE_LASS, $33, $c, STAY, LEFT, $9, OPP_LASS, $10
+	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
-	EVENT_DISP ROUTE_8_WIDTH, $9, $1 ; ROUTE_8_GATE
-	EVENT_DISP ROUTE_8_WIDTH, $a, $1 ; ROUTE_8_GATE
-	EVENT_DISP ROUTE_8_WIDTH, $9, $8 ; ROUTE_8_GATE
-	EVENT_DISP ROUTE_8_WIDTH, $a, $8 ; ROUTE_8_GATE
-	EVENT_DISP ROUTE_8_WIDTH, $3, $d ; PATH_ENTRANCE_ROUTE_8
+	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 ; PATH_ENTRANCE_ROUTE_8
--- a/data/mapObjects/route8gate.asm
+++ b/data/mapObjects/route8gate.asm
@@ -1,19 +1,19 @@
 Route8GateObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $3, $0, $0, $ff
-	db $4, $0, $1, $ff
-	db $3, $5, $2, $ff
-	db $4, $5, $3, $ff
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GUARD, $2, $1, STAY, DOWN, $1 ; person
+	db 1 ; objects
+	object SPRITE_GUARD, 2, 1, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP ROUTE_8_GATE_WIDTH, $3, $0
-	EVENT_DISP ROUTE_8_GATE_WIDTH, $4, $0
-	EVENT_DISP ROUTE_8_GATE_WIDTH, $3, $5
-	EVENT_DISP ROUTE_8_GATE_WIDTH, $4, $5
+	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
--- a/data/mapObjects/route9.asm
+++ b/data/mapObjects/route9.asm
@@ -1,19 +1,19 @@
 Route9Object:
 	db $2c ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $1 ; signs
-	db $7, $19, $b ; Route9Text11
+	db 1 ; signs
+	sign 25, 7, 11 ; Route9Text11
 
-	db $a ; objects
-	object SPRITE_LASS, $d, $a, STAY, LEFT, $1, OPP_JR_TRAINER_F, $5
-	object SPRITE_BLACK_HAIR_BOY_1, $18, $7, STAY, LEFT, $2, OPP_JR_TRAINER_M, $7
-	object SPRITE_BLACK_HAIR_BOY_1, $1f, $7, STAY, RIGHT, $3, OPP_JR_TRAINER_M, $8
-	object SPRITE_LASS, $30, $8, STAY, RIGHT, $4, OPP_JR_TRAINER_F, $6
-	object SPRITE_HIKER, $10, $f, STAY, LEFT, $5, OPP_HIKER, $b
-	object SPRITE_HIKER, $2b, $3, STAY, LEFT, $6, OPP_HIKER, $6
-	object SPRITE_BUG_CATCHER, $16, $2, STAY, DOWN, $7, OPP_BUG_CATCHER, $d
-	object SPRITE_HIKER, $2d, $f, STAY, RIGHT, $8, OPP_HIKER, $5
-	object SPRITE_BUG_CATCHER, $28, $8, STAY, RIGHT, $9, OPP_BUG_CATCHER, $e
-	object SPRITE_BALL, $a, $f, STAY, NONE, $a, TM_30
+	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
--- a/data/mapObjects/safarizonecenter.asm
+++ b/data/mapObjects/safarizonecenter.asm
@@ -1,31 +1,31 @@
 SafariZoneCenterObject:
 	db $0 ; border block
 
-	db $9 ; warps
-	db $19, $e, $2, SAFARI_ZONE_ENTRANCE
-	db $19, $f, $3, SAFARI_ZONE_ENTRANCE
-	db $a, $0, $4, SAFARI_ZONE_WEST
-	db $b, $0, $5, SAFARI_ZONE_WEST
-	db $0, $e, $4, SAFARI_ZONE_NORTH
-	db $0, $f, $5, SAFARI_ZONE_NORTH
-	db $a, $1d, $2, SAFARI_ZONE_EAST
-	db $b, $1d, $3, SAFARI_ZONE_EAST
-	db $13, $11, $0, SAFARI_ZONE_REST_HOUSE_1
+	db 9 ; warps
+	warp 14, 25, 2, SAFARI_ZONE_ENTRANCE
+	warp 15, 25, 3, SAFARI_ZONE_ENTRANCE
+	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_REST_HOUSE_1
 
-	db $2 ; signs
-	db $14, $12, $2 ; SafariZoneCenterText2
-	db $16, $e, $3 ; SafariZoneCenterText3
+	db 2 ; signs
+	sign 18, 20, 2 ; SafariZoneCenterText2
+	sign 14, 22, 3 ; SafariZoneCenterText3
 
-	db $1 ; objects
-	object SPRITE_BALL, $e, $a, STAY, NONE, $1, NUGGET
+	db 1 ; objects
+	object SPRITE_BALL, 14, 10, STAY, NONE, 1, NUGGET
 
 	; warp-to
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $19, $e ; SAFARI_ZONE_ENTRANCE
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $19, $f ; SAFARI_ZONE_ENTRANCE
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $a, $0 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $b, $0 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $0, $e ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $0, $f ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $a, $1d ; SAFARI_ZONE_EAST
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $b, $1d ; SAFARI_ZONE_EAST
-	EVENT_DISP SAFARI_ZONE_CENTER_WIDTH, $13, $11 ; SAFARI_ZONE_REST_HOUSE_1
+	warp_to 14, 25, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_ENTRANCE
+	warp_to 15, 25, SAFARI_ZONE_CENTER_WIDTH ; SAFARI_ZONE_ENTRANCE
+	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_REST_HOUSE_1
--- a/data/mapObjects/safarizoneeast.asm
+++ b/data/mapObjects/safarizoneeast.asm
@@ -1,27 +1,27 @@
 SafariZoneEastObject:
 	db $0 ; border block
 
-	db $5 ; warps
-	db $4, $0, $6, SAFARI_ZONE_NORTH
-	db $5, $0, $7, SAFARI_ZONE_NORTH
-	db $16, $0, $6, SAFARI_ZONE_CENTER
-	db $17, $0, $6, SAFARI_ZONE_CENTER
-	db $9, $19, $0, SAFARI_ZONE_REST_HOUSE_3
+	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_REST_HOUSE_3
 
-	db $3 ; signs
-	db $a, $1a, $5 ; SafariZoneEastText5
-	db $4, $6, $6 ; SafariZoneEastText6
-	db $17, $5, $7 ; SafariZoneEastText7
+	db 3 ; signs
+	sign 26, 10, 5 ; SafariZoneEastText5
+	sign 6, 4, 6 ; SafariZoneEastText6
+	sign 5, 23, 7 ; SafariZoneEastText7
 
-	db $4 ; objects
-	object SPRITE_BALL, $15, $a, STAY, NONE, $1, FULL_RESTORE
-	object SPRITE_BALL, $3, $7, STAY, NONE, $2, MAX_POTION
-	object SPRITE_BALL, $14, $d, STAY, NONE, $3, CARBOS
-	object SPRITE_BALL, $f, $c, STAY, NONE, $4, TM_37
+	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
-	EVENT_DISP SAFARI_ZONE_EAST_WIDTH, $4, $0 ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_EAST_WIDTH, $5, $0 ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_EAST_WIDTH, $16, $0 ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_EAST_WIDTH, $17, $0 ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_EAST_WIDTH, $9, $19 ; SAFARI_ZONE_REST_HOUSE_3
+	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_REST_HOUSE_3
--- a/data/mapObjects/safarizoneentrance.asm
+++ b/data/mapObjects/safarizoneentrance.asm
@@ -1,20 +1,20 @@
 SafariZoneEntranceObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $5, $3, $4, $ff
-	db $5, $4, $4, $ff
-	db $0, $3, $0, SAFARI_ZONE_CENTER
-	db $0, $4, $1, SAFARI_ZONE_CENTER
+	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 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
+	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
-	EVENT_DISP SAFARI_ZONE_ENTRANCE_WIDTH, $5, $3
-	EVENT_DISP SAFARI_ZONE_ENTRANCE_WIDTH, $5, $4
-	EVENT_DISP SAFARI_ZONE_ENTRANCE_WIDTH, $0, $3 ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_ENTRANCE_WIDTH, $0, $4 ; SAFARI_ZONE_CENTER
+	warp_to 3, 5, SAFARI_ZONE_ENTRANCE_WIDTH
+	warp_to 4, 5, SAFARI_ZONE_ENTRANCE_WIDTH
+	warp_to 3, 0, SAFARI_ZONE_ENTRANCE_WIDTH ; SAFARI_ZONE_CENTER
+	warp_to 4, 0, SAFARI_ZONE_ENTRANCE_WIDTH ; SAFARI_ZONE_CENTER
--- a/data/mapObjects/safarizonenorth.asm
+++ b/data/mapObjects/safarizonenorth.asm
@@ -1,35 +1,35 @@
 SafariZoneNorthObject:
 	db $0 ; border block
 
-	db $9 ; warps
-	db $23, $2, $0, SAFARI_ZONE_WEST
-	db $23, $3, $1, SAFARI_ZONE_WEST
-	db $23, $8, $2, SAFARI_ZONE_WEST
-	db $23, $9, $3, SAFARI_ZONE_WEST
-	db $23, $14, $4, SAFARI_ZONE_CENTER
-	db $23, $15, $5, SAFARI_ZONE_CENTER
-	db $1e, $27, $0, SAFARI_ZONE_EAST
-	db $1f, $27, $1, SAFARI_ZONE_EAST
-	db $3, $23, $0, SAFARI_ZONE_REST_HOUSE_4
+	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_REST_HOUSE_4
 
-	db $5 ; signs
-	db $4, $24, $3 ; SafariZoneNorthText3
-	db $19, $4, $4 ; SafariZoneNorthText4
-	db $1f, $d, $5 ; SafariZoneNorthText5
-	db $21, $13, $6 ; SafariZoneNorthText6
-	db $1c, $1a, $7 ; SafariZoneNorthText7
+	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, $19, $1, STAY, NONE, $1, PROTEIN
-	object SPRITE_BALL, $13, $7, STAY, NONE, $2, TM_40
+	db 2 ; objects
+	object SPRITE_BALL, 25, 1, STAY, NONE, 1, PROTEIN
+	object SPRITE_BALL, 19, 7, STAY, NONE, 2, TM_40
 
 	; warp-to
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $2 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $3 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $8 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $9 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $14 ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $23, $15 ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $1e, $27 ; SAFARI_ZONE_EAST
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $1f, $27 ; SAFARI_ZONE_EAST
-	EVENT_DISP SAFARI_ZONE_NORTH_WIDTH, $3, $23 ; SAFARI_ZONE_REST_HOUSE_4
+	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_REST_HOUSE_4
--- a/data/mapObjects/safarizoneresthouse1.asm
+++ b/data/mapObjects/safarizoneresthouse1.asm
@@ -1,16 +1,16 @@
 SafariZoneRestHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $8, SAFARI_ZONE_CENTER
-	db $7, $3, $8, SAFARI_ZONE_CENTER
+	db 2 ; warps
+	warp 2, 7, 8, SAFARI_ZONE_CENTER
+	warp 3, 7, 8, SAFARI_ZONE_CENTER
 
-	db $0 ; signs
+	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
+	db 2 ; objects
+	object SPRITE_GIRL, 3, 2, STAY, DOWN, 1 ; person
+	object SPRITE_OAK_AIDE, 1, 4, WALK, 1, 2 ; person
 
 	; warp-to
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_1_WIDTH, $7, $2 ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_1_WIDTH, $7, $3 ; SAFARI_ZONE_CENTER
+	warp_to 2, 7, SAFARI_ZONE_REST_HOUSE_1_WIDTH ; SAFARI_ZONE_CENTER
+	warp_to 3, 7, SAFARI_ZONE_REST_HOUSE_1_WIDTH ; SAFARI_ZONE_CENTER
--- a/data/mapObjects/safarizoneresthouse2.asm
+++ b/data/mapObjects/safarizoneresthouse2.asm
@@ -1,17 +1,17 @@
 SafariZoneRestHouse2Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $7, SAFARI_ZONE_WEST
-	db $7, $3, $7, SAFARI_ZONE_WEST
+	db 2 ; warps
+	warp 2, 7, 7, SAFARI_ZONE_WEST
+	warp 3, 7, 7, SAFARI_ZONE_WEST
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_2_WIDTH, $7, $2 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_2_WIDTH, $7, $3 ; SAFARI_ZONE_WEST
+	warp_to 2, 7, SAFARI_ZONE_REST_HOUSE_2_WIDTH ; SAFARI_ZONE_WEST
+	warp_to 3, 7, SAFARI_ZONE_REST_HOUSE_2_WIDTH ; SAFARI_ZONE_WEST
--- a/data/mapObjects/safarizoneresthouse3.asm
+++ b/data/mapObjects/safarizoneresthouse3.asm
@@ -1,17 +1,17 @@
 SafariZoneRestHouse3Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $4, SAFARI_ZONE_EAST
-	db $7, $3, $4, SAFARI_ZONE_EAST
+	db 2 ; warps
+	warp 2, 7, 4, SAFARI_ZONE_EAST
+	warp 3, 7, 4, SAFARI_ZONE_EAST
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_3_WIDTH, $7, $2 ; SAFARI_ZONE_EAST
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_3_WIDTH, $7, $3 ; SAFARI_ZONE_EAST
+	warp_to 2, 7, SAFARI_ZONE_REST_HOUSE_3_WIDTH ; SAFARI_ZONE_EAST
+	warp_to 3, 7, SAFARI_ZONE_REST_HOUSE_3_WIDTH ; SAFARI_ZONE_EAST
--- a/data/mapObjects/safarizoneresthouse4.asm
+++ b/data/mapObjects/safarizoneresthouse4.asm
@@ -1,17 +1,17 @@
 SafariZoneRestHouse4Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $8, SAFARI_ZONE_NORTH
-	db $7, $3, $8, SAFARI_ZONE_NORTH
+	db 2 ; warps
+	warp 2, 7, 8, SAFARI_ZONE_NORTH
+	warp 3, 7, 8, SAFARI_ZONE_NORTH
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_4_WIDTH, $7, $2 ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_REST_HOUSE_4_WIDTH, $7, $3 ; SAFARI_ZONE_NORTH
+	warp_to 2, 7, SAFARI_ZONE_REST_HOUSE_4_WIDTH ; SAFARI_ZONE_NORTH
+	warp_to 3, 7, SAFARI_ZONE_REST_HOUSE_4_WIDTH ; SAFARI_ZONE_NORTH
--- a/data/mapObjects/safarizonesecrethouse.asm
+++ b/data/mapObjects/safarizonesecrethouse.asm
@@ -1,15 +1,15 @@
 SafariZoneSecretHouseObject:
 	db $17 ; border block
 
-	db $2 ; warps
-	db $7, $2, $6, SAFARI_ZONE_WEST
-	db $7, $3, $6, SAFARI_ZONE_WEST
+	db 2 ; warps
+	warp 2, 7, 6, SAFARI_ZONE_WEST
+	warp 3, 7, 6, SAFARI_ZONE_WEST
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FISHER, $3, $3, STAY, DOWN, $1 ; person
+	db 1 ; objects
+	object SPRITE_FISHER, 3, 3, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP SAFARI_ZONE_SECRET_HOUSE_WIDTH, $7, $2 ; SAFARI_ZONE_WEST
-	EVENT_DISP SAFARI_ZONE_SECRET_HOUSE_WIDTH, $7, $3 ; SAFARI_ZONE_WEST
+	warp_to 2, 7, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; SAFARI_ZONE_WEST
+	warp_to 3, 7, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; SAFARI_ZONE_WEST
--- a/data/mapObjects/safarizonewest.asm
+++ b/data/mapObjects/safarizonewest.asm
@@ -1,34 +1,34 @@
 SafariZoneWestObject:
 	db $0 ; border block
 
-	db $8 ; warps
-	db $0, $14, $0, SAFARI_ZONE_NORTH
-	db $0, $15, $1, SAFARI_ZONE_NORTH
-	db $0, $1a, $2, SAFARI_ZONE_NORTH
-	db $0, $1b, $3, SAFARI_ZONE_NORTH
-	db $16, $1d, $2, SAFARI_ZONE_CENTER
-	db $17, $1d, $3, SAFARI_ZONE_CENTER
-	db $3, $3, $0, SAFARI_ZONE_SECRET_HOUSE
-	db $b, $b, $0, SAFARI_ZONE_REST_HOUSE_2
+	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_REST_HOUSE_2
 
-	db $4 ; signs
-	db $c, $c, $5 ; SafariZoneWestText5
-	db $3, $11, $6 ; SafariZoneWestText6
-	db $4, $1a, $7 ; SafariZoneWestText7
-	db $16, $18, $8 ; SafariZoneWestText8
+	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, $14, STAY, NONE, $1, MAX_POTION
-	object SPRITE_BALL, $9, $7, STAY, NONE, $2, TM_32
-	object SPRITE_BALL, $12, $12, STAY, NONE, $3, MAX_REVIVE
-	object SPRITE_BALL, $13, $7, STAY, NONE, $4, GOLD_TEETH
+	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
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $0, $14 ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $0, $15 ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $0, $1a ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $0, $1b ; SAFARI_ZONE_NORTH
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $16, $1d ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $17, $1d ; SAFARI_ZONE_CENTER
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $3, $3 ; SAFARI_ZONE_SECRET_HOUSE
-	EVENT_DISP SAFARI_ZONE_WEST_WIDTH, $b, $b ; SAFARI_ZONE_REST_HOUSE_2
+	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_REST_HOUSE_2
--- a/data/mapObjects/saffroncity.asm
+++ b/data/mapObjects/saffroncity.asm
@@ -1,51 +1,51 @@
 SaffronCityObject:
 	db $f ; border block
 
-	db $8 ; warps
-	db $5, $7, $0, COPYCATS_HOUSE_1F
-	db $3, $1a, $0, FIGHTING_DOJO
-	db $3, $22, $0, SAFFRON_GYM
-	db $b, $d, $0, SAFFRON_HOUSE_1
-	db $b, $19, $0, SAFFRON_MART
-	db $15, $12, $0, SILPH_CO_1F
-	db $1d, $9, $0, SAFFRON_POKECENTER
-	db $1d, $1d, $0, SAFFRON_HOUSE_2
+	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_HOUSE_1
+	warp 25, 11, 0, SAFFRON_MART
+	warp 18, 21, 0, SILPH_CO_1F
+	warp 9, 29, 0, SAFFRON_POKECENTER
+	warp 29, 29, 0, SAFFRON_HOUSE_2
 
-	db $a ; signs
-	db $5, $11, $10 ; SaffronCityText16
-	db $5, $1b, $11 ; SaffronCityText17
-	db $5, $23, $12 ; SaffronCityText18
-	db $b, $1a, $13 ; MartSignText
-	db $13, $27, $14 ; SaffronCityText20
-	db $15, $5, $15 ; SaffronCityText21
-	db $15, $f, $16 ; SaffronCityText22
-	db $1d, $a, $17 ; PokeCenterSignText
-	db $1d, $1b, $18 ; SaffronCityText24
-	db $13, $1, $19 ; SaffronCityText25
+	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 $f ; objects
-	object SPRITE_ROCKET, $7, $6, STAY, NONE, $1 ; person
-	object SPRITE_ROCKET, $14, $8, WALK, $2, $2 ; person
-	object SPRITE_ROCKET, $22, $4, STAY, NONE, $3 ; person
-	object SPRITE_ROCKET, $d, $c, STAY, NONE, $4 ; person
-	object SPRITE_ROCKET, $b, $19, WALK, $2, $5 ; person
-	object SPRITE_ROCKET, $20, $d, WALK, $2, $6 ; person
-	object SPRITE_ROCKET, $12, $1e, WALK, $2, $7 ; person
-	object SPRITE_OAK_AIDE, $8, $e, WALK, $0, $8 ; person
-	object SPRITE_LAPRAS_GIVER, $17, $17, STAY, NONE, $9 ; person
-	object SPRITE_ERIKA, $11, $1e, WALK, $2, $a ; person
-	object SPRITE_GENTLEMAN, $1e, $c, STAY, DOWN, $b ; person
-	object SPRITE_BIRD, $1f, $c, STAY, DOWN, $c ; person
-	object SPRITE_ROCKER, $12, $8, STAY, UP, $d ; person
-	object SPRITE_ROCKET, $12, $16, STAY, DOWN, $e ; person
-	object SPRITE_ROCKET, $13, $16, STAY, DOWN, $f ; person
+	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
-	EVENT_DISP SAFFRON_CITY_WIDTH, $5, $7 ; COPYCATS_HOUSE_1F
-	EVENT_DISP SAFFRON_CITY_WIDTH, $3, $1a ; FIGHTING_DOJO
-	EVENT_DISP SAFFRON_CITY_WIDTH, $3, $22 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_CITY_WIDTH, $b, $d ; SAFFRON_HOUSE_1
-	EVENT_DISP SAFFRON_CITY_WIDTH, $b, $19 ; SAFFRON_MART
-	EVENT_DISP SAFFRON_CITY_WIDTH, $15, $12 ; SILPH_CO_1F
-	EVENT_DISP SAFFRON_CITY_WIDTH, $1d, $9 ; SAFFRON_POKECENTER
-	EVENT_DISP SAFFRON_CITY_WIDTH, $1d, $1d ; SAFFRON_HOUSE_2
+	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_HOUSE_1
+	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 ; SAFFRON_HOUSE_2
--- a/data/mapObjects/saffrongym.asm
+++ b/data/mapObjects/saffrongym.asm
@@ -1,83 +1,83 @@
 SaffronGymObject:
 	db $2e ; border block
 
-	db $20 ; warps
-	db $11, $8, $2, $ff
-	db $11, $9, $2, $ff
-	db $3, $1, $16, SAFFRON_GYM
-	db $3, $5, $f, SAFFRON_GYM
-	db $5, $1, $12, SAFFRON_GYM
-	db $5, $5, $8, SAFFRON_GYM
-	db $9, $1, $1b, SAFFRON_GYM
-	db $9, $5, $10, SAFFRON_GYM
-	db $b, $1, $5, SAFFRON_GYM
-	db $b, $5, $d, SAFFRON_GYM
-	db $f, $1, $17, SAFFRON_GYM
-	db $f, $5, $1e, SAFFRON_GYM
-	db $11, $1, $11, SAFFRON_GYM
-	db $11, $5, $9, SAFFRON_GYM
-	db $3, $9, $1a, SAFFRON_GYM
-	db $3, $b, $3, SAFFRON_GYM
-	db $5, $9, $7, SAFFRON_GYM
-	db $5, $b, $c, SAFFRON_GYM
-	db $b, $b, $4, SAFFRON_GYM
-	db $f, $b, $1f, SAFFRON_GYM
-	db $3, $f, $18, SAFFRON_GYM
-	db $3, $13, $1c, SAFFRON_GYM
-	db $5, $f, $2, SAFFRON_GYM
-	db $5, $13, $a, SAFFRON_GYM
-	db $9, $f, $14, SAFFRON_GYM
-	db $9, $13, $1d, SAFFRON_GYM
-	db $b, $f, $e, SAFFRON_GYM
-	db $b, $13, $6, SAFFRON_GYM
-	db $f, $f, $15, SAFFRON_GYM
-	db $f, $13, $19, SAFFRON_GYM
-	db $11, $f, $b, SAFFRON_GYM
-	db $11, $13, $13, SAFFRON_GYM
+	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 0 ; signs
 
-	db $9 ; objects
-	object SPRITE_GIRL, $9, $8, STAY, DOWN, $1, OPP_SABRINA, $1
-	object SPRITE_MEDIUM, $a, $1, STAY, DOWN, $2, OPP_CHANNELER, $16
-	object SPRITE_BUG_CATCHER, $11, $1, STAY, DOWN, $3, OPP_PSYCHIC_TR, $1
-	object SPRITE_MEDIUM, $3, $7, STAY, DOWN, $4, OPP_CHANNELER, $17
-	object SPRITE_BUG_CATCHER, $11, $7, STAY, DOWN, $5, OPP_PSYCHIC_TR, $2
-	object SPRITE_MEDIUM, $3, $d, STAY, DOWN, $6, OPP_CHANNELER, $18
-	object SPRITE_BUG_CATCHER, $11, $d, STAY, DOWN, $7, OPP_PSYCHIC_TR, $3
-	object SPRITE_BUG_CATCHER, $3, $1, STAY, DOWN, $8, OPP_PSYCHIC_TR, $4
-	object SPRITE_GYM_HELPER, $a, $f, STAY, DOWN, $9 ; person
+	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
-	EVENT_DISP SAFFRON_GYM_WIDTH, $11, $8
-	EVENT_DISP SAFFRON_GYM_WIDTH, $11, $9
-	EVENT_DISP SAFFRON_GYM_WIDTH, $3, $1 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $3, $5 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $5, $1 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $5, $5 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $9, $1 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $9, $5 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $b, $1 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $b, $5 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $f, $1 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $f, $5 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $11, $1 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $11, $5 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $3, $9 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $3, $b ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $5, $9 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $5, $b ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $b, $b ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $f, $b ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $3, $f ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $3, $13 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $5, $f ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $5, $13 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $9, $f ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $9, $13 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $b, $f ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $b, $13 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $f, $f ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $f, $13 ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $11, $f ; SAFFRON_GYM
-	EVENT_DISP SAFFRON_GYM_WIDTH, $11, $13 ; SAFFRON_GYM
+	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
--- a/data/mapObjects/saffronhouse1.asm
+++ b/data/mapObjects/saffronhouse1.asm
@@ -1,18 +1,18 @@
 SaffronHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
+	db 2 ; warps
+	warp 2, 7, 3, -1
+	warp 3, 7, 3, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $3
+	warp_to 2, 7, SAFFRON_HOUSE_1_WIDTH
+	warp_to 3, 7, SAFFRON_HOUSE_1_WIDTH
--- a/data/mapObjects/saffronhouse2.asm
+++ b/data/mapObjects/saffronhouse2.asm
@@ -1,15 +1,15 @@
 SaffronHouse2Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $7, $ff
-	db $7, $3, $7, $ff
+	db 2 ; warps
+	warp 2, 7, 7, -1
+	warp 3, 7, 7, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FISHER, $5, $3, STAY, LEFT, $1 ; person
+	db 1 ; objects
+	object SPRITE_FISHER, 5, 3, STAY, LEFT, 1 ; person
 
 	; warp-to
-	EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $3
+	warp_to 2, 7, SAFFRON_HOUSE_2_WIDTH
+	warp_to 3, 7, SAFFRON_HOUSE_2_WIDTH
--- a/data/mapObjects/saffronmart.asm
+++ b/data/mapObjects/saffronmart.asm
@@ -1,17 +1,17 @@
 SaffronMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
+	db 2 ; warps
+	warp 3, 7, 4, -1
+	warp 4, 7, 4, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP SAFFRON_MART_WIDTH, $7, $3
-	EVENT_DISP SAFFRON_MART_WIDTH, $7, $4
+	warp_to 3, 7, SAFFRON_MART_WIDTH
+	warp_to 4, 7, SAFFRON_MART_WIDTH
--- a/data/mapObjects/saffronpokecenter.asm
+++ b/data/mapObjects/saffronpokecenter.asm
@@ -1,18 +1,18 @@
 SaffronPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $6, $ff
-	db $7, $4, $6, $ff
+	db 2 ; warps
+	warp 3, 7, 6, -1
+	warp 4, 7, 6, -1
 
-	db $0 ; signs
+	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, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, SAFFRON_POKECENTER_WIDTH
+	warp_to 4, 7, SAFFRON_POKECENTER_WIDTH
--- a/data/mapObjects/school.asm
+++ b/data/mapObjects/school.asm
@@ -1,16 +1,16 @@
 SchoolObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
+	db 2 ; warps
+	warp 2, 7, 2, -1
+	warp 3, 7, 2, -1
 
-	db $0 ; signs
+	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
+	db 2 ; objects
+	object SPRITE_BRUNETTE_GIRL, 3, 5, STAY, UP, 1 ; person
+	object SPRITE_LASS, 4, 1, STAY, DOWN, 2 ; person
 
 	; warp-to
-	EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $2
-	EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $3
+	warp_to 2, 7, VIRIDIAN_SCHOOL_WIDTH
+	warp_to 3, 7, VIRIDIAN_SCHOOL_WIDTH
--- a/data/mapObjects/seafoamislands1.asm
+++ b/data/mapObjects/seafoamislands1.asm
@@ -1,30 +1,30 @@
 SeafoamIslands1Object:
 	db $7d ; border block
 
-	db $7 ; warps
-	db $11, $4, $0, $ff
-	db $11, $5, $0, $ff
-	db $11, $1a, $1, $ff
-	db $11, $1b, $1, $ff
-	db $5, $7, $1, SEAFOAM_ISLANDS_2
-	db $3, $19, $6, SEAFOAM_ISLANDS_2
-	db $f, $17, $4, SEAFOAM_ISLANDS_2
+	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_2
+	warp 25, 3, 6, SEAFOAM_ISLANDS_2
+	warp 23, 15, 4, SEAFOAM_ISLANDS_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_BOULDER, $12, $a, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
-	object SPRITE_BOULDER, $1a, $7, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+	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
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $11, $4
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $11, $5
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $11, $1a
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $11, $1b
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $5, $7 ; SEAFOAM_ISLANDS_2
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $3, $19 ; SEAFOAM_ISLANDS_2
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $f, $17 ; SEAFOAM_ISLANDS_2
+	warp_to 4, 17, SEAFOAM_ISLANDS_1_WIDTH
+	warp_to 5, 17, SEAFOAM_ISLANDS_1_WIDTH
+	warp_to 26, 17, SEAFOAM_ISLANDS_1_WIDTH
+	warp_to 27, 17, SEAFOAM_ISLANDS_1_WIDTH
+	warp_to 7, 5, SEAFOAM_ISLANDS_1_WIDTH ; SEAFOAM_ISLANDS_2
+	warp_to 25, 3, SEAFOAM_ISLANDS_1_WIDTH ; SEAFOAM_ISLANDS_2
+	warp_to 23, 15, SEAFOAM_ISLANDS_1_WIDTH ; SEAFOAM_ISLANDS_2
 
 	; holes
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $6, $11
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $6, $18
+	warp_to 17, 6, SEAFOAM_ISLANDS_1_WIDTH
+	warp_to 24, 6, SEAFOAM_ISLANDS_1_WIDTH
--- a/data/mapObjects/seafoamislands2.asm
+++ b/data/mapObjects/seafoamislands2.asm
@@ -1,26 +1,26 @@
 SeafoamIslands2Object:
 	db $7d ; border block
 
-	db $7 ; warps
-	db $2, $4, $0, SEAFOAM_ISLANDS_3
-	db $5, $7, $4, SEAFOAM_ISLANDS_1
-	db $7, $d, $2, SEAFOAM_ISLANDS_3
-	db $f, $13, $3, SEAFOAM_ISLANDS_3
-	db $f, $17, $6, SEAFOAM_ISLANDS_1
-	db $b, $19, $5, SEAFOAM_ISLANDS_3
-	db $3, $19, $5, SEAFOAM_ISLANDS_1
+	db 7 ; warps
+	warp 4, 2, 0, SEAFOAM_ISLANDS_3
+	warp 7, 5, 4, SEAFOAM_ISLANDS_1
+	warp 13, 7, 2, SEAFOAM_ISLANDS_3
+	warp 19, 15, 3, SEAFOAM_ISLANDS_3
+	warp 23, 15, 6, SEAFOAM_ISLANDS_1
+	warp 25, 11, 5, SEAFOAM_ISLANDS_3
+	warp 25, 3, 5, SEAFOAM_ISLANDS_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_BOULDER, $11, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
-	object SPRITE_BOULDER, $16, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+	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
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $2, $4 ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $5, $7 ; SEAFOAM_ISLANDS_1
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $7, $d ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $f, $13 ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $f, $17 ; SEAFOAM_ISLANDS_1
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $b, $19 ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_2_WIDTH, $3, $19 ; SEAFOAM_ISLANDS_1
+	warp_to 4, 2, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 7, 5, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_1
+	warp_to 13, 7, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 19, 15, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 23, 15, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_1
+	warp_to 25, 11, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 25, 3, SEAFOAM_ISLANDS_2_WIDTH ; SEAFOAM_ISLANDS_1
--- a/data/mapObjects/seafoamislands3.asm
+++ b/data/mapObjects/seafoamislands3.asm
@@ -1,26 +1,26 @@
 SeafoamIslands3Object:
 	db $7d ; border block
 
-	db $7 ; warps
-	db $3, $5, $0, SEAFOAM_ISLANDS_2
-	db $d, $5, $0, SEAFOAM_ISLANDS_4
-	db $7, $d, $2, SEAFOAM_ISLANDS_2
-	db $f, $13, $3, SEAFOAM_ISLANDS_2
-	db $3, $19, $3, SEAFOAM_ISLANDS_4
-	db $b, $19, $5, SEAFOAM_ISLANDS_2
-	db $e, $19, $4, SEAFOAM_ISLANDS_4
+	db 7 ; warps
+	warp 5, 3, 0, SEAFOAM_ISLANDS_2
+	warp 5, 13, 0, SEAFOAM_ISLANDS_4
+	warp 13, 7, 2, SEAFOAM_ISLANDS_2
+	warp 19, 15, 3, SEAFOAM_ISLANDS_2
+	warp 25, 3, 3, SEAFOAM_ISLANDS_4
+	warp 25, 11, 5, SEAFOAM_ISLANDS_2
+	warp 25, 14, 4, SEAFOAM_ISLANDS_4
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_BOULDER, $12, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
-	object SPRITE_BOULDER, $17, $6, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
+	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
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $3, $5 ; SEAFOAM_ISLANDS_2
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $d, $5 ; SEAFOAM_ISLANDS_4
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $7, $d ; SEAFOAM_ISLANDS_2
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $f, $13 ; SEAFOAM_ISLANDS_2
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $3, $19 ; SEAFOAM_ISLANDS_4
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $b, $19 ; SEAFOAM_ISLANDS_2
-	EVENT_DISP SEAFOAM_ISLANDS_3_WIDTH, $e, $19 ; SEAFOAM_ISLANDS_4
+	warp_to 5, 3, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_2
+	warp_to 5, 13, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_4
+	warp_to 13, 7, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_2
+	warp_to 19, 15, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_2
+	warp_to 25, 3, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_4
+	warp_to 25, 11, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_2
+	warp_to 25, 14, SEAFOAM_ISLANDS_3_WIDTH ; SEAFOAM_ISLANDS_4
--- a/data/mapObjects/seafoamislands4.asm
+++ b/data/mapObjects/seafoamislands4.asm
@@ -1,30 +1,30 @@
 SeafoamIslands4Object:
 	db $7d ; border block
 
-	db $7 ; warps
-	db $c, $5, $1, SEAFOAM_ISLANDS_3
-	db $6, $8, $2, SEAFOAM_ISLANDS_5
-	db $4, $19, $3, SEAFOAM_ISLANDS_5
-	db $3, $19, $4, SEAFOAM_ISLANDS_3
-	db $e, $19, $6, SEAFOAM_ISLANDS_3
-	db $11, $14, $0, SEAFOAM_ISLANDS_5
-	db $11, $15, $1, SEAFOAM_ISLANDS_5
+	db 7 ; warps
+	warp 5, 12, 1, SEAFOAM_ISLANDS_3
+	warp 8, 6, 2, SEAFOAM_ISLANDS_5
+	warp 25, 4, 3, SEAFOAM_ISLANDS_5
+	warp 25, 3, 4, SEAFOAM_ISLANDS_3
+	warp 25, 14, 6, SEAFOAM_ISLANDS_3
+	warp 20, 17, 0, SEAFOAM_ISLANDS_5
+	warp 21, 17, 1, SEAFOAM_ISLANDS_5
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $6 ; objects
-	object SPRITE_BOULDER, $5, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $1 ; person
-	object SPRITE_BOULDER, $3, $f, STAY, BOULDER_MOVEMENT_BYTE_2, $2 ; person
-	object SPRITE_BOULDER, $8, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $3 ; person
-	object SPRITE_BOULDER, $9, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $4 ; person
-	object SPRITE_BOULDER, $12, $6, STAY, NONE, $5 ; person
-	object SPRITE_BOULDER, $13, $6, STAY, NONE, $6 ; person
+	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
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $c, $5 ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $6, $8 ; SEAFOAM_ISLANDS_5
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $4, $19 ; SEAFOAM_ISLANDS_5
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $3, $19 ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $e, $19 ; SEAFOAM_ISLANDS_3
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $11, $14 ; SEAFOAM_ISLANDS_5
-	EVENT_DISP SEAFOAM_ISLANDS_4_WIDTH, $11, $15 ; SEAFOAM_ISLANDS_5
+	warp_to 5, 12, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 8, 6, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_5
+	warp_to 25, 4, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_5
+	warp_to 25, 3, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 25, 14, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_3
+	warp_to 20, 17, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_5
+	warp_to 21, 17, SEAFOAM_ISLANDS_4_WIDTH ; SEAFOAM_ISLANDS_5
--- a/data/mapObjects/seafoamislands5.asm
+++ b/data/mapObjects/seafoamislands5.asm
@@ -1,23 +1,23 @@
 SeafoamIslands5Object:
 	db $7d ; border block
 
-	db $4 ; warps
-	db $11, $14, $5, SEAFOAM_ISLANDS_4
-	db $11, $15, $6, SEAFOAM_ISLANDS_4
-	db $7, $b, $1, SEAFOAM_ISLANDS_4
-	db $4, $19, $2, SEAFOAM_ISLANDS_4
+	db 4 ; warps
+	warp 20, 17, 5, SEAFOAM_ISLANDS_4
+	warp 21, 17, 6, SEAFOAM_ISLANDS_4
+	warp 11, 7, 1, SEAFOAM_ISLANDS_4
+	warp 25, 4, 2, SEAFOAM_ISLANDS_4
 
-	db $2 ; signs
-	db $f, $9, $4 ; SeafoamIslands5Text4
-	db $1, $17, $5 ; SeafoamIslands5Text5
+	db 2 ; signs
+	sign 9, 15, 4 ; SeafoamIslands5Text4
+	sign 23, 1, 5 ; SeafoamIslands5Text5
 
-	db $3 ; objects
-	object SPRITE_BOULDER, $4, $f, STAY, NONE, $1 ; person
-	object SPRITE_BOULDER, $5, $f, STAY, NONE, $2 ; person
-	object SPRITE_BIRD, $6, $1, STAY, DOWN, $3, ARTICUNO, 50
+	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
-	EVENT_DISP SEAFOAM_ISLANDS_5_WIDTH, $11, $14 ; SEAFOAM_ISLANDS_4
-	EVENT_DISP SEAFOAM_ISLANDS_5_WIDTH, $11, $15 ; SEAFOAM_ISLANDS_4
-	EVENT_DISP SEAFOAM_ISLANDS_5_WIDTH, $7, $b ; SEAFOAM_ISLANDS_4
-	EVENT_DISP SEAFOAM_ISLANDS_5_WIDTH, $4, $19 ; SEAFOAM_ISLANDS_4
+	warp_to 20, 17, SEAFOAM_ISLANDS_5_WIDTH ; SEAFOAM_ISLANDS_4
+	warp_to 21, 17, SEAFOAM_ISLANDS_5_WIDTH ; SEAFOAM_ISLANDS_4
+	warp_to 11, 7, SEAFOAM_ISLANDS_5_WIDTH ; SEAFOAM_ISLANDS_4
+	warp_to 25, 4, SEAFOAM_ISLANDS_5_WIDTH ; SEAFOAM_ISLANDS_4
--- a/data/mapObjects/silphco1.asm
+++ b/data/mapObjects/silphco1.asm
@@ -1,21 +1,21 @@
 SilphCo1Object:
 	db $2e ; border block
 
-	db $5 ; warps
-	db $11, $a, $5, $ff
-	db $11, $b, $5, $ff
-	db $0, $1a, $0, SILPH_CO_2F
-	db $0, $14, $0, SILPH_CO_ELEVATOR
-	db $a, $10, $6, SILPH_CO_3F
+	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 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_CABLE_CLUB_WOMAN, $4, $2, STAY, DOWN, $1 ; person
+	db 1 ; objects
+	object SPRITE_CABLE_CLUB_WOMAN, 4, 2, STAY, DOWN, 1 ; person
 
 	; warp-to
-	EVENT_DISP SILPH_CO_1F_WIDTH, $11, $a
-	EVENT_DISP SILPH_CO_1F_WIDTH, $11, $b
-	EVENT_DISP SILPH_CO_1F_WIDTH, $0, $1a ; SILPH_CO_2F
-	EVENT_DISP SILPH_CO_1F_WIDTH, $0, $14 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_1F_WIDTH, $a, $10 ; SILPH_CO_3F
+	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
--- a/data/mapObjects/silphco10.asm
+++ b/data/mapObjects/silphco10.asm
@@ -1,28 +1,28 @@
 SilphCo10Object:
 	db $2e ; border block
 
-	db $6 ; warps
-	db $0, $8, $0, SILPH_CO_9F
-	db $0, $a, $0, SILPH_CO_11F
-	db $0, $c, $0, SILPH_CO_ELEVATOR
-	db $b, $9, $3, SILPH_CO_4F
-	db $f, $d, $5, SILPH_CO_4F
-	db $7, $d, $6, SILPH_CO_4F
+	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 0 ; signs
 
-	db $6 ; objects
-	object SPRITE_ROCKET, $1, $9, STAY, RIGHT, $1, OPP_ROCKET, $27
-	object SPRITE_OAK_AIDE, $a, $2, STAY, LEFT, $2, OPP_SCIENTIST, $b
-	object SPRITE_ERIKA, $9, $f, WALK, $0, $3 ; person
-	object SPRITE_BALL, $2, $c, STAY, NONE, $4, TM_26
-	object SPRITE_BALL, $4, $e, STAY, NONE, $5, RARE_CANDY
-	object SPRITE_BALL, $5, $b, STAY, NONE, $6, CARBOS
+	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
-	EVENT_DISP SILPH_CO_10F_WIDTH, $0, $8 ; SILPH_CO_9F
-	EVENT_DISP SILPH_CO_10F_WIDTH, $0, $a ; SILPH_CO_11F
-	EVENT_DISP SILPH_CO_10F_WIDTH, $0, $c ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_10F_WIDTH, $b, $9 ; SILPH_CO_4F
-	EVENT_DISP SILPH_CO_10F_WIDTH, $f, $d ; SILPH_CO_4F
-	EVENT_DISP SILPH_CO_10F_WIDTH, $7, $d ; SILPH_CO_4F
+	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
--- a/data/mapObjects/silphco11.asm
+++ b/data/mapObjects/silphco11.asm
@@ -1,23 +1,23 @@
 SilphCo11Object:
 	db $d ; border block
 
-	db $4 ; warps
-	db $0, $9, $1, SILPH_CO_10F
-	db $0, $d, $0, SILPH_CO_ELEVATOR
-	db $5, $5, $9, $ff
-	db $2, $3, $3, SILPH_CO_7F
+	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 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_MR_MASTERBALL, $7, $5, STAY, DOWN, $1 ; person
-	object SPRITE_FOULARD_WOMAN, $a, $5, STAY, DOWN, $2 ; person
-	object SPRITE_GIOVANNI, $6, $9, STAY, DOWN, $3, OPP_GIOVANNI, $2
-	object SPRITE_ROCKET, $3, $10, STAY, UP, $4, OPP_ROCKET, $29
-	object SPRITE_ROCKET, $f, $9, STAY, UP, $5, OPP_ROCKET, $28
+	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
-	EVENT_DISP SILPH_CO_11F_WIDTH, $0, $9 ; SILPH_CO_10F
-	EVENT_DISP SILPH_CO_11F_WIDTH, $0, $d ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_11F_WIDTH, $5, $5
-	EVENT_DISP SILPH_CO_11F_WIDTH, $2, $3 ; SILPH_CO_7F
+	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
--- a/data/mapObjects/silphco2.asm
+++ b/data/mapObjects/silphco2.asm
@@ -1,29 +1,29 @@
 SilphCo2Object:
 	db $2e ; border block
 
-	db $7 ; warps
-	db $0, $18, $2, SILPH_CO_1F
-	db $0, $1a, $0, SILPH_CO_3F
-	db $0, $14, $0, SILPH_CO_ELEVATOR
-	db $3, $3, $6, SILPH_CO_3F
-	db $3, $d, $4, SILPH_CO_8F
-	db $f, $1b, $5, SILPH_CO_8F
-	db $f, $9, $4, SILPH_CO_6F
+	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 0 ; signs
 
-	db $5 ; objects
-	object SPRITE_ERIKA, $a, $1, STAY, UP, $1 ; person
-	object SPRITE_OAK_AIDE, $5, $c, STAY, DOWN, $2, OPP_SCIENTIST, $2
-	object SPRITE_OAK_AIDE, $18, $d, STAY, LEFT, $3, OPP_SCIENTIST, $3
-	object SPRITE_ROCKET, $10, $b, STAY, UP, $4, OPP_ROCKET, $17
-	object SPRITE_ROCKET, $18, $7, STAY, UP, $5, OPP_ROCKET, $18
+	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
-	EVENT_DISP SILPH_CO_2F_WIDTH, $0, $18 ; SILPH_CO_1F
-	EVENT_DISP SILPH_CO_2F_WIDTH, $0, $1a ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_2F_WIDTH, $0, $14 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_2F_WIDTH, $3, $3 ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_2F_WIDTH, $3, $d ; SILPH_CO_8F
-	EVENT_DISP SILPH_CO_2F_WIDTH, $f, $1b ; SILPH_CO_8F
-	EVENT_DISP SILPH_CO_2F_WIDTH, $f, $9 ; SILPH_CO_6F
+	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
--- a/data/mapObjects/silphco3.asm
+++ b/data/mapObjects/silphco3.asm
@@ -1,34 +1,34 @@
 SilphCo3Object:
 	db $2e ; border block
 
-	db $a ; warps
-	db $0, $1a, $1, SILPH_CO_2F
-	db $0, $18, $0, SILPH_CO_4F
-	db $0, $14, $0, SILPH_CO_ELEVATOR
-	db $b, $17, $9, SILPH_CO_3F
-	db $3, $3, $5, SILPH_CO_5F
-	db $f, $3, $6, SILPH_CO_5F
-	db $3, $1b, $3, SILPH_CO_2F
-	db $b, $3, $3, SILPH_CO_9F
-	db $b, $b, $4, SILPH_CO_7F
-	db $f, $1b, $3, SILPH_CO_3F
+	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 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_LAPRAS_GIVER, $18, $8, STAY, NONE, $1 ; person
-	object SPRITE_ROCKET, $14, $7, STAY, LEFT, $2, OPP_ROCKET, $19
-	object SPRITE_OAK_AIDE, $7, $9, STAY, DOWN, $3, OPP_SCIENTIST, $4
-	object SPRITE_BALL, $8, $5, STAY, NONE, $4, HYPER_POTION
+	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
-	EVENT_DISP SILPH_CO_3F_WIDTH, $0, $1a ; SILPH_CO_2F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $0, $18 ; SILPH_CO_4F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $0, $14 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_3F_WIDTH, $b, $17 ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $3, $3 ; SILPH_CO_5F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $f, $3 ; SILPH_CO_5F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $3, $1b ; SILPH_CO_2F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $b, $3 ; SILPH_CO_9F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $b, $b ; SILPH_CO_7F
-	EVENT_DISP SILPH_CO_3F_WIDTH, $f, $1b ; SILPH_CO_3F
+	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
--- a/data/mapObjects/silphco4.asm
+++ b/data/mapObjects/silphco4.asm
@@ -1,31 +1,31 @@
 SilphCo4Object:
 	db $2e ; border block
 
-	db $7 ; warps
-	db $0, $18, $1, SILPH_CO_3F
-	db $0, $1a, $1, SILPH_CO_5F
-	db $0, $14, $0, SILPH_CO_ELEVATOR
-	db $7, $b, $3, SILPH_CO_10F
-	db $3, $11, $3, SILPH_CO_6F
-	db $f, $3, $4, SILPH_CO_10F
-	db $b, $11, $5, SILPH_CO_10F
+	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 0 ; signs
 
-	db $7 ; objects
-	object SPRITE_LAPRAS_GIVER, $6, $2, STAY, NONE, $1 ; person
-	object SPRITE_ROCKET, $9, $e, STAY, RIGHT, $2, OPP_ROCKET, $1a
-	object SPRITE_OAK_AIDE, $e, $6, STAY, LEFT, $3, OPP_SCIENTIST, $5
-	object SPRITE_ROCKET, $1a, $a, STAY, UP, $4, OPP_ROCKET, $1b
-	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
+	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
-	EVENT_DISP SILPH_CO_4F_WIDTH, $0, $18 ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_4F_WIDTH, $0, $1a ; SILPH_CO_5F
-	EVENT_DISP SILPH_CO_4F_WIDTH, $0, $14 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_4F_WIDTH, $7, $b ; SILPH_CO_10F
-	EVENT_DISP SILPH_CO_4F_WIDTH, $3, $11 ; SILPH_CO_6F
-	EVENT_DISP SILPH_CO_4F_WIDTH, $f, $3 ; SILPH_CO_10F
-	EVENT_DISP SILPH_CO_4F_WIDTH, $b, $11 ; SILPH_CO_10F
+	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
--- a/data/mapObjects/silphco5.asm
+++ b/data/mapObjects/silphco5.asm
@@ -1,35 +1,35 @@
 SilphCo5Object:
 	db $2e ; border block
 
-	db $7 ; warps
-	db $0, $18, $1, SILPH_CO_6F
-	db $0, $1a, $1, SILPH_CO_4F
-	db $0, $14, $0, SILPH_CO_ELEVATOR
-	db $3, $1b, $5, SILPH_CO_7F
-	db $f, $9, $4, SILPH_CO_9F
-	db $5, $b, $4, SILPH_CO_3F
-	db $f, $3, $5, SILPH_CO_3F
+	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 0 ; signs
 
-	db $b ; objects
-	object SPRITE_LAPRAS_GIVER, $d, $9, STAY, NONE, $1 ; person
-	object SPRITE_ROCKET, $8, $10, STAY, RIGHT, $2, OPP_ROCKET, $1c
-	object SPRITE_OAK_AIDE, $8, $3, STAY, RIGHT, $3, OPP_SCIENTIST, $6
-	object SPRITE_ROCKER, $12, $a, STAY, UP, $4, OPP_JUGGLER, $1
-	object SPRITE_ROCKET, $1c, $4, STAY, UP, $5, OPP_ROCKET, $1d
-	object SPRITE_BALL, $2, $d, STAY, NONE, $6, TM_09
-	object SPRITE_BALL, $4, $6, STAY, NONE, $7, PROTEIN
-	object SPRITE_BALL, $15, $10, STAY, NONE, $8, CARD_KEY
-	object SPRITE_CLIPBOARD, $16, $c, STAY, NONE, $9 ; person
-	object SPRITE_CLIPBOARD, $19, $a, STAY, NONE, $a ; person
-	object SPRITE_CLIPBOARD, $18, $6, STAY, NONE, $b ; person
+	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
-	EVENT_DISP SILPH_CO_5F_WIDTH, $0, $18 ; SILPH_CO_6F
-	EVENT_DISP SILPH_CO_5F_WIDTH, $0, $1a ; SILPH_CO_4F
-	EVENT_DISP SILPH_CO_5F_WIDTH, $0, $14 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_5F_WIDTH, $3, $1b ; SILPH_CO_7F
-	EVENT_DISP SILPH_CO_5F_WIDTH, $f, $9 ; SILPH_CO_9F
-	EVENT_DISP SILPH_CO_5F_WIDTH, $5, $b ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_5F_WIDTH, $f, $3 ; SILPH_CO_3F
+	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
--- a/data/mapObjects/silphco6.asm
+++ b/data/mapObjects/silphco6.asm
@@ -1,30 +1,30 @@
 SilphCo6Object:
 	db $2e ; border block
 
-	db $5 ; warps
-	db $0, $10, $1, SILPH_CO_7F
-	db $0, $e, $0, SILPH_CO_5F
-	db $0, $12, $0, SILPH_CO_ELEVATOR
-	db $3, $3, $4, SILPH_CO_4F
-	db $3, $17, $6, SILPH_CO_2F
+	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 0 ; signs
 
-	db $a ; objects
-	object SPRITE_LAPRAS_GIVER, $a, $6, STAY, NONE, $1 ; person
-	object SPRITE_LAPRAS_GIVER, $14, $6, STAY, NONE, $2 ; person
-	object SPRITE_ERIKA, $15, $6, STAY, DOWN, $3 ; person
-	object SPRITE_ERIKA, $b, $a, STAY, RIGHT, $4 ; person
-	object SPRITE_LAPRAS_GIVER, $12, $d, STAY, UP, $5 ; person
-	object SPRITE_ROCKET, $11, $3, STAY, RIGHT, $6, OPP_ROCKET, $1e
-	object SPRITE_OAK_AIDE, $7, $8, STAY, DOWN, $7, OPP_SCIENTIST, $7
-	object SPRITE_ROCKET, $e, $f, STAY, LEFT, $8, OPP_ROCKET, $1f
-	object SPRITE_BALL, $3, $c, STAY, NONE, $9, HP_UP
-	object SPRITE_BALL, $2, $f, STAY, NONE, $a, X_ACCURACY
+	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
-	EVENT_DISP SILPH_CO_6F_WIDTH, $0, $10 ; SILPH_CO_7F
-	EVENT_DISP SILPH_CO_6F_WIDTH, $0, $e ; SILPH_CO_5F
-	EVENT_DISP SILPH_CO_6F_WIDTH, $0, $12 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_6F_WIDTH, $3, $3 ; SILPH_CO_4F
-	EVENT_DISP SILPH_CO_6F_WIDTH, $3, $17 ; SILPH_CO_2F
+	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
--- a/data/mapObjects/silphco7.asm
+++ b/data/mapObjects/silphco7.asm
@@ -1,33 +1,33 @@
 SilphCo7Object:
 	db $2e ; border block
 
-	db $6 ; warps
-	db $0, $10, $1, SILPH_CO_8F
-	db $0, $16, $0, SILPH_CO_6F
-	db $0, $12, $0, SILPH_CO_ELEVATOR
-	db $7, $5, $3, SILPH_CO_11F
-	db $3, $5, $8, SILPH_CO_3F
-	db $f, $15, $3, SILPH_CO_5F
+	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 0 ; signs
 
-	db $b ; objects
-	object SPRITE_LAPRAS_GIVER, $1, $5, STAY, NONE, $1 ; person
-	object SPRITE_LAPRAS_GIVER, $d, $d, STAY, UP, $2 ; person
-	object SPRITE_LAPRAS_GIVER, $7, $a, STAY, NONE, $3 ; person
-	object SPRITE_ERIKA, $a, $8, STAY, NONE, $4 ; person
-	object SPRITE_ROCKET, $d, $1, STAY, DOWN, $5, OPP_ROCKET, $20
-	object SPRITE_OAK_AIDE, $2, $d, STAY, DOWN, $6, OPP_SCIENTIST, $8
-	object SPRITE_ROCKET, $14, $2, STAY, LEFT, $7, OPP_ROCKET, $21
-	object SPRITE_ROCKET, $13, $e, STAY, RIGHT, $8, OPP_ROCKET, $22
-	object SPRITE_BLUE, $3, $7, STAY, UP, $9 ; person
-	object SPRITE_BALL, $1, $9, STAY, NONE, $a, CALCIUM
-	object SPRITE_BALL, $18, $b, STAY, NONE, $b, TM_03
+	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
-	EVENT_DISP SILPH_CO_7F_WIDTH, $0, $10 ; SILPH_CO_8F
-	EVENT_DISP SILPH_CO_7F_WIDTH, $0, $16 ; SILPH_CO_6F
-	EVENT_DISP SILPH_CO_7F_WIDTH, $0, $12 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_7F_WIDTH, $7, $5 ; SILPH_CO_11F
-	EVENT_DISP SILPH_CO_7F_WIDTH, $3, $5 ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_7F_WIDTH, $f, $15 ; SILPH_CO_5F
+	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
--- a/data/mapObjects/silphco8.asm
+++ b/data/mapObjects/silphco8.asm
@@ -1,28 +1,28 @@
 SilphCo8Object:
 	db $2e ; border block
 
-	db $7 ; warps
-	db $0, $10, $1, SILPH_CO_9F
-	db $0, $e, $0, SILPH_CO_7F
-	db $0, $12, $0, SILPH_CO_ELEVATOR
-	db $b, $3, $6, SILPH_CO_8F
-	db $f, $3, $4, SILPH_CO_2F
-	db $5, $b, $5, SILPH_CO_2F
-	db $9, $b, $3, SILPH_CO_8F
+	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 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_LAPRAS_GIVER, $4, $2, STAY, NONE, $1 ; person
-	object SPRITE_ROCKET, $13, $2, STAY, LEFT, $2, OPP_ROCKET, $23
-	object SPRITE_OAK_AIDE, $a, $2, STAY, DOWN, $3, OPP_SCIENTIST, $9
-	object SPRITE_ROCKET, $c, $f, STAY, RIGHT, $4, OPP_ROCKET, $24
+	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
-	EVENT_DISP SILPH_CO_8F_WIDTH, $0, $10 ; SILPH_CO_9F
-	EVENT_DISP SILPH_CO_8F_WIDTH, $0, $e ; SILPH_CO_7F
-	EVENT_DISP SILPH_CO_8F_WIDTH, $0, $12 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_8F_WIDTH, $b, $3 ; SILPH_CO_8F
-	EVENT_DISP SILPH_CO_8F_WIDTH, $f, $3 ; SILPH_CO_2F
-	EVENT_DISP SILPH_CO_8F_WIDTH, $5, $b ; SILPH_CO_2F
-	EVENT_DISP SILPH_CO_8F_WIDTH, $9, $b ; SILPH_CO_8F_WIDTH
+	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
--- a/data/mapObjects/silphco9.asm
+++ b/data/mapObjects/silphco9.asm
@@ -1,24 +1,24 @@
 SilphCo9Object:
 	db $2e ; border block
 
-	db $5 ; warps
-	db $0, $e, $0, SILPH_CO_10F
-	db $0, $10, $0, SILPH_CO_8F
-	db $0, $12, $0, SILPH_CO_ELEVATOR
-	db $3, $9, $7, SILPH_CO_3F
-	db $f, $11, $4, SILPH_CO_5F
+	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 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_NURSE, $3, $e, STAY, DOWN, $1 ; person
-	object SPRITE_ROCKET, $2, $4, STAY, UP, $2, OPP_ROCKET, $25
-	object SPRITE_OAK_AIDE, $15, $d, STAY, DOWN, $3, OPP_SCIENTIST, $a
-	object SPRITE_ROCKET, $d, $10, STAY, UP, $4, OPP_ROCKET, $26
+	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
-	EVENT_DISP SILPH_CO_9F_WIDTH, $0, $e ; SILPH_CO_10F
-	EVENT_DISP SILPH_CO_9F_WIDTH, $0, $10 ; SILPH_CO_8F
-	EVENT_DISP SILPH_CO_9F_WIDTH, $0, $12 ; SILPH_CO_ELEVATOR
-	EVENT_DISP SILPH_CO_9F_WIDTH, $3, $9 ; SILPH_CO_3F
-	EVENT_DISP SILPH_CO_9F_WIDTH, $f, $11 ; SILPH_CO_5F
+	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
--- a/data/mapObjects/silphcoelevator.asm
+++ b/data/mapObjects/silphcoelevator.asm
@@ -1,15 +1,15 @@
 SilphCoElevatorObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $3, $1, $0, $ed
-	db $3, $2, $0, $ed
+	db 2 ; warps
+	warp 1, 3, 0, 237
+	warp 2, 3, 0, 237
 
-	db $1 ; signs
-	db $0, $3, $1 ; SilphCoElevatorText1
+	db 1 ; signs
+	sign 3, 0, 1 ; SilphCoElevatorText1
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $1
-	EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $2
+	warp_to 1, 3, SILPH_CO_ELEVATOR_WIDTH
+	warp_to 2, 3, SILPH_CO_ELEVATOR_WIDTH
--- a/data/mapObjects/ssanne1.asm
+++ b/data/mapObjects/ssanne1.asm
@@ -1,34 +1,34 @@
 SSAnne1Object:
 	db $c ; border block
 
-	db $b ; warps
-	db $0, $1a, $1, VERMILION_DOCK
-	db $0, $1b, $1, VERMILION_DOCK
-	db $8, $1f, $0, SS_ANNE_8
-	db $8, $17, $1, SS_ANNE_8
-	db $8, $13, $2, SS_ANNE_8
-	db $8, $f, $3, SS_ANNE_8
-	db $8, $b, $4, SS_ANNE_8
-	db $8, $7, $5, SS_ANNE_8
-	db $6, $2, $6, SS_ANNE_2
-	db $f, $25, $5, SS_ANNE_4
-	db $10, $3, $0, SS_ANNE_6
+	db 11 ; warps
+	warp 26, 0, 1, VERMILION_DOCK
+	warp 27, 0, 1, VERMILION_DOCK
+	warp 31, 8, 0, SS_ANNE_8
+	warp 23, 8, 1, SS_ANNE_8
+	warp 19, 8, 2, SS_ANNE_8
+	warp 15, 8, 3, SS_ANNE_8
+	warp 11, 8, 4, SS_ANNE_8
+	warp 7, 8, 5, SS_ANNE_8
+	warp 2, 6, 6, SS_ANNE_2
+	warp 37, 15, 5, SS_ANNE_4
+	warp 3, 16, 0, SS_ANNE_6
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_WAITER, $c, $6, WALK, $2, $1 ; person
-	object SPRITE_SAILOR, $1b, $5, STAY, NONE, $2 ; person
+	db 2 ; objects
+	object SPRITE_WAITER, 12, 6, WALK, 2, 1 ; person
+	object SPRITE_SAILOR, 27, 5, STAY, NONE, 2 ; person
 
 	; warp-to
-	EVENT_DISP SS_ANNE_1_WIDTH, $0, $1a ; VERMILION_DOCK
-	EVENT_DISP SS_ANNE_1_WIDTH, $0, $1b ; VERMILION_DOCK
-	EVENT_DISP SS_ANNE_1_WIDTH, $8, $1f ; SS_ANNE_8
-	EVENT_DISP SS_ANNE_1_WIDTH, $8, $17 ; SS_ANNE_8
-	EVENT_DISP SS_ANNE_1_WIDTH, $8, $13 ; SS_ANNE_8
-	EVENT_DISP SS_ANNE_1_WIDTH, $8, $f ; SS_ANNE_8
-	EVENT_DISP SS_ANNE_1_WIDTH, $8, $b ; SS_ANNE_8
-	EVENT_DISP SS_ANNE_1_WIDTH, $8, $7 ; SS_ANNE_8
-	EVENT_DISP SS_ANNE_1_WIDTH, $6, $2 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_1_WIDTH, $f, $25 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_1_WIDTH, $10, $3 ; SS_ANNE_6
+	warp_to 26, 0, SS_ANNE_1_WIDTH ; VERMILION_DOCK
+	warp_to 27, 0, SS_ANNE_1_WIDTH ; VERMILION_DOCK
+	warp_to 31, 8, SS_ANNE_1_WIDTH ; SS_ANNE_8
+	warp_to 23, 8, SS_ANNE_1_WIDTH ; SS_ANNE_8
+	warp_to 19, 8, SS_ANNE_1_WIDTH ; SS_ANNE_8
+	warp_to 15, 8, SS_ANNE_1_WIDTH ; SS_ANNE_8
+	warp_to 11, 8, SS_ANNE_1_WIDTH ; SS_ANNE_8
+	warp_to 7, 8, SS_ANNE_1_WIDTH ; SS_ANNE_8
+	warp_to 2, 6, SS_ANNE_1_WIDTH ; SS_ANNE_2
+	warp_to 37, 15, SS_ANNE_1_WIDTH ; SS_ANNE_4
+	warp_to 3, 16, SS_ANNE_1_WIDTH ; SS_ANNE_6
--- a/data/mapObjects/ssanne10.asm
+++ b/data/mapObjects/ssanne10.asm
@@ -1,41 +1,41 @@
 SSAnne10Object:
 	db $c ; border block
 
-	db $a ; warps
-	db $5, $2, $4, SS_ANNE_4
-	db $5, $3, $4, SS_ANNE_4
-	db $5, $c, $3, SS_ANNE_4
-	db $5, $d, $3, SS_ANNE_4
-	db $5, $16, $2, SS_ANNE_4
-	db $5, $17, $2, SS_ANNE_4
-	db $f, $2, $1, SS_ANNE_4
-	db $f, $3, $1, SS_ANNE_4
-	db $f, $c, $0, SS_ANNE_4
-	db $f, $d, $0, SS_ANNE_4
+	db 10 ; warps
+	warp 2, 5, 4, SS_ANNE_4
+	warp 3, 5, 4, SS_ANNE_4
+	warp 12, 5, 3, SS_ANNE_4
+	warp 13, 5, 3, SS_ANNE_4
+	warp 22, 5, 2, SS_ANNE_4
+	warp 23, 5, 2, SS_ANNE_4
+	warp 2, 15, 1, SS_ANNE_4
+	warp 3, 15, 1, SS_ANNE_4
+	warp 12, 15, 0, SS_ANNE_4
+	warp 13, 15, 0, SS_ANNE_4
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $b ; objects
-	object SPRITE_SAILOR, $0, $d, STAY, DOWN, $1, OPP_SAILOR, $3
-	object SPRITE_SAILOR, $2, $b, STAY, DOWN, $2, OPP_SAILOR, $4
-	object SPRITE_SAILOR, $c, $3, STAY, LEFT, $3, OPP_SAILOR, $5
-	object SPRITE_SAILOR, $16, $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, $a, $d, STAY, RIGHT, $7 ; person
-	object SPRITE_SLOWBRO, $b, $c, STAY, NONE, $8 ; person
-	object SPRITE_BALL, $14, $2, STAY, NONE, $9, ETHER
-	object SPRITE_BALL, $a, $2, STAY, NONE, $a, TM_44
-	object SPRITE_BALL, $c, $b, STAY, NONE, $b, MAX_POTION
+	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
-	EVENT_DISP SS_ANNE_10_WIDTH, $5, $2 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $5, $3 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $5, $c ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $5, $d ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $5, $16 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $5, $17 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $f, $2 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $f, $3 ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $f, $c ; SS_ANNE_4
-	EVENT_DISP SS_ANNE_10_WIDTH, $f, $d ; SS_ANNE_4
+	warp_to 2, 5, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 3, 5, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 12, 5, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 13, 5, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 22, 5, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 23, 5, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 2, 15, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 3, 15, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 12, 15, SS_ANNE_10_WIDTH ; SS_ANNE_4
+	warp_to 13, 15, SS_ANNE_10_WIDTH ; SS_ANNE_4
--- a/data/mapObjects/ssanne2.asm
+++ b/data/mapObjects/ssanne2.asm
@@ -1,30 +1,30 @@
 SSAnne2Object:
 	db $c ; border block
 
-	db $9 ; warps
-	db $b, $9, $0, SS_ANNE_9
-	db $b, $d, $2, SS_ANNE_9
-	db $b, $11, $4, SS_ANNE_9
-	db $b, $15, $6, SS_ANNE_9
-	db $b, $19, $8, SS_ANNE_9
-	db $b, $1d, $a, SS_ANNE_9
-	db $4, $2, $8, SS_ANNE_1
-	db $c, $2, $1, SS_ANNE_3
-	db $4, $24, $0, SS_ANNE_7
+	db 9 ; warps
+	warp 9, 11, 0, SS_ANNE_9
+	warp 13, 11, 2, SS_ANNE_9
+	warp 17, 11, 4, SS_ANNE_9
+	warp 21, 11, 6, SS_ANNE_9
+	warp 25, 11, 8, SS_ANNE_9
+	warp 29, 11, 10, SS_ANNE_9
+	warp 2, 4, 8, SS_ANNE_1
+	warp 2, 12, 1, SS_ANNE_3
+	warp 36, 4, 0, SS_ANNE_7
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_WAITER, $3, $7, WALK, $1, $1 ; person
-	object SPRITE_BLUE, $24, $4, STAY, DOWN, $2, OPP_SONY1, $1
+	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
-	EVENT_DISP SS_ANNE_2_WIDTH, $b, $9 ; SS_ANNE_9
-	EVENT_DISP SS_ANNE_2_WIDTH, $b, $d ; SS_ANNE_9
-	EVENT_DISP SS_ANNE_2_WIDTH, $b, $11 ; SS_ANNE_9
-	EVENT_DISP SS_ANNE_2_WIDTH, $b, $15 ; SS_ANNE_9
-	EVENT_DISP SS_ANNE_2_WIDTH, $b, $19 ; SS_ANNE_9
-	EVENT_DISP SS_ANNE_2_WIDTH, $b, $1d ; SS_ANNE_9
-	EVENT_DISP SS_ANNE_2_WIDTH, $4, $2 ; SS_ANNE_1
-	EVENT_DISP SS_ANNE_2_WIDTH, $c, $2 ; SS_ANNE_3
-	EVENT_DISP SS_ANNE_2_WIDTH, $4, $24 ; SS_ANNE_7
+	warp_to 9, 11, SS_ANNE_2_WIDTH ; SS_ANNE_9
+	warp_to 13, 11, SS_ANNE_2_WIDTH ; SS_ANNE_9
+	warp_to 17, 11, SS_ANNE_2_WIDTH ; SS_ANNE_9
+	warp_to 21, 11, SS_ANNE_2_WIDTH ; SS_ANNE_9
+	warp_to 25, 11, SS_ANNE_2_WIDTH ; SS_ANNE_9
+	warp_to 29, 11, SS_ANNE_2_WIDTH ; SS_ANNE_9
+	warp_to 2, 4, SS_ANNE_2_WIDTH ; SS_ANNE_1
+	warp_to 2, 12, SS_ANNE_2_WIDTH ; SS_ANNE_3
+	warp_to 36, 4, SS_ANNE_2_WIDTH ; SS_ANNE_7
--- a/data/mapObjects/ssanne3.asm
+++ b/data/mapObjects/ssanne3.asm
@@ -1,15 +1,15 @@
 SSAnne3Object:
 	db $c ; border block
 
-	db $2 ; warps
-	db $3, $0, $0, SS_ANNE_5
-	db $3, $13, $7, SS_ANNE_2
+	db 2 ; warps
+	warp 0, 3, 0, SS_ANNE_5
+	warp 19, 3, 7, SS_ANNE_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_SAILOR, $9, $3, WALK, $2, $1 ; person
+	db 1 ; objects
+	object SPRITE_SAILOR, 9, 3, WALK, 2, 1 ; person
 
 	; warp-to
-	EVENT_DISP SS_ANNE_3_WIDTH, $3, $0 ; SS_ANNE_5
-	EVENT_DISP SS_ANNE_3_WIDTH, $3, $13 ; SS_ANNE_2
+	warp_to 0, 3, SS_ANNE_3_WIDTH ; SS_ANNE_5
+	warp_to 19, 3, SS_ANNE_3_WIDTH ; SS_ANNE_2
--- a/data/mapObjects/ssanne4.asm
+++ b/data/mapObjects/ssanne4.asm
@@ -1,22 +1,22 @@
 SSAnne4Object:
 	db $c ; border block
 
-	db $6 ; warps
-	db $3, $17, $8, SS_ANNE_10
-	db $3, $13, $6, SS_ANNE_10
-	db $3, $f, $4, SS_ANNE_10
-	db $3, $b, $2, SS_ANNE_10
-	db $3, $7, $0, SS_ANNE_10
-	db $5, $1b, $9, SS_ANNE_1
+	db 6 ; warps
+	warp 23, 3, 8, SS_ANNE_10
+	warp 19, 3, 6, SS_ANNE_10
+	warp 15, 3, 4, SS_ANNE_10
+	warp 11, 3, 2, SS_ANNE_10
+	warp 7, 3, 0, SS_ANNE_10
+	warp 27, 5, 9, SS_ANNE_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP SS_ANNE_4_WIDTH, $3, $17 ; SS_ANNE_10
-	EVENT_DISP SS_ANNE_4_WIDTH, $3, $13 ; SS_ANNE_10
-	EVENT_DISP SS_ANNE_4_WIDTH, $3, $f ; SS_ANNE_10
-	EVENT_DISP SS_ANNE_4_WIDTH, $3, $b ; SS_ANNE_10
-	EVENT_DISP SS_ANNE_4_WIDTH, $3, $7 ; SS_ANNE_10
-	EVENT_DISP SS_ANNE_4_WIDTH, $5, $1b ; SS_ANNE_1
+	warp_to 23, 3, SS_ANNE_4_WIDTH ; SS_ANNE_10
+	warp_to 19, 3, SS_ANNE_4_WIDTH ; SS_ANNE_10
+	warp_to 15, 3, SS_ANNE_4_WIDTH ; SS_ANNE_10
+	warp_to 11, 3, SS_ANNE_4_WIDTH ; SS_ANNE_10
+	warp_to 7, 3, SS_ANNE_4_WIDTH ; SS_ANNE_10
+	warp_to 27, 5, SS_ANNE_4_WIDTH ; SS_ANNE_1
--- a/data/mapObjects/ssanne5.asm
+++ b/data/mapObjects/ssanne5.asm
@@ -1,19 +1,19 @@
 SSAnne5Object:
 	db $23 ; border block
 
-	db $2 ; warps
-	db $6, $d, $0, SS_ANNE_3
-	db $7, $d, $0, SS_ANNE_3
+	db 2 ; warps
+	warp 13, 6, 0, SS_ANNE_3
+	warp 13, 7, 0, SS_ANNE_3
 
-	db $0 ; signs
+	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, $b, STAY, NONE, $3 ; person
-	object SPRITE_SAILOR, $4, $4, STAY, DOWN, $4, OPP_SAILOR, $1
-	object SPRITE_SAILOR, $a, $8, STAY, UP, $5, OPP_SAILOR, $2
+	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
-	EVENT_DISP SS_ANNE_5_WIDTH, $6, $d ; SS_ANNE_3
-	EVENT_DISP SS_ANNE_5_WIDTH, $7, $d ; SS_ANNE_3
+	warp_to 13, 6, SS_ANNE_5_WIDTH ; SS_ANNE_3
+	warp_to 13, 7, SS_ANNE_5_WIDTH ; SS_ANNE_3
--- a/data/mapObjects/ssanne6.asm
+++ b/data/mapObjects/ssanne6.asm
@@ -1,19 +1,19 @@
 SSAnne6Object:
 	db $c ; border block
 
-	db $1 ; warps
-	db $0, $6, $a, SS_ANNE_1
+	db 1 ; warps
+	warp 6, 0, 10, SS_ANNE_1
 
-	db $0 ; signs
+	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, $d, $6, STAY, NONE, $4 ; person
-	object SPRITE_COOK, $d, $8, STAY, NONE, $5 ; person
-	object SPRITE_COOK, $d, $a, STAY, NONE, $6 ; person
-	object SPRITE_COOK, $b, $d, STAY, UP, $7 ; person
+	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
-	EVENT_DISP SS_ANNE_6_WIDTH, $0, $6 ; SS_ANNE_1
+	warp_to 6, 0, SS_ANNE_6_WIDTH ; SS_ANNE_1
--- a/data/mapObjects/ssanne7.asm
+++ b/data/mapObjects/ssanne7.asm
@@ -1,15 +1,15 @@
 SSAnne7Object:
 	db $c ; border block
 
-	db $1 ; warps
-	db $7, $0, $8, SS_ANNE_2
+	db 1 ; warps
+	warp 0, 7, 8, SS_ANNE_2
 
-	db $2 ; signs
-	db $1, $4, $2 ; SSAnne7Text2
-	db $2, $1, $3 ; SSAnne7Text3
+	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
+	db 1 ; objects
+	object SPRITE_SS_CAPTAIN, 4, 2, STAY, UP, 1 ; person
 
 	; warp-to
-	EVENT_DISP SS_ANNE_7_WIDTH, $7, $0 ; SS_ANNE_2
+	warp_to 0, 7, SS_ANNE_7_WIDTH ; SS_ANNE_2
--- a/data/mapObjects/ssanne8.asm
+++ b/data/mapObjects/ssanne8.asm
@@ -1,33 +1,33 @@
 SSAnne8Object:
 	db $c ; border block
 
-	db $6 ; warps
-	db $0, $0, $2, SS_ANNE_1
-	db $0, $a, $3, SS_ANNE_1
-	db $0, $14, $4, SS_ANNE_1
-	db $a, $0, $5, SS_ANNE_1
-	db $a, $a, $6, SS_ANNE_1
-	db $a, $14, $7, SS_ANNE_1
+	db 6 ; warps
+	warp 0, 0, 2, SS_ANNE_1
+	warp 10, 0, 3, SS_ANNE_1
+	warp 20, 0, 4, SS_ANNE_1
+	warp 0, 10, 5, SS_ANNE_1
+	warp 10, 10, 6, SS_ANNE_1
+	warp 20, 10, 7, SS_ANNE_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $b ; objects
-	object SPRITE_GENTLEMAN, $2, $3, STAY, LEFT, $1, OPP_GENTLEMAN, $1
-	object SPRITE_GENTLEMAN, $b, $4, STAY, UP, $2, OPP_GENTLEMAN, $2
-	object SPRITE_BUG_CATCHER, $b, $e, STAY, UP, $3, OPP_YOUNGSTER, $8
-	object SPRITE_LASS, $d, $b, STAY, LEFT, $4, OPP_LASS, $b
-	object SPRITE_GIRL, $16, $3, WALK, $1, $5 ; person
-	object SPRITE_FAT_BALD_GUY, $0, $e, STAY, NONE, $6 ; person
-	object SPRITE_LITTLE_GIRL, $2, $b, STAY, DOWN, $7 ; person
-	object SPRITE_CLEFAIRY, $3, $b, STAY, DOWN, $8 ; person
-	object SPRITE_GIRL, $a, $d, STAY, RIGHT, $9 ; person
-	object SPRITE_BALL, $c, $f, STAY, NONE, $a, TM_08
-	object SPRITE_GENTLEMAN, $15, $d, WALK, $2, $b ; person
+	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
-	EVENT_DISP SS_ANNE_8_WIDTH, $0, $0 ; SS_ANNE_1
-	EVENT_DISP SS_ANNE_8_WIDTH, $0, $a ; SS_ANNE_1
-	EVENT_DISP SS_ANNE_8_WIDTH, $0, $14 ; SS_ANNE_1
-	EVENT_DISP SS_ANNE_8_WIDTH, $a, $0 ; SS_ANNE_1
-	EVENT_DISP SS_ANNE_8_WIDTH, $a, $a ; SS_ANNE_1
-	EVENT_DISP SS_ANNE_8_WIDTH, $a, $14 ; SS_ANNE_1
+	warp_to 0, 0, SS_ANNE_8_WIDTH ; SS_ANNE_1
+	warp_to 10, 0, SS_ANNE_8_WIDTH ; SS_ANNE_1
+	warp_to 20, 0, SS_ANNE_8_WIDTH ; SS_ANNE_1
+	warp_to 0, 10, SS_ANNE_8_WIDTH ; SS_ANNE_1
+	warp_to 10, 10, SS_ANNE_8_WIDTH ; SS_ANNE_1
+	warp_to 20, 10, SS_ANNE_8_WIDTH ; SS_ANNE_1
--- a/data/mapObjects/ssanne9.asm
+++ b/data/mapObjects/ssanne9.asm
@@ -1,47 +1,47 @@
 SSAnne9Object:
 	db $c ; border block
 
-	db $c ; warps
-	db $5, $2, $0, SS_ANNE_2
-	db $5, $3, $0, SS_ANNE_2
-	db $5, $c, $1, SS_ANNE_2
-	db $5, $d, $1, SS_ANNE_2
-	db $5, $16, $2, SS_ANNE_2
-	db $5, $17, $2, SS_ANNE_2
-	db $f, $2, $3, SS_ANNE_2
-	db $f, $3, $3, SS_ANNE_2
-	db $f, $c, $4, SS_ANNE_2
-	db $f, $d, $4, SS_ANNE_2
-	db $f, $16, $5, SS_ANNE_2
-	db $f, $17, $5, SS_ANNE_2
+	db 12 ; warps
+	warp 2, 5, 0, SS_ANNE_2
+	warp 3, 5, 0, SS_ANNE_2
+	warp 12, 5, 1, SS_ANNE_2
+	warp 13, 5, 1, SS_ANNE_2
+	warp 22, 5, 2, SS_ANNE_2
+	warp 23, 5, 2, SS_ANNE_2
+	warp 2, 15, 3, SS_ANNE_2
+	warp 3, 15, 3, SS_ANNE_2
+	warp 12, 15, 4, SS_ANNE_2
+	warp 13, 15, 4, SS_ANNE_2
+	warp 22, 15, 5, SS_ANNE_2
+	warp 23, 15, 5, SS_ANNE_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $d ; objects
-	object SPRITE_GENTLEMAN, $a, $2, STAY, RIGHT, $1, OPP_GENTLEMAN, $3
-	object SPRITE_FISHER2, $d, $4, STAY, LEFT, $2, OPP_FISHER, $1
-	object SPRITE_GENTLEMAN, $0, $e, STAY, RIGHT, $3, OPP_GENTLEMAN, $5
-	object SPRITE_LASS, $2, $b, STAY, DOWN, $4, OPP_LASS, $c
-	object SPRITE_GENTLEMAN, $1, $2, STAY, DOWN, $5 ; person
-	object SPRITE_BALL, $c, $1, STAY, NONE, $6, MAX_ETHER
-	object SPRITE_GENTLEMAN, $15, $2, STAY, DOWN, $7 ; person
-	object SPRITE_OLD_PERSON, $16, $1, STAY, DOWN, $8 ; person
-	object SPRITE_BALL, $0, $c, STAY, NONE, $9, RARE_CANDY
-	object SPRITE_GENTLEMAN, $c, $c, STAY, DOWN, $a ; person
-	object SPRITE_YOUNG_BOY, $b, $e, STAY, NONE, $b ; person
-	object SPRITE_BRUNETTE_GIRL, $16, $c, STAY, LEFT, $c ; person
-	object SPRITE_FOULARD_WOMAN, $14, $c, STAY, RIGHT, $d ; person
+	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
-	EVENT_DISP SS_ANNE_9_WIDTH, $5, $2 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $5, $3 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $5, $c ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $5, $d ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $5, $16 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $5, $17 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $f, $2 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $f, $3 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $f, $c ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $f, $d ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $f, $16 ; SS_ANNE_2
-	EVENT_DISP SS_ANNE_9_WIDTH, $f, $17 ; SS_ANNE_2
+	warp_to 2, 5, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 3, 5, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 12, 5, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 13, 5, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 22, 5, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 23, 5, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 2, 15, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 3, 15, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 12, 15, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 13, 15, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 22, 15, SS_ANNE_9_WIDTH ; SS_ANNE_2
+	warp_to 23, 15, SS_ANNE_9_WIDTH ; SS_ANNE_2
--- a/data/mapObjects/tradecenter.asm
+++ b/data/mapObjects/tradecenter.asm
@@ -1,9 +1,9 @@
 TradeCenterObject:
 	db $e ; border block
 
-	db $0 ; warps
+	db 0 ; warps
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_RED, $2, $2, STAY, $0, $1 ; person
+	db 1 ; objects
+	object SPRITE_RED, 2, 2, STAY, 0, 1 ; person
--- a/data/mapObjects/undergroundpathentranceroute5.asm
+++ b/data/mapObjects/undergroundpathentranceroute5.asm
@@ -1,17 +1,17 @@
 UndergroundPathEntranceRoute5Object:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
-	db $4, $4, $0, UNDERGROUND_PATH_NS
+	db 3 ; warps
+	warp 3, 7, 3, -1
+	warp 4, 7, 3, -1
+	warp 4, 4, 0, UNDERGROUND_PATH_NS
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_LITTLE_GIRL, $2, $3, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_LITTLE_GIRL, 2, 3, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP PATH_ENTRANCE_ROUTE_5_WIDTH, $7, $3
-	EVENT_DISP PATH_ENTRANCE_ROUTE_5_WIDTH, $7, $4
-	EVENT_DISP PATH_ENTRANCE_ROUTE_5_WIDTH, $4, $4 ; UNDERGROUND_PATH_NS
+	warp_to 3, 7, PATH_ENTRANCE_ROUTE_5_WIDTH
+	warp_to 4, 7, PATH_ENTRANCE_ROUTE_5_WIDTH
+	warp_to 4, 4, PATH_ENTRANCE_ROUTE_5_WIDTH ; UNDERGROUND_PATH_NS
--- a/data/mapObjects/undergroundpathentranceroute6.asm
+++ b/data/mapObjects/undergroundpathentranceroute6.asm
@@ -1,17 +1,17 @@
 UndergroundPathEntranceRoute6Object:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
-	db $4, $4, $1, UNDERGROUND_PATH_NS
+	db 3 ; warps
+	warp 3, 7, 3, -1
+	warp 4, 7, 3, -1
+	warp 4, 4, 1, UNDERGROUND_PATH_NS
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GIRL, $2, $3, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_GIRL, 2, 3, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP PATH_ENTRANCE_ROUTE_6_WIDTH, $7, $3
-	EVENT_DISP PATH_ENTRANCE_ROUTE_6_WIDTH, $7, $4
-	EVENT_DISP PATH_ENTRANCE_ROUTE_6_WIDTH, $4, $4 ; UNDERGROUND_PATH_NS
+	warp_to 3, 7, PATH_ENTRANCE_ROUTE_6_WIDTH
+	warp_to 4, 7, PATH_ENTRANCE_ROUTE_6_WIDTH
+	warp_to 4, 4, PATH_ENTRANCE_ROUTE_6_WIDTH ; UNDERGROUND_PATH_NS
--- a/data/mapObjects/undergroundpathentranceroute7.asm
+++ b/data/mapObjects/undergroundpathentranceroute7.asm
@@ -1,17 +1,17 @@
 UndergroundPathEntranceRoute7Object:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-	db $4, $4, $0, UNDERGROUND_PATH_WE
+	db 3 ; warps
+	warp 3, 7, 4, -1
+	warp 4, 7, 4, -1
+	warp 4, 4, 0, UNDERGROUND_PATH_WE
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FAT_BALD_GUY, $2, $4, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_FAT_BALD_GUY, 2, 4, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP PATH_ENTRANCE_ROUTE_7_WIDTH, $7, $3
-	EVENT_DISP PATH_ENTRANCE_ROUTE_7_WIDTH, $7, $4
-	EVENT_DISP PATH_ENTRANCE_ROUTE_7_WIDTH, $4, $4 ; UNDERGROUND_PATH_WE
+	warp_to 3, 7, PATH_ENTRANCE_ROUTE_7_WIDTH
+	warp_to 4, 7, PATH_ENTRANCE_ROUTE_7_WIDTH
+	warp_to 4, 4, PATH_ENTRANCE_ROUTE_7_WIDTH ; UNDERGROUND_PATH_WE
--- a/data/mapObjects/undergroundpathentranceroute7copy.asm
+++ b/data/mapObjects/undergroundpathentranceroute7copy.asm
@@ -1,18 +1,18 @@
 UndergroundPathEntranceRoute7CopyObject:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $3, $5, $ff
-	db $7, $4, $5, $ff
-	db $4, $4, $0, UNDERGROUND_PATH_WE
+	db 3 ; warps
+	warp 3, 7, 5, -1
+	warp 4, 7, 5, -1
+	warp 4, 4, 0, UNDERGROUND_PATH_WE
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP PATH_ENTRANCE_ROUTE_7_COPY_WIDTH, $7, $3
-	EVENT_DISP PATH_ENTRANCE_ROUTE_7_COPY_WIDTH, $7, $4
-	EVENT_DISP PATH_ENTRANCE_ROUTE_7_COPY_WIDTH, $4, $4 ; UNDERGROUND_PATH_WE
+	warp_to 3, 7, PATH_ENTRANCE_ROUTE_7_COPY_WIDTH
+	warp_to 4, 7, PATH_ENTRANCE_ROUTE_7_COPY_WIDTH
+	warp_to 4, 4, PATH_ENTRANCE_ROUTE_7_COPY_WIDTH ; UNDERGROUND_PATH_WE
--- a/data/mapObjects/undergroundpathentranceroute8.asm
+++ b/data/mapObjects/undergroundpathentranceroute8.asm
@@ -1,17 +1,17 @@
 UndergroundPathEntranceRoute8Object:
 	db $a ; border block
 
-	db $3 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-	db $4, $4, $1, UNDERGROUND_PATH_WE
+	db 3 ; warps
+	warp 3, 7, 4, -1
+	warp 4, 7, 4, -1
+	warp 4, 4, 1, UNDERGROUND_PATH_WE
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_GIRL, $3, $4, STAY, NONE, $1 ; person
+	db 1 ; objects
+	object SPRITE_GIRL, 3, 4, STAY, NONE, 1 ; person
 
 	; warp-to
-	EVENT_DISP PATH_ENTRANCE_ROUTE_8_WIDTH, $7, $3
-	EVENT_DISP PATH_ENTRANCE_ROUTE_8_WIDTH, $7, $4
-	EVENT_DISP PATH_ENTRANCE_ROUTE_8_WIDTH, $4, $4 ; UNDERGROUND_PATH_WE
+	warp_to 3, 7, PATH_ENTRANCE_ROUTE_8_WIDTH
+	warp_to 4, 7, PATH_ENTRANCE_ROUTE_8_WIDTH
+	warp_to 4, 4, PATH_ENTRANCE_ROUTE_8_WIDTH ; UNDERGROUND_PATH_WE
--- a/data/mapObjects/undergroundpathns.asm
+++ b/data/mapObjects/undergroundpathns.asm
@@ -1,14 +1,14 @@
 UndergroundPathNSObject:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $4, $5, $2, PATH_ENTRANCE_ROUTE_5
-	db $29, $2, $2, PATH_ENTRANCE_ROUTE_6
+	db 2 ; warps
+	warp 5, 4, 2, PATH_ENTRANCE_ROUTE_5
+	warp 2, 41, 2, PATH_ENTRANCE_ROUTE_6
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP UNDERGROUND_PATH_NS_WIDTH, $4, $5 ; PATH_ENTRANCE_ROUTE_5
-	EVENT_DISP UNDERGROUND_PATH_NS_WIDTH, $29, $2 ; PATH_ENTRANCE_ROUTE_6
+	warp_to 5, 4, UNDERGROUND_PATH_NS_WIDTH ; PATH_ENTRANCE_ROUTE_5
+	warp_to 2, 41, UNDERGROUND_PATH_NS_WIDTH ; PATH_ENTRANCE_ROUTE_6
--- a/data/mapObjects/undergroundpathwe.asm
+++ b/data/mapObjects/undergroundpathwe.asm
@@ -1,14 +1,14 @@
 UndergroundPathWEObject:
 	db $1 ; border block
 
-	db $2 ; warps
-	db $5, $2, $2, PATH_ENTRANCE_ROUTE_7
-	db $2, $2f, $2, PATH_ENTRANCE_ROUTE_8
+	db 2 ; warps
+	warp 2, 5, 2, PATH_ENTRANCE_ROUTE_7
+	warp 47, 2, 2, PATH_ENTRANCE_ROUTE_8
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP UNDERGROUND_PATH_WE_WIDTH, $5, $2 ; PATH_ENTRANCE_ROUTE_7
-	EVENT_DISP UNDERGROUND_PATH_WE_WIDTH, $2, $2f ; PATH_ENTRANCE_ROUTE_8
+	warp_to 2, 5, UNDERGROUND_PATH_WE_WIDTH ; PATH_ENTRANCE_ROUTE_7
+	warp_to 47, 2, UNDERGROUND_PATH_WE_WIDTH ; PATH_ENTRANCE_ROUTE_8
--- a/data/mapObjects/unknowndungeon1.asm
+++ b/data/mapObjects/unknowndungeon1.asm
@@ -1,31 +1,31 @@
 UnknownDungeon1Object:
 	db $7d ; border block
 
-	db $9 ; warps
-	db $11, $18, $6, $ff
-	db $11, $19, $6, $ff
-	db $1, $1b, $0, UNKNOWN_DUNGEON_2
-	db $7, $17, $1, UNKNOWN_DUNGEON_2
-	db $9, $12, $2, UNKNOWN_DUNGEON_2
-	db $1, $7, $3, UNKNOWN_DUNGEON_2
-	db $3, $1, $4, UNKNOWN_DUNGEON_2
-	db $b, $3, $5, UNKNOWN_DUNGEON_2
-	db $6, $0, $0, UNKNOWN_DUNGEON_3
+	db 9 ; warps
+	warp 24, 17, 6, -1
+	warp 25, 17, 6, -1
+	warp 27, 1, 0, UNKNOWN_DUNGEON_2
+	warp 23, 7, 1, UNKNOWN_DUNGEON_2
+	warp 18, 9, 2, UNKNOWN_DUNGEON_2
+	warp 7, 1, 3, UNKNOWN_DUNGEON_2
+	warp 1, 3, 4, UNKNOWN_DUNGEON_2
+	warp 3, 11, 5, UNKNOWN_DUNGEON_2
+	warp 0, 6, 0, UNKNOWN_DUNGEON_3
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $3 ; objects
-	object SPRITE_BALL, $7, $d, STAY, NONE, $1, FULL_RESTORE
-	object SPRITE_BALL, $13, $3, STAY, NONE, $2, MAX_ELIXER
-	object SPRITE_BALL, $5, $0, STAY, NONE, $3, NUGGET
+	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
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $11, $18
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $11, $19
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $1, $1b ; UNKNOWN_DUNGEON_2
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $7, $17 ; UNKNOWN_DUNGEON_2
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $9, $12 ; UNKNOWN_DUNGEON_2
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $1, $7 ; UNKNOWN_DUNGEON_2
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $3, $1 ; UNKNOWN_DUNGEON_2
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $b, $3 ; UNKNOWN_DUNGEON_2
-	EVENT_DISP UNKNOWN_DUNGEON_1_WIDTH, $6, $0 ; UNKNOWN_DUNGEON_3
+	warp_to 24, 17, UNKNOWN_DUNGEON_1_WIDTH
+	warp_to 25, 17, UNKNOWN_DUNGEON_1_WIDTH
+	warp_to 27, 1, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_2
+	warp_to 23, 7, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_2
+	warp_to 18, 9, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_2
+	warp_to 7, 1, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_2
+	warp_to 1, 3, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_2
+	warp_to 3, 11, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_2
+	warp_to 0, 6, UNKNOWN_DUNGEON_1_WIDTH ; UNKNOWN_DUNGEON_3
--- a/data/mapObjects/unknowndungeon2.asm
+++ b/data/mapObjects/unknowndungeon2.asm
@@ -1,25 +1,25 @@
 UnknownDungeon2Object:
 	db $7d ; border block
 
-	db $6 ; warps
-	db $1, $1d, $2, UNKNOWN_DUNGEON_1
-	db $6, $16, $3, UNKNOWN_DUNGEON_1
-	db $7, $13, $4, UNKNOWN_DUNGEON_1
-	db $1, $9, $5, UNKNOWN_DUNGEON_1
-	db $3, $1, $6, UNKNOWN_DUNGEON_1
-	db $b, $3, $7, UNKNOWN_DUNGEON_1
+	db 6 ; warps
+	warp 29, 1, 2, UNKNOWN_DUNGEON_1
+	warp 22, 6, 3, UNKNOWN_DUNGEON_1
+	warp 19, 7, 4, UNKNOWN_DUNGEON_1
+	warp 9, 1, 5, UNKNOWN_DUNGEON_1
+	warp 1, 3, 6, UNKNOWN_DUNGEON_1
+	warp 3, 11, 7, UNKNOWN_DUNGEON_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $3 ; objects
-	object SPRITE_BALL, $1d, $9, STAY, NONE, $1, PP_UP
-	object SPRITE_BALL, $4, $f, STAY, NONE, $2, ULTRA_BALL
-	object SPRITE_BALL, $d, $6, STAY, NONE, $3, FULL_RESTORE
+	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
-	EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $1, $1d ; UNKNOWN_DUNGEON_1
-	EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $6, $16 ; UNKNOWN_DUNGEON_1
-	EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $7, $13 ; UNKNOWN_DUNGEON_1
-	EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $1, $9 ; UNKNOWN_DUNGEON_1
-	EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $3, $1 ; UNKNOWN_DUNGEON_1
-	EVENT_DISP UNKNOWN_DUNGEON_2_WIDTH, $b, $3 ; UNKNOWN_DUNGEON_1
+	warp_to 29, 1, UNKNOWN_DUNGEON_2_WIDTH ; UNKNOWN_DUNGEON_1
+	warp_to 22, 6, UNKNOWN_DUNGEON_2_WIDTH ; UNKNOWN_DUNGEON_1
+	warp_to 19, 7, UNKNOWN_DUNGEON_2_WIDTH ; UNKNOWN_DUNGEON_1
+	warp_to 9, 1, UNKNOWN_DUNGEON_2_WIDTH ; UNKNOWN_DUNGEON_1
+	warp_to 1, 3, UNKNOWN_DUNGEON_2_WIDTH ; UNKNOWN_DUNGEON_1
+	warp_to 3, 11, UNKNOWN_DUNGEON_2_WIDTH ; UNKNOWN_DUNGEON_1
--- a/data/mapObjects/unknowndungeon3.asm
+++ b/data/mapObjects/unknowndungeon3.asm
@@ -1,15 +1,15 @@
 UnknownDungeon3Object:
 	db $7d ; border block
 
-	db $1 ; warps
-	db $6, $3, $8, UNKNOWN_DUNGEON_1
+	db 1 ; warps
+	warp 3, 6, 8, UNKNOWN_DUNGEON_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $3 ; objects
-	object SPRITE_SLOWBRO, $1b, $d, STAY, DOWN, $1, MEWTWO, 70
-	object SPRITE_BALL, $10, $9, STAY, NONE, $2, ULTRA_BALL
-	object SPRITE_BALL, $12, $1, STAY, NONE, $3, MAX_REVIVE
+	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
-	EVENT_DISP UNKNOWN_DUNGEON_3_WIDTH, $6, $3 ; UNKNOWN_DUNGEON_1
+	warp_to 3, 6, UNKNOWN_DUNGEON_3_WIDTH ; UNKNOWN_DUNGEON_1
--- a/data/mapObjects/vermilioncity.asm
+++ b/data/mapObjects/vermilioncity.asm
@@ -1,41 +1,41 @@
 VermilionCityObject:
 	db $43 ; border block
 
-	db $9 ; warps
-	db $3, $b, $0, VERMILION_POKECENTER
-	db $d, $9, $0, POKEMON_FAN_CLUB
-	db $d, $17, $0, VERMILION_MART
-	db $13, $c, $0, VERMILION_GYM
-	db $13, $17, $0, VERMILION_HOUSE_1
-	db $1f, $12, $0, VERMILION_DOCK
-	db $1f, $13, $0, VERMILION_DOCK
-	db $d, $f, $0, VERMILION_HOUSE_3
-	db $3, $7, $0, VERMILION_HOUSE_2
+	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_HOUSE_1
+	warp 18, 31, 0, VERMILION_DOCK
+	warp 19, 31, 0, VERMILION_DOCK
+	warp 15, 13, 0, VERMILION_HOUSE_3
+	warp 7, 3, 0, VERMILION_HOUSE_2
 
-	db $7 ; signs
-	db $3, $1b, $7 ; VermilionCityText7
-	db $d, $25, $8 ; VermilionCityText8
-	db $d, $18, $9 ; MartSignText
-	db $3, $c, $a ; PokeCenterSignText
-	db $d, $7, $b ; VermilionCityText11
-	db $13, $7, $c ; VermilionCityText12
-	db $f, $1d, $d ; VermilionCityText13
+	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, $13, $7, WALK, $2, $1 ; person
-	object SPRITE_GAMBLER, $e, $6, STAY, NONE, $2 ; person
-	object SPRITE_SAILOR, $13, $1e, STAY, UP, $3 ; person
-	object SPRITE_GAMBLER, $1e, $7, STAY, NONE, $4 ; person
-	object SPRITE_SLOWBRO, $1d, $9, WALK, $1, $5 ; person
-	object SPRITE_SAILOR, $19, $1b, WALK, $2, $6 ; person
+	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
-	EVENT_DISP VERMILION_CITY_WIDTH, $3, $b ; VERMILION_POKECENTER
-	EVENT_DISP VERMILION_CITY_WIDTH, $d, $9 ; POKEMON_FAN_CLUB
-	EVENT_DISP VERMILION_CITY_WIDTH, $d, $17 ; VERMILION_MART
-	EVENT_DISP VERMILION_CITY_WIDTH, $13, $c ; VERMILION_GYM
-	EVENT_DISP VERMILION_CITY_WIDTH, $13, $17 ; VERMILION_HOUSE_1
-	EVENT_DISP VERMILION_CITY_WIDTH, $1f, $12 ; VERMILION_DOCK
-	EVENT_DISP VERMILION_CITY_WIDTH, $1f, $13 ; VERMILION_DOCK
-	EVENT_DISP VERMILION_CITY_WIDTH, $d, $f ; VERMILION_HOUSE_3
-	EVENT_DISP VERMILION_CITY_WIDTH, $3, $7 ; VERMILION_HOUSE_2
+	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_HOUSE_1
+	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_HOUSE_3
+	warp_to 7, 3, VERMILION_CITY_WIDTH ; VERMILION_HOUSE_2
--- a/data/mapObjects/vermiliondock.asm
+++ b/data/mapObjects/vermiliondock.asm
@@ -1,14 +1,14 @@
 VermilionDockObject:
 	db $f ; border block
 
-	db $2 ; warps
-	db $0, $e, $5, $ff
-	db $2, $e, $1, SS_ANNE_1
+	db 2 ; warps
+	warp 14, 0, 5, -1
+	warp 14, 2, 1, SS_ANNE_1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $0 ; objects
+	db 0 ; objects
 
 	; warp-to
-	EVENT_DISP VERMILION_DOCK_WIDTH, $0, $e
-	EVENT_DISP VERMILION_DOCK_WIDTH, $2, $e ; SS_ANNE_1
+	warp_to 14, 0, VERMILION_DOCK_WIDTH
+	warp_to 14, 2, VERMILION_DOCK_WIDTH ; SS_ANNE_1
--- a/data/mapObjects/vermiliongym.asm
+++ b/data/mapObjects/vermiliongym.asm
@@ -1,19 +1,19 @@
 VermilionGymObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $11, $4, $3, $ff
-	db $11, $5, $3, $ff
+	db 2 ; warps
+	warp 4, 17, 3, -1
+	warp 5, 17, 3, -1
 
-	db $0 ; signs
+	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, $a, STAY, RIGHT, $4, OPP_SAILOR, $8
-	object SPRITE_GYM_HELPER, $4, $e, STAY, DOWN, $5 ; person
+	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
-	EVENT_DISP VERMILION_GYM_WIDTH, $11, $4
-	EVENT_DISP VERMILION_GYM_WIDTH, $11, $5
+	warp_to 4, 17, VERMILION_GYM_WIDTH
+	warp_to 5, 17, VERMILION_GYM_WIDTH
--- a/data/mapObjects/vermilionhouse1.asm
+++ b/data/mapObjects/vermilionhouse1.asm
@@ -1,17 +1,17 @@
 VermilionHouse1Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
+	db 2 ; warps
+	warp 2, 7, 4, -1
+	warp 3, 7, 4, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $3
+	warp_to 2, 7, VERMILION_HOUSE_1_WIDTH
+	warp_to 3, 7, VERMILION_HOUSE_1_WIDTH
--- a/data/mapObjects/vermilionhouse2.asm
+++ b/data/mapObjects/vermilionhouse2.asm
@@ -1,15 +1,15 @@
 VermilionHouse2Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $8, $ff
-	db $7, $3, $8, $ff
+	db 2 ; warps
+	warp 2, 7, 8, -1
+	warp 3, 7, 8, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_FISHER, $2, $4, STAY, RIGHT, $1 ; person
+	db 1 ; objects
+	object SPRITE_FISHER, 2, 4, STAY, RIGHT, 1 ; person
 
 	; warp-to
-	EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $3
+	warp_to 2, 7, VERMILION_HOUSE_2_WIDTH
+	warp_to 3, 7, VERMILION_HOUSE_2_WIDTH
--- a/data/mapObjects/vermilionhouse3.asm
+++ b/data/mapObjects/vermilionhouse3.asm
@@ -1,15 +1,15 @@
 VermilionHouse3Object:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $7, $ff
-	db $7, $3, $7, $ff
+	db 2 ; warps
+	warp 2, 7, 7, -1
+	warp 3, 7, 7, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $1 ; objects
-	object SPRITE_LITTLE_GIRL, $3, $5, STAY, UP, $1 ; person
+	db 1 ; objects
+	object SPRITE_LITTLE_GIRL, 3, 5, STAY, UP, 1 ; person
 
 	; warp-to
-	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $2
-	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $3
+	warp_to 2, 7, VERMILION_HOUSE_3_WIDTH
+	warp_to 3, 7, VERMILION_HOUSE_3_WIDTH
--- a/data/mapObjects/vermilionmart.asm
+++ b/data/mapObjects/vermilionmart.asm
@@ -1,17 +1,17 @@
 VermilionMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $2, $ff
-	db $7, $4, $2, $ff
+	db 2 ; warps
+	warp 3, 7, 2, -1
+	warp 4, 7, 2, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP VERMILION_MART_WIDTH, $7, $3
-	EVENT_DISP VERMILION_MART_WIDTH, $7, $4
+	warp_to 3, 7, VERMILION_MART_WIDTH
+	warp_to 4, 7, VERMILION_MART_WIDTH
--- a/data/mapObjects/vermilionpokecenter.asm
+++ b/data/mapObjects/vermilionpokecenter.asm
@@ -1,18 +1,18 @@
 VermilionPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
+	db 2 ; warps
+	warp 3, 7, 0, -1
+	warp 4, 7, 0, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
-	object SPRITE_FISHER, $a, $5, STAY, NONE, $2 ; person
-	object SPRITE_SAILOR, $5, $4, STAY, NONE, $3 ; person
-	object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, VERMILION_POKECENTER_WIDTH
+	warp_to 4, 7, VERMILION_POKECENTER_WIDTH
--- a/data/mapObjects/victoryroad1.asm
+++ b/data/mapObjects/victoryroad1.asm
@@ -1,23 +1,23 @@
 VictoryRoad1Object:
 	db $7d ; border block
 
-	db $3 ; warps
-	db $11, $8, $2, $ff
-	db $11, $9, $2, $ff
-	db $1, $1, $0, VICTORY_ROAD_2
+	db 3 ; warps
+	warp 8, 17, 2, -1
+	warp 9, 17, 2, -1
+	warp 1, 1, 0, VICTORY_ROAD_2
 
-	db $0 ; signs
+	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, $b, $0, STAY, NONE, $3, TM_43
-	object SPRITE_BALL, $9, $2, STAY, NONE, $4, RARE_CANDY
-	object SPRITE_BOULDER, $5, $f, STAY, BOULDER_MOVEMENT_BYTE_2, $5 ; person
-	object SPRITE_BOULDER, $e, $2, STAY, BOULDER_MOVEMENT_BYTE_2, $6 ; person
-	object SPRITE_BOULDER, $2, $a, STAY, BOULDER_MOVEMENT_BYTE_2, $7 ; person
+	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
-	EVENT_DISP VICTORY_ROAD_1_WIDTH, $11, $8
-	EVENT_DISP VICTORY_ROAD_1_WIDTH, $11, $9
-	EVENT_DISP VICTORY_ROAD_1_WIDTH, $1, $1 ; VICTORY_ROAD_2
+	warp_to 8, 17, VICTORY_ROAD_1_WIDTH
+	warp_to 9, 17, VICTORY_ROAD_1_WIDTH
+	warp_to 1, 1, VICTORY_ROAD_1_WIDTH ; VICTORY_ROAD_2
--- a/data/mapObjects/victoryroad2.asm
+++ b/data/mapObjects/victoryroad2.asm
@@ -1,37 +1,37 @@
 VictoryRoad2Object:
 	db $7d ; border block
 
-	db $7 ; warps
-	db $8, $0, $2, VICTORY_ROAD_1
-	db $7, $1d, $3, $ff
-	db $8, $1d, $3, $ff
-	db $7, $17, $0, VICTORY_ROAD_3
-	db $e, $19, $2, VICTORY_ROAD_3
-	db $7, $1b, $1, VICTORY_ROAD_3
-	db $1, $1, $3, VICTORY_ROAD_3
+	db 7 ; warps
+	warp 0, 8, 2, VICTORY_ROAD_1
+	warp 29, 7, 3, -1
+	warp 29, 8, 3, -1
+	warp 23, 7, 0, VICTORY_ROAD_3
+	warp 25, 14, 2, VICTORY_ROAD_3
+	warp 27, 7, 1, VICTORY_ROAD_3
+	warp 1, 1, 3, VICTORY_ROAD_3
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $d ; objects
-	object SPRITE_HIKER, $c, $9, STAY, LEFT, $1, OPP_BLACKBELT, $9
-	object SPRITE_BLACK_HAIR_BOY_2, $15, $d, STAY, LEFT, $2, OPP_JUGGLER, $2
-	object SPRITE_BLACK_HAIR_BOY_1, $13, $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, $1a, $3, STAY, LEFT, $5, OPP_JUGGLER, $5
-	object SPRITE_BIRD, $b, $5, STAY, UP, $6, MOLTRES, 50
-	object SPRITE_BALL, $1b, $5, STAY, NONE, $7, TM_17
-	object SPRITE_BALL, $12, $9, STAY, NONE, $8, FULL_HEAL
-	object SPRITE_BALL, $9, $b, STAY, NONE, $9, TM_05
-	object SPRITE_BALL, $b, $0, STAY, NONE, $a, GUARD_SPEC
-	object SPRITE_BOULDER, $4, $e, STAY, BOULDER_MOVEMENT_BYTE_2, $b ; person
-	object SPRITE_BOULDER, $5, $5, STAY, BOULDER_MOVEMENT_BYTE_2, $c ; person
-	object SPRITE_BOULDER, $17, $10, STAY, BOULDER_MOVEMENT_BYTE_2, $d ; person
+	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
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $8, $0 ; VICTORY_ROAD_1
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $7, $1d
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $8, $1d
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $7, $17 ; VICTORY_ROAD_3
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $e, $19 ; VICTORY_ROAD_3
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $7, $1b ; VICTORY_ROAD_3
-	EVENT_DISP VICTORY_ROAD_2_WIDTH, $1, $1 ; VICTORY_ROAD_3
+	warp_to 0, 8, VICTORY_ROAD_2_WIDTH ; VICTORY_ROAD_1
+	warp_to 29, 7, VICTORY_ROAD_2_WIDTH
+	warp_to 29, 8, VICTORY_ROAD_2_WIDTH
+	warp_to 23, 7, VICTORY_ROAD_2_WIDTH ; VICTORY_ROAD_3
+	warp_to 25, 14, VICTORY_ROAD_2_WIDTH ; VICTORY_ROAD_3
+	warp_to 27, 7, VICTORY_ROAD_2_WIDTH ; VICTORY_ROAD_3
+	warp_to 1, 1, VICTORY_ROAD_2_WIDTH ; VICTORY_ROAD_3
--- a/data/mapObjects/victoryroad3.asm
+++ b/data/mapObjects/victoryroad3.asm
@@ -1,28 +1,28 @@
 VictoryRoad3Object:
 	db $7d ; border block
 
-	db $4 ; warps
-	db $7, $17, $3, VICTORY_ROAD_2
-	db $8, $1a, $5, VICTORY_ROAD_2
-	db $f, $1b, $4, VICTORY_ROAD_2
-	db $0, $2, $6, VICTORY_ROAD_2
+	db 4 ; warps
+	warp 23, 7, 3, VICTORY_ROAD_2
+	warp 26, 8, 5, VICTORY_ROAD_2
+	warp 27, 15, 4, VICTORY_ROAD_2
+	warp 2, 0, 6, VICTORY_ROAD_2
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $a ; objects
-	object SPRITE_BLACK_HAIR_BOY_1, $1c, $5, STAY, LEFT, $1, OPP_COOLTRAINER_M, $2
-	object SPRITE_LASS, $7, $d, STAY, RIGHT, $2, OPP_COOLTRAINER_F, $2
-	object SPRITE_BLACK_HAIR_BOY_1, $6, $e, STAY, LEFT, $3, OPP_COOLTRAINER_M, $3
-	object SPRITE_LASS, $d, $3, STAY, RIGHT, $4, OPP_COOLTRAINER_F, $3
-	object SPRITE_BALL, $1a, $5, STAY, NONE, $5, MAX_REVIVE
-	object SPRITE_BALL, $7, $7, STAY, NONE, $6, TM_47
-	object SPRITE_BOULDER, $16, $3, STAY, BOULDER_MOVEMENT_BYTE_2, $7 ; person
-	object SPRITE_BOULDER, $d, $c, STAY, BOULDER_MOVEMENT_BYTE_2, $8 ; person
-	object SPRITE_BOULDER, $18, $a, STAY, BOULDER_MOVEMENT_BYTE_2, $9 ; person
-	object SPRITE_BOULDER, $16, $f, STAY, BOULDER_MOVEMENT_BYTE_2, $a ; person
+	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
-	EVENT_DISP VICTORY_ROAD_3_WIDTH, $7, $17 ; VICTORY_ROAD_2
-	EVENT_DISP VICTORY_ROAD_3_WIDTH, $8, $1a ; VICTORY_ROAD_2
-	EVENT_DISP VICTORY_ROAD_3_WIDTH, $f, $1b ; VICTORY_ROAD_2
-	EVENT_DISP VICTORY_ROAD_3_WIDTH, $0, $2 ; VICTORY_ROAD_2
+	warp_to 23, 7, VICTORY_ROAD_3_WIDTH ; VICTORY_ROAD_2
+	warp_to 26, 8, VICTORY_ROAD_3_WIDTH ; VICTORY_ROAD_2
+	warp_to 27, 15, VICTORY_ROAD_3_WIDTH ; VICTORY_ROAD_2
+	warp_to 2, 0, VICTORY_ROAD_3_WIDTH ; VICTORY_ROAD_2
--- a/data/mapObjects/viridiancity.asm
+++ b/data/mapObjects/viridiancity.asm
@@ -1,33 +1,33 @@
 ViridianCityObject:
 	db $f ; border block
 
-	db $5 ; warps
-	db $19, $17, $0, VIRIDIAN_POKECENTER
-	db $13, $1d, $0, VIRIDIAN_MART
-	db $f, $15, $0, VIRIDIAN_SCHOOL
-	db $9, $15, $0, VIRIDIAN_HOUSE
-	db $7, $20, $0, VIRIDIAN_GYM
+	db 5 ; warps
+	warp 23, 25, 0, VIRIDIAN_POKECENTER
+	warp 29, 19, 0, VIRIDIAN_MART
+	warp 21, 15, 0, VIRIDIAN_SCHOOL
+	warp 21, 9, 0, VIRIDIAN_HOUSE
+	warp 32, 7, 0, VIRIDIAN_GYM
 
-	db $6 ; signs
-	db $11, $11, $8 ; ViridianCityText8
-	db $1, $13, $9 ; ViridianCityText9
-	db $1d, $15, $a ; ViridianCityText10
-	db $13, $1e, $b ; MartSignText
-	db $19, $18, $c ; PokeCenterSignText
-	db $7, $1b, $d ; ViridianCityText13
+	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, $d, $14, WALK, $0, $1 ; person
-	object SPRITE_GAMBLER, $1e, $8, STAY, NONE, $2 ; person
-	object SPRITE_BUG_CATCHER, $1e, $19, WALK, $0, $3 ; person
-	object SPRITE_GIRL, $11, $9, STAY, RIGHT, $4 ; person
-	object SPRITE_LYING_OLD_MAN, $12, $9, STAY, NONE, $5 ; person
-	object SPRITE_FISHER2, $6, $17, STAY, DOWN, $6 ; person
-	object SPRITE_GAMBLER, $11, $5, WALK, $2, $7 ; person
+	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
-	EVENT_DISP VIRIDIAN_CITY_WIDTH, $19, $17 ; VIRIDIAN_POKECENTER
-	EVENT_DISP VIRIDIAN_CITY_WIDTH, $13, $1d ; VIRIDIAN_MART
-	EVENT_DISP VIRIDIAN_CITY_WIDTH, $f, $15 ; VIRIDIAN_SCHOOL
-	EVENT_DISP VIRIDIAN_CITY_WIDTH, $9, $15 ; VIRIDIAN_HOUSE
-	EVENT_DISP VIRIDIAN_CITY_WIDTH, $7, $20 ; VIRIDIAN_GYM
+	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
+	warp_to 21, 9, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_HOUSE
+	warp_to 32, 7, VIRIDIAN_CITY_WIDTH ; VIRIDIAN_GYM
--- a/data/mapObjects/viridianforest.asm
+++ b/data/mapObjects/viridianforest.asm
@@ -1,36 +1,36 @@
 ViridianForestObject:
 	db $3 ; border block
 
-	db $6 ; warps
-	db $0, $1, $2, VIRIDIAN_FOREST_EXIT
-	db $0, $2, $3, VIRIDIAN_FOREST_EXIT
-	db $2f, $f, $1, VIRIDIAN_FOREST_ENTRANCE
-	db $2f, $10, $1, VIRIDIAN_FOREST_ENTRANCE
-	db $2f, $11, $1, VIRIDIAN_FOREST_ENTRANCE
-	db $2f, $12, $1, VIRIDIAN_FOREST_ENTRANCE
+	db 6 ; warps
+	warp 1, 0, 2, VIRIDIAN_FOREST_EXIT
+	warp 2, 0, 3, VIRIDIAN_FOREST_EXIT
+	warp 15, 47, 1, VIRIDIAN_FOREST_ENTRANCE
+	warp 16, 47, 1, VIRIDIAN_FOREST_ENTRANCE
+	warp 17, 47, 1, VIRIDIAN_FOREST_ENTRANCE
+	warp 18, 47, 1, VIRIDIAN_FOREST_ENTRANCE
 
-	db $6 ; signs
-	db $28, $18, $9 ; ViridianForestText9
-	db $20, $10, $a ; ViridianForestText10
-	db $11, $1a, $b ; ViridianForestText11
-	db $18, $4, $c ; ViridianForestText12
-	db $2d, $12, $d ; ViridianForestText13
-	db $1, $2, $e ; ViridianForestText14
+	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, $10, $2b, STAY, NONE, $1 ; person
-	object SPRITE_BUG_CATCHER, $1e, $21, STAY, LEFT, $2, OPP_BUG_CATCHER, $1
-	object SPRITE_BUG_CATCHER, $1e, $13, STAY, LEFT, $3, OPP_BUG_CATCHER, $2
-	object SPRITE_BUG_CATCHER, $2, $12, STAY, LEFT, $4, OPP_BUG_CATCHER, $3
-	object SPRITE_BALL, $19, $b, STAY, NONE, $5, ANTIDOTE
-	object SPRITE_BALL, $c, $1d, STAY, NONE, $6, POTION
-	object SPRITE_BALL, $1, $1f, STAY, NONE, $7, POKE_BALL
-	object SPRITE_BUG_CATCHER, $1b, $28, STAY, NONE, $8 ; person
+	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
-	EVENT_DISP VIRIDIAN_FOREST_WIDTH, $0, $1 ; VIRIDIAN_FOREST_EXIT
-	EVENT_DISP VIRIDIAN_FOREST_WIDTH, $0, $2 ; VIRIDIAN_FOREST_EXIT
-	EVENT_DISP VIRIDIAN_FOREST_WIDTH, $2f, $f ; VIRIDIAN_FOREST_ENTRANCE
-	EVENT_DISP VIRIDIAN_FOREST_WIDTH, $2f, $10 ; VIRIDIAN_FOREST_ENTRANCE
-	EVENT_DISP VIRIDIAN_FOREST_WIDTH, $2f, $11 ; VIRIDIAN_FOREST_ENTRANCE
-	EVENT_DISP VIRIDIAN_FOREST_WIDTH, $2f, $12 ; VIRIDIAN_FOREST_ENTRANCE
+	warp_to 1, 0, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_EXIT
+	warp_to 2, 0, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_EXIT
+	warp_to 15, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_ENTRANCE
+	warp_to 16, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_ENTRANCE
+	warp_to 17, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_ENTRANCE
+	warp_to 18, 47, VIRIDIAN_FOREST_WIDTH ; VIRIDIAN_FOREST_ENTRANCE
--- a/data/mapObjects/viridianforestentrance.asm
+++ b/data/mapObjects/viridianforestentrance.asm
@@ -1,20 +1,20 @@
 ViridianForestEntranceObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $0, $4, $3, VIRIDIAN_FOREST
-	db $0, $5, $4, VIRIDIAN_FOREST
-	db $7, $4, $5, $ff
-	db $7, $5, $5, $ff
+	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 0 ; signs
 
-	db $2 ; objects
-	object SPRITE_GIRL, $8, $4, STAY, LEFT, $1 ; person
-	object SPRITE_LITTLE_GIRL, $2, $4, WALK, $1, $2 ; person
+	db 2 ; objects
+	object SPRITE_GIRL, 8, 4, STAY, LEFT, 1 ; person
+	object SPRITE_LITTLE_GIRL, 2, 4, WALK, 1, 2 ; person
 
 	; warp-to
-	EVENT_DISP VIRIDIAN_FOREST_ENTRANCE_WIDTH, $0, $4 ; VIRIDIAN_FOREST
-	EVENT_DISP VIRIDIAN_FOREST_ENTRANCE_WIDTH, $0, $5 ; VIRIDIAN_FOREST
-	EVENT_DISP VIRIDIAN_FOREST_ENTRANCE_WIDTH, $7, $4
-	EVENT_DISP VIRIDIAN_FOREST_ENTRANCE_WIDTH, $7, $5
+	warp_to 4, 0, VIRIDIAN_FOREST_ENTRANCE_WIDTH ; VIRIDIAN_FOREST
+	warp_to 5, 0, VIRIDIAN_FOREST_ENTRANCE_WIDTH ; VIRIDIAN_FOREST
+	warp_to 4, 7, VIRIDIAN_FOREST_ENTRANCE_WIDTH
+	warp_to 5, 7, VIRIDIAN_FOREST_ENTRANCE_WIDTH
--- a/data/mapObjects/viridianforestexit.asm
+++ b/data/mapObjects/viridianforestexit.asm
@@ -1,20 +1,20 @@
 ViridianForestExitObject:
 	db $a ; border block
 
-	db $4 ; warps
-	db $0, $4, $1, $ff
-	db $0, $5, $1, $ff
-	db $7, $4, $0, VIRIDIAN_FOREST
-	db $7, $5, $0, VIRIDIAN_FOREST
+	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 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
+	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
-	EVENT_DISP VIRIDIAN_FOREST_EXIT_WIDTH, $0, $4
-	EVENT_DISP VIRIDIAN_FOREST_EXIT_WIDTH, $0, $5
-	EVENT_DISP VIRIDIAN_FOREST_EXIT_WIDTH, $7, $4 ; VIRIDIAN_FOREST
-	EVENT_DISP VIRIDIAN_FOREST_EXIT_WIDTH, $7, $5 ; VIRIDIAN_FOREST
+	warp_to 4, 0, VIRIDIAN_FOREST_EXIT_WIDTH
+	warp_to 5, 0, VIRIDIAN_FOREST_EXIT_WIDTH
+	warp_to 4, 7, VIRIDIAN_FOREST_EXIT_WIDTH ; VIRIDIAN_FOREST
+	warp_to 5, 7, VIRIDIAN_FOREST_EXIT_WIDTH ; VIRIDIAN_FOREST
--- a/data/mapObjects/viridiangym.asm
+++ b/data/mapObjects/viridiangym.asm
@@ -1,25 +1,25 @@
 ViridianGymObject:
 	db $3 ; border block
 
-	db $2 ; warps
-	db $11, $10, $4, $ff
-	db $11, $11, $4, $ff
+	db 2 ; warps
+	warp 16, 17, 4, -1
+	warp 17, 17, 4, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $b ; objects
-	object SPRITE_GIOVANNI, $2, $1, STAY, DOWN, $1, OPP_GIOVANNI, $3
-	object SPRITE_BLACK_HAIR_BOY_1, $c, $7, STAY, DOWN, $2, OPP_COOLTRAINER_M, $9
-	object SPRITE_HIKER, $b, $b, STAY, UP, $3, OPP_BLACKBELT, $6
-	object SPRITE_ROCKER, $a, $7, STAY, DOWN, $4, OPP_TAMER, $3
-	object SPRITE_HIKER, $3, $7, STAY, LEFT, $5, OPP_BLACKBELT, $7
-	object SPRITE_BLACK_HAIR_BOY_1, $d, $5, STAY, RIGHT, $6, OPP_COOLTRAINER_M, $a
-	object SPRITE_HIKER, $a, $1, STAY, DOWN, $7, OPP_BLACKBELT, $8
-	object SPRITE_ROCKER, $2, $10, 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, $10, $f, STAY, DOWN, $a ; person
-	object SPRITE_BALL, $10, $9, STAY, NONE, $b, REVIVE
+	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
-	EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $10
-	EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $11
+	warp_to 16, 17, VIRIDIAN_GYM_WIDTH
+	warp_to 17, 17, VIRIDIAN_GYM_WIDTH
--- a/data/mapObjects/viridianhouse.asm
+++ b/data/mapObjects/viridianhouse.asm
@@ -1,18 +1,18 @@
 ViridianHouseObject:
 	db $a ; border block
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
+	db 2 ; warps
+	warp 2, 7, 3, -1
+	warp 3, 7, 3, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $2
-	EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $3
+	warp_to 2, 7, VIRIDIAN_HOUSE_WIDTH
+	warp_to 3, 7, VIRIDIAN_HOUSE_WIDTH
--- a/data/mapObjects/viridianmart.asm
+++ b/data/mapObjects/viridianmart.asm
@@ -1,17 +1,17 @@
 ViridianMartObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $1, $ff
-	db $7, $4, $1, $ff
+	db 2 ; warps
+	warp 3, 7, 1, -1
+	warp 4, 7, 1, -1
 
-	db $0 ; signs
+	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
+	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
-	EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $3
-	EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $4
+	warp_to 3, 7, VIRIDIAN_MART_WIDTH
+	warp_to 4, 7, VIRIDIAN_MART_WIDTH
--- a/data/mapObjects/viridianpokecenter.asm
+++ b/data/mapObjects/viridianpokecenter.asm
@@ -1,18 +1,18 @@
 ViridianPokecenterObject:
 	db $0 ; border block
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
+	db 2 ; warps
+	warp 3, 7, 0, -1
+	warp 4, 7, 0, -1
 
-	db $0 ; signs
+	db 0 ; signs
 
-	db $4 ; objects
-	object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person
-	object SPRITE_GENTLEMAN, $a, $5, WALK, $1, $2 ; person
-	object SPRITE_BLACK_HAIR_BOY_1, $4, $3, STAY, NONE, $3 ; person
-	object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person
+	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
-	EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $4
+	warp_to 3, 7, VIRIDIAN_POKECENTER_WIDTH
+	warp_to 4, 7, VIRIDIAN_POKECENTER_WIDTH
--- a/macros/data_macros.asm
+++ b/macros/data_macros.asm
@@ -118,6 +118,28 @@
 	ENDC
 ENDM
 
+;\1 x position
+;\2 y position
+;\3 destination warp id
+;\4 destination map (-1 = wLastMap)
+warp: MACRO
+	db \2, \1, \3, \4
+ENDM
+
+;\1 x position
+;\2 y position
+;\3 sign id
+sign: MACRO
+	db \2, \1, \3
+ENDM
+
+;\1 x position
+;\2 y position
+;\3 map width
+warp_to: MACRO
+	EVENT_DISP \3, \2, \1
+ENDM
+
 ;\1 (byte) = current map id
 ;\2 (byte) = connected map id
 ;\3 (byte) = x movement of connection strip
--- a/main.asm
+++ b/main.asm
@@ -895,13 +895,12 @@
 INCLUDE "engine/battle/draw_hud_pokeball_gfx.asm"
 
 TradingAnimationGraphics:
-	INCBIN "gfx/game_boy.norepeat.2bpp"
-	INCBIN "gfx/link_cable.2bpp"
+INCBIN "gfx/game_boy.norepeat.2bpp"
+INCBIN "gfx/link_cable.2bpp"
 TradingAnimationGraphicsEnd:
 
-TradingAnimationGraphics2:
 ; Pokeball traveling through the link cable.
-	INCBIN "gfx/trade2.2bpp"
+TradingAnimationGraphics2: INCBIN "gfx/trade2.2bpp"
 TradingAnimationGraphics2End:
 
 INCLUDE "engine/evos_moves.asm"
@@ -1536,38 +1535,32 @@
 INCLUDE "data/mapHeaders/fanclub.asm"
 INCLUDE "scripts/fanclub.asm"
 INCLUDE "data/mapObjects/fanclub.asm"
-FanClubBlocks:
-	INCBIN "maps/fanclub.blk"
+FanClubBlocks: INCBIN "maps/fanclub.blk"
 
 INCLUDE "data/mapHeaders/silphco2.asm"
 INCLUDE "scripts/silphco2.asm"
 INCLUDE "data/mapObjects/silphco2.asm"
-SilphCo2Blocks:
-	INCBIN "maps/silphco2.blk"
+SilphCo2Blocks: INCBIN "maps/silphco2.blk"
 
 INCLUDE "data/mapHeaders/silphco3.asm"
 INCLUDE "scripts/silphco3.asm"
 INCLUDE "data/mapObjects/silphco3.asm"
-SilphCo3Blocks:
-	INCBIN "maps/silphco3.blk"
+SilphCo3Blocks: INCBIN "maps/silphco3.blk"
 
 INCLUDE "data/mapHeaders/silphco10.asm"
 INCLUDE "scripts/silphco10.asm"
 INCLUDE "data/mapObjects/silphco10.asm"
-SilphCo10Blocks:
-	INCBIN "maps/silphco10.blk"
+SilphCo10Blocks: INCBIN "maps/silphco10.blk"
 
 INCLUDE "data/mapHeaders/lance.asm"
 INCLUDE "scripts/lance.asm"
 INCLUDE "data/mapObjects/lance.asm"
-LanceBlocks:
-	INCBIN "maps/lance.blk"
+LanceBlocks: INCBIN "maps/lance.blk"
 
 INCLUDE "data/mapHeaders/halloffameroom.asm"
 INCLUDE "scripts/halloffameroom.asm"
 INCLUDE "data/mapObjects/halloffameroom.asm"
-HallofFameRoomBlocks:
-	INCBIN "maps/halloffameroom.blk"
+HallofFameRoomBlocks: INCBIN "maps/halloffameroom.blk"
 
 INCLUDE "engine/overworld/saffron_guards.asm"