shithub: pokered

Download patch

ref: e1a931df6affe154b57fa48e229ce299410032df
parent: b438d0c1d7157849e89423a9d6655ae36cad40b7
author: U-Fish-PC\Daniel <corrnondacqb@yahoo.com>
date: Sat May 17 11:43:13 EDT 2014

Pull map objects out of main.asm

diff: cannot open b/data/mapObjects//null: file does not exist: 'b/data/mapObjects//null'
--- /dev/null
+++ b/data/mapObjects/agatha.asm
@@ -1,0 +1,19 @@
+AgathaObject: ; 0x76534 (size=44)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_AGATHA, $2 + 4, $5 + 4, $ff, $d0, $41, AGATHA + $C8, $1 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/battlecenterm.asm
@@ -1,0 +1,9 @@
+BattleCenterMObject: ; 0x4fd53 (size=10)
+	db $e ; border block
+
+	db $0 ; warps
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
--- /dev/null
+++ b/data/mapObjects/bikeshop.asm
@@ -1,0 +1,17 @@
+BikeShopObject: ; 0x1d866 (size=38)
+	db $e ; border block
+
+	db $2 ; warps
+	db $7, $2, $4, $ff
+	db $7, $3, $4, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_BIKE_SHOP_GUY, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
+	db SPRITE_MOM_GEISHA, $6 + 4, $5 + 4, $fe, $1, $2 ; person
+	db SPRITE_BUG_CATCHER, $3 + 4, $1 + 4, $ff, $d1, $3 ; person
+
+	; warp-to
+	EVENT_DISP BIKE_SHOP_WIDTH, $7, $2
+	EVENT_DISP BIKE_SHOP_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/billshouse.asm
@@ -1,0 +1,17 @@
+BillsHouseObject: ; 0x1e8df (size=38)
+	db $d ; border block
+
+	db $2 ; warps
+	db $7, $2, $0, $ff
+	db $7, $3, $0, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_SLOWBRO, $5 + 4, $6 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $4 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $6 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP BILLS_HOUSE_WIDTH, $7, $2
+	EVENT_DISP BILLS_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/blueshouse.asm
@@ -1,0 +1,17 @@
+BluesHouseObject: ; 19bce (6:5bce)
+	db $0A ; border block
+
+	db 2 ; warps
+	db 7,2,1,$FF
+	db 7,3,1,$FF
+
+	db 0 ; signs
+
+	db 3 ; people
+	db $11,4+3,4+2,$FF,$D3,1 ; Daisy, sitting by map
+	db $11,4+4,4+6,$FE,1,ITEM|2,0 ; map on table
+	db $41,4+3,4+3,$FF,$FF,ITEM|3,0 ; Daisy, walking around
+
+	; warp-to
+	EVENT_DISP BLUES_HOUSE_WIDTH, 7, 2
+	EVENT_DISP BLUES_HOUSE_WIDTH, 7, 3
--- /dev/null
+++ b/data/mapObjects/bruno.asm
@@ -1,0 +1,19 @@
+BrunoObject: ; 0x763d7 (size=44)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_BRUNO, $2 + 4, $5 + 4, $ff, $d0, $41, BRUNO + $C8, $1 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/celadoncity.asm
@@ -1,0 +1,54 @@
+CeladonCityObject: ; 0x18022 (size=189)
+	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 $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 ; people
+	db SPRITE_LITTLE_GIRL, $11 + 4, $8 + 4, $fe, $0, $1 ; person
+	db SPRITE_OLD_PERSON, $1c + 4, $b + 4, $ff, $d1, $2 ; person
+	db SPRITE_GIRL, $13 + 4, $e + 4, $fe, $1, $3 ; person
+	db SPRITE_OLD_PERSON, $16 + 4, $19 + 4, $ff, $d0, $4 ; person
+	db SPRITE_OLD_PERSON, $10 + 4, $16 + 4, $ff, $d0, $5 ; person
+	db SPRITE_FISHER2, $c + 4, $20 + 4, $ff, $d2, $6 ; person
+	db SPRITE_SLOWBRO, $c + 4, $1e + 4, $ff, $d3, $7 ; person
+	db SPRITE_ROCKET, $1d + 4, $20 + 4, $fe, $2, $8 ; person
+	db SPRITE_ROCKET, $e + 4, $2a + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/celadondiner.asm
@@ -1,0 +1,19 @@
+CeladonDinerObject: ; 0x491bc (size=50)
+	db $f ; border block
+
+	db $2 ; warps
+	db $7, $3, $a, $ff
+	db $7, $4, $a, $ff
+
+	db $0 ; signs
+
+	db $5 ; people
+	db SPRITE_COOK, $5 + 4, $8 + 4, $fe, $2, $1 ; person
+	db SPRITE_MOM_GEISHA, $2 + 4, $7 + 4, $ff, $ff, $2 ; person
+	db SPRITE_FAT_BALD_GUY, $4 + 4, $1 + 4, $ff, $d0, $3 ; person
+	db SPRITE_FISHER2, $3 + 4, $5 + 4, $ff, $d3, $4 ; person
+	db SPRITE_GYM_HELPER, $1 + 4, $0 + 4, $ff, $d0, $5 ; person
+
+	; warp-to
+	EVENT_DISP CELADON_DINER_WIDTH, $7, $3
+	EVENT_DISP CELADON_DINER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/celadongamecorner.asm
@@ -1,0 +1,28 @@
+CeladonGameCornerObject: ; 0x48fa0 (size=99)
+	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 $1 ; signs
+	db $4, $9, $c ; CeladonGameCornerText12
+
+	db $b ; people
+	db SPRITE_FOULARD_WOMAN, $6 + 4, $2 + 4, $ff, $d0, $1 ; person
+	db SPRITE_MART_GUY, $6 + 4, $5 + 4, $ff, $d0, $2 ; person
+	db SPRITE_FAT_BALD_GUY, $a + 4, $2 + 4, $ff, $d2, $3 ; person
+	db SPRITE_FOULARD_WOMAN, $d + 4, $2 + 4, $ff, $d2, $4 ; person
+	db SPRITE_FISHER, $b + 4, $5 + 4, $ff, $d3, $5 ; person
+	db SPRITE_MOM_GEISHA, $b + 4, $8 + 4, $ff, $d2, $6 ; person
+	db SPRITE_GYM_HELPER, $e + 4, $8 + 4, $ff, $d2, $7 ; person
+	db SPRITE_GAMBLER, $f + 4, $b + 4, $ff, $d3, $8 ; person
+	db SPRITE_MART_GUY, $b + 4, $e + 4, $ff, $d2, $9 ; person
+	db SPRITE_GENTLEMAN, $d + 4, $11 + 4, $ff, $d3, $a ; person
+	db SPRITE_ROCKET, $5 + 4, $9 + 4, $ff, $d1, $4b, ROCKET + $C8, $7 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/celadongym.asm
@@ -1,0 +1,22 @@
+CeladonGymObject: ; 0x48b30 (size=84)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $11, $4, $6, $ff
+	db $11, $5, $6, $ff
+
+	db $0 ; signs
+
+	db $8 ; people
+	db SPRITE_ERIKA, $3 + 4, $4 + 4, $ff, $d0, $41, ERIKA + $C8, $1 ; trainer
+	db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d3, $42, LASS + $C8, $11 ; trainer
+	db SPRITE_FOULARD_WOMAN, $a + 4, $7 + 4, $ff, $d2, $43, BEAUTY + $C8, $1 ; trainer
+	db SPRITE_LASS, $5 + 4, $9 + 4, $ff, $d0, $44, JR__TRAINER_F + $C8, $b ; trainer
+	db SPRITE_FOULARD_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $45, BEAUTY + $C8, $2 ; trainer
+	db SPRITE_LASS, $3 + 4, $6 + 4, $ff, $d0, $46, LASS + $C8, $12 ; trainer
+	db SPRITE_FOULARD_WOMAN, $3 + 4, $3 + 4, $ff, $d0, $47, BEAUTY + $C8, $3 ; trainer
+	db SPRITE_LASS, $3 + 4, $5 + 4, $ff, $d0, $48, COOLTRAINER_F + $C8, $1 ; trainer
+
+	; warp-to
+	EVENT_DISP CELADON_GYM_WIDTH, $11, $4
+	EVENT_DISP CELADON_GYM_WIDTH, $11, $5
--- /dev/null
+++ b/data/mapObjects/celadonhotel.asm
@@ -1,0 +1,17 @@
+CeladonHotelObject: ; 0x49281 (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $c, $ff
+	db $7, $4, $c, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_OLD_MEDIUM_WOMAN, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_FOULARD_WOMAN, $4 + 4, $2 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $8 + 4, $fe, $2, $3 ; person
+
+	; warp-to
+	EVENT_DISP CELADON_HOTEL_WIDTH, $7, $3
+	EVENT_DISP CELADON_HOTEL_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/celadonhouse.asm
@@ -1,0 +1,17 @@
+CeladonHouseObject: ; 0x49227 (size=38)
+	db $f ; border block
+
+	db $2 ; warps
+	db $7, $2, $b, $ff
+	db $7, $3, $b, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_OLD_PERSON, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
+	db SPRITE_ROCKET, $4 + 4, $1 + 4, $fe, $0, $2 ; person
+	db SPRITE_SAILOR, $6 + 4, $5 + 4, $ff, $d2, $3 ; person
+
+	; warp-to
+	EVENT_DISP CELADON_HOUSE_WIDTH, $7, $2
+	EVENT_DISP CELADON_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/celadonmansion1.asm
@@ -1,0 +1,25 @@
+CeladonMansion1Object: ; 0x486cf (size=71)
+	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 $1 ; signs
+	db $9, $4, $5 ; CeladonMansion1Text5
+
+	db $4 ; people
+	db SPRITE_SLOWBRO, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_OLD_MEDIUM_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $2 ; person
+	db SPRITE_CLEFAIRY, $8 + 4, $1 + 4, $fe, $2, $3 ; person
+	db SPRITE_SLOWBRO, $4 + 4, $4 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/celadonmansion2.asm
@@ -1,0 +1,19 @@
+CeladonMansion2Object: ; 0x48745 (size=39)
+	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 $1 ; signs
+	db $9, $4, $1 ; CeladonMansion2Text1
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/celadonmansion3.asm
@@ -1,0 +1,26 @@
+CeladonMansion3Object: ; 0x487ff (size=72)
+	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 ; signs
+	db $3, $1, $5 ; CeladonMansion3Text5
+	db $3, $4, $6 ; CeladonMansion3Text6
+	db $6, $1, $7 ; CeladonMansion3Text7
+	db $9, $4, $8 ; CeladonMansion3Text8
+
+	db $4 ; people
+	db SPRITE_BIKE_SHOP_GUY, $4 + 4, $0 + 4, $ff, $d1, $1 ; person
+	db SPRITE_MART_GUY, $4 + 4, $3 + 4, $ff, $d1, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $7 + 4, $0 + 4, $ff, $d1, $3 ; person
+	db SPRITE_LAPRAS_GIVER, $3 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/celadonmansion4.asm
@@ -1,0 +1,17 @@
+CeladonMansion4Object: ; 0x48875 (size=31)
+	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 $1 ; signs
+	db $7, $3, $1 ; CeladonMansion4Text1
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/celadonmansion5.asm
@@ -1,0 +1,16 @@
+CeladonMansion5Object: ; 0x1dd5c (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $2, CELADON_MANSION_4
+	db $7, $3, $2, CELADON_MANSION_4
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_HIKER, $2 + 4, $2 + 4, $ff, $d0, $1 ; person
+	db SPRITE_BALL, $3 + 4, $4 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/celadonmart1.asm
@@ -1,0 +1,25 @@
+CeladonMart1Object: ; 0x60f9e (size=64)
+	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 $2 ; signs
+	db $4, $b, $2 ; CeladonMart1Text2
+	db $1, $e, $3 ; CeladonMart1Text3
+
+	db $1 ; people
+	db SPRITE_CABLE_CLUB_WOMAN, $3 + 4, $8 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/celadonmart2.asm
@@ -1,0 +1,21 @@
+CeladonMart2Object: ; 0x56111 (size=55)
+	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 $1 ; signs
+	db $1, $e, $5 ; CeladonMart2Text5
+
+	db $4 ; people
+	db SPRITE_MART_GUY, $3 + 4, $5 + 4, $ff, $d0, $1 ; person
+	db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $2 ; person
+	db SPRITE_FAT_BALD_GUY, $5 + 4, $13 + 4, $ff, $ff, $3 ; person
+	db SPRITE_GIRL, $4 + 4, $e + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/celadonmart3.asm
@@ -1,0 +1,33 @@
+CeladonMart3Object: ; 0x482c4 (size=94)
+	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 $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 $5 ; people
+	db SPRITE_MART_GUY, $5 + 4, $10 + 4, $ff, $ff, $1 ; person
+	db SPRITE_GAMEBOY_KID_COPY, $6 + 4, $b + 4, $ff, $d3, $2 ; person
+	db SPRITE_GAMEBOY_KID_COPY, $2 + 4, $7 + 4, $ff, $d0, $3 ; person
+	db SPRITE_GAMEBOY_KID_COPY, $2 + 4, $8 + 4, $ff, $d0, $4 ; person
+	db SPRITE_YOUNG_BOY, $5 + 4, $2 + 4, $ff, $d1, $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
--- /dev/null
+++ b/data/mapObjects/celadonmart4.asm
@@ -1,0 +1,20 @@
+CeladonMart4Object: ; 0x48370 (size=49)
+	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 $1 ; signs
+	db $1, $e, $4 ; CeladonMart4Text4
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $7 + 4, $5 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $f + 4, $fe, $2, $2 ; person
+	db SPRITE_BUG_CATCHER, $2 + 4, $5 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/celadonmart5.asm
@@ -1,0 +1,21 @@
+CeladonMart5Object: ; 0x49085 (size=55)
+	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 $1 ; signs
+	db $1, $e, $5 ; CeladonMart5Text5
+
+	db $4 ; people
+	db SPRITE_GENTLEMAN, $5 + 4, $e + 4, $fe, $1, $1 ; person
+	db SPRITE_SAILOR, $6 + 4, $2 + 4, $ff, $ff, $2 ; person
+	db SPRITE_MART_GUY, $3 + 4, $5 + 4, $ff, $d0, $3 ; person
+	db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/celadonmartelevator.asm
@@ -1,0 +1,15 @@
+CeladonMartElevatorObject: ; 0x4866d (size=23)
+	db $f ; border block
+
+	db $2 ; warps
+	db $3, $1, $5, CELADON_MART_1
+	db $3, $2, $5, CELADON_MART_1
+
+	db $1 ; signs
+	db $0, $3, $1 ; CeladonMartElevatorText1
+
+	db $0 ; people
+
+	; warp-to
+	EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $1 ; CELADON_MART_1
+	EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $2 ; CELADON_MART_1
--- /dev/null
+++ b/data/mapObjects/celadonmartroof.asm
@@ -1,0 +1,18 @@
+CeladonMartRoofObject: ; 0x485a8 (size=36)
+	db $42 ; border block
+
+	db $1 ; warps
+	db $2, $f, $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 $2 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $a + 4, $ff, $d2, $1 ; person
+	db SPRITE_LITTLE_GIRL, $5 + 4, $5 + 4, $fe, $0, $2 ; person
+
+	; warp-to
+	EVENT_DISP CELADON_MART_ROOF_WIDTH, $2, $f ; CELADON_MART_5
--- /dev/null
+++ b/data/mapObjects/celadonpokecenter.asm
@@ -1,0 +1,18 @@
+CeladonPokecenterObject: ; 0x488d2 (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $5, $ff
+	db $7, $4, $5, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $fe, $2, $2 ; person
+	db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $fe, $0, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/celadonprizeroom.asm
@@ -1,0 +1,19 @@
+CeladonPrizeRoomObject: ; 0x49108 (size=41)
+	db $f ; border block
+
+	db $2 ; warps
+	db $7, $4, $9, $ff
+	db $7, $5, $9, $ff
+
+	db $3 ; signs
+	db $2, $2, $3 ; CeladonPrizeRoomText3
+	db $2, $4, $4 ; CeladonPrizeRoomText4
+	db $2, $6, $5 ; CeladonPrizeRoomText5
+
+	db $2 ; people
+	db SPRITE_BALDING_GUY, $4 + 4, $1 + 4, $ff, $ff, $1 ; person
+	db SPRITE_GAMBLER, $3 + 4, $7 + 4, $fe, $2, $2 ; person
+
+	; warp-to
+	EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $4
+	EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $5
--- /dev/null
+++ b/data/mapObjects/ceruleancity.asm
@@ -1,0 +1,47 @@
+CeruleanCityObject: ; 0x18786 (size=170)
+	db $f ; border block
+
+	db $a ; warps
+	db $b, $1b, $0, TRASHED_HOUSE
+	db $f, $d, $0, CERULEAN_HOUSE
+	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_3
+	db $9, $9, $0, CERULEAN_HOUSE_3
+
+	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 $b ; people
+	db SPRITE_BLUE, $2 + 4, $14 + 4, $ff, $d0, $1 ; person
+	db SPRITE_ROCKET, $8 + 4, $1e + 4, $ff, $ff, $42, ROCKET + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $1f + 4, $ff, $d0, $3 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $12 + 4, $f + 4, $fe, $1, $4 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $9 + 4, $fe, $2, $5 ; person
+	db SPRITE_GUARD, $c + 4, $1c + 4, $ff, $d0, $6 ; person
+	db SPRITE_LASS, $1a + 4, $1d + 4, $ff, $d2, $7 ; person
+	db SPRITE_SLOWBRO, $1a + 4, $1c + 4, $ff, $d0, $8 ; person
+	db SPRITE_LASS, $1b + 4, $9 + 4, $fe, $2, $9 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $c + 4, $4 + 4, $ff, $d0, $a ; person
+	db SPRITE_GUARD, $c + 4, $1b + 4, $ff, $d0, $b ; person
+
+	; warp-to
+	EVENT_DISP CERULEAN_CITY_WIDTH, $b, $1b ; TRASHED_HOUSE
+	EVENT_DISP CERULEAN_CITY_WIDTH, $f, $d ; CERULEAN_HOUSE
+	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_3
+	EVENT_DISP CERULEAN_CITY_WIDTH, $9, $9 ; CERULEAN_HOUSE_3
--- /dev/null
+++ b/data/mapObjects/ceruleangym.asm
@@ -1,0 +1,18 @@
+CeruleanGymObject: ; 0x5c834 (size=50)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $d, $4, $3, $ff
+	db $d, $5, $3, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_BRUNETTE_GIRL, $2 + 4, $4 + 4, $ff, $d0, $41, MISTY + $C8, $1 ; trainer
+	db SPRITE_LASS, $3 + 4, $2 + 4, $ff, $d3, $42, JR__TRAINER_F + $C8, $1 ; trainer
+	db SPRITE_SWIMMER, $7 + 4, $8 + 4, $ff, $d2, $43, SWIMMER + $C8, $1 ; trainer
+	db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP CERULEAN_GYM_WIDTH, $d, $4
+	EVENT_DISP CERULEAN_GYM_WIDTH, $d, $5
--- /dev/null
+++ b/data/mapObjects/ceruleanhouse1.asm
@@ -1,0 +1,16 @@
+CeruleanHouse1Object: ; 0x1d710 (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $1, $ff
+	db $7, $3, $1, $ff
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_OLD_MEDIUM_WOMAN, $4 + 4, $5 + 4, $ff, $d2, $1 ; person
+	db SPRITE_GAMBLER, $2 + 4, $1 + 4, $ff, $ff, $2 ; person
+
+	; warp-to
+	EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $2
+	EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/ceruleanhouse2.asm
@@ -1,0 +1,17 @@
+CeruleanHouse2Object: ; 0x74ebe (size=34)
+	db $c ; border block
+
+	db $3 ; warps
+	db $0, $2, $9, $ff
+	db $7, $2, $8, $ff
+	db $7, $3, $8, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FAT_BALD_GUY, $3 + 4, $5 + 4, $ff, $d3, $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
--- /dev/null
+++ b/data/mapObjects/ceruleanhousetrashed.asm
@@ -1,0 +1,19 @@
+CeruleanHouseTrashedObject: ; 0x1d6bf (size=43)
+	db $a ; border block
+
+	db $3 ; warps
+	db $7, $2, $0, $ff
+	db $7, $3, $0, $ff
+	db $0, $3, $7, $ff
+
+	db $1 ; signs
+	db $0, $3, $3 ; CeruleanHouseTrashedText3
+
+	db $2 ; people
+	db SPRITE_FISHER, $1 + 4, $2 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GIRL, $6 + 4, $5 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/ceruleanmart.asm
@@ -1,0 +1,17 @@
+CeruleanMartObject: ; 0x5c8a8 (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $5, $ff
+	db $7, $4, $5, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $3 + 4, $fe, $1, $2 ; person
+	db SPRITE_LASS, $2 + 4, $6 + 4, $fe, $2, $3 ; person
+
+	; warp-to
+	EVENT_DISP CERULEAN_MART_WIDTH, $7, $3
+	EVENT_DISP CERULEAN_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/ceruleanpokecenter.asm
@@ -1,0 +1,18 @@
+CeruleanPokecenterObject: ; 0x5c65f (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $2, $ff
+	db $7, $4, $2, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $a + 4, $fe, $0, $2 ; person
+	db SPRITE_GENTLEMAN, $3 + 4, $4 + 4, $ff, $d0, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/cinnabargym.asm
@@ -1,0 +1,23 @@
+CinnabarGymObject: ; 0x75acc (size=90)
+	db $2e ; border block
+
+	db $2 ; warps
+	db $11, $10, $1, $ff
+	db $11, $11, $1, $ff
+
+	db $0 ; signs
+
+	db $9 ; people
+	db SPRITE_FAT_BALD_GUY, $3 + 4, $3 + 4, $ff, $d0, $41, BLAINE + $C8, $1 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $11 + 4, $ff, $d0, $42, SUPER_NERD + $C8, $9 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $11 + 4, $ff, $d0, $43, BURGLAR + $C8, $4 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $b + 4, $ff, $d0, $44, SUPER_NERD + $C8, $a ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $b + 4, $ff, $d0, $45, BURGLAR + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $b + 4, $ff, $d0, $46, SUPER_NERD + $C8, $b ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $3 + 4, $ff, $d0, $47, BURGLAR + $C8, $6 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d0, $48, SUPER_NERD + $C8, $c ; trainer
+	db SPRITE_GYM_HELPER, $d + 4, $10 + 4, $ff, $d0, $9 ; person
+
+	; warp-to
+	EVENT_DISP CINNABAR_GYM_WIDTH, $11, $10
+	EVENT_DISP CINNABAR_GYM_WIDTH, $11, $11
--- /dev/null
+++ b/data/mapObjects/cinnabarisland.asm
@@ -1,0 +1,27 @@
+CinnabarIslandObject: ; 0x1c022 (size=71)
+	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 ; 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 $2 ; people
+	db SPRITE_GIRL, $5 + 4, $c + 4, $fe, $2, $1 ; person
+	db SPRITE_GAMBLER, $6 + 4, $e + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/cinnabarmart.asm
@@ -1,0 +1,17 @@
+CinnabarMartObject: ; 0x75e91 (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $4, $ff
+	db $7, $4, $4, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_ERIKA, $2 + 4, $6 + 4, $ff, $ff, $2 ; person
+	db SPRITE_OAK_AIDE, $4 + 4, $3 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP CINNABAR_MART_WIDTH, $7, $3
+	EVENT_DISP CINNABAR_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/cinnabarpokecenter.asm
@@ -1,0 +1,18 @@
+CinnabarPokecenterObject: ; 0x75e46 (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $3, $ff
+	db $7, $4, $3, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_LASS, $4 + 4, $9 + 4, $fe, $0, $2 ; person
+	db SPRITE_GENTLEMAN, $6 + 4, $2 + 4, $ff, $ff, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/copycatshouse1f.asm
@@ -1,0 +1,19 @@
+CopycatsHouse1FObject: ; 0x75ee3 (size=46)
+	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 $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MOM_GEISHA, $2 + 4, $2 + 4, $ff, $d0, $1 ; person
+	db SPRITE_FAT_BALD_GUY, $4 + 4, $5 + 4, $ff, $d2, $2 ; person
+	db SPRITE_CLEFAIRY, $4 + 4, $1 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/copycatshouse2f.asm
@@ -1,0 +1,19 @@
+CopycatsHouse2FObject: ; 0x5cd21 (size=48)
+	db $a ; border block
+
+	db $1 ; warps
+	db $1, $7, $2, COPYCATS_HOUSE_1F
+
+	db $2 ; signs
+	db $5, $3, $6 ; CopycatsHouse2FText6
+	db $1, $0, $7 ; CopycatsHouse2FText7
+
+	db $5 ; people
+	db SPRITE_BRUNETTE_GIRL, $3 + 4, $4 + 4, $fe, $0, $1 ; person
+	db SPRITE_BIRD, $6 + 4, $4 + 4, $fe, $2, $2 ; person
+	db SPRITE_SLOWBRO, $1 + 4, $5 + 4, $ff, $d0, $3 ; person
+	db SPRITE_BIRD, $0 + 4, $2 + 4, $ff, $d0, $4 ; person
+	db SPRITE_CLEFAIRY, $6 + 4, $1 + 4, $ff, $d3, $5 ; person
+
+	; warp-to
+	EVENT_DISP COPYCATS_HOUSE_2F_WIDTH, $1, $7 ; COPYCATS_HOUSE_1F
--- /dev/null
+++ b/data/mapObjects/daycarem.asm
@@ -1,0 +1,15 @@
+DayCareMObject: ; 0x56459 (size=26)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $4, $ff
+	db $7, $3, $4, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
+
+	; warp-to
+	EVENT_DISP DAYCAREM_WIDTH, $7, $2
+	EVENT_DISP DAYCAREM_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/diglettscave.asm
@@ -1,0 +1,14 @@
+DiglettsCaveObject: ; 0x61f72 (size=20)
+	db $19 ; border block
+
+	db $2 ; warps
+	db $5, $5, $2, DIGLETTS_CAVE_EXIT
+	db $1f, $25, $2, DIGLETTS_CAVE_ENTRANCE
+
+	db $0 ; signs
+
+	db $0 ; people
+
+	; warp-to
+	EVENT_DISP DIGLETTS_CAVE_WIDTH, $5, $5 ; DIGLETTS_CAVE_EXIT
+	EVENT_DISP DIGLETTS_CAVE_WIDTH, $1f, $25 ; DIGLETTS_CAVE_ENTRANCE
--- /dev/null
+++ b/data/mapObjects/diglettscaveroute11.asm
@@ -1,0 +1,17 @@
+DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
+	db $7d ; border block
+
+	db $3 ; warps
+	db $7, $2, $4, $ff
+	db $7, $3, $4, $ff
+	db $4, $4, $1, DIGLETTS_CAVE
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GAMBLER, $3 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/diglettscaveroute2.asm
@@ -1,0 +1,17 @@
+DiglettsCaveRoute2Object: ; 0x1debf (size=34)
+	db $7d ; border block
+
+	db $3 ; warps
+	db $7, $2, $0, $ff
+	db $7, $3, $0, $ff
+	db $4, $4, $0, DIGLETTS_CAVE
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FISHER, $3 + 4, $3 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/fanclub.asm
@@ -1,0 +1,22 @@
+FanClubObject: ; 0x59c97 (size=62)
+	db $d ; border block
+
+	db $2 ; warps
+	db $7, $2, $1, $ff
+	db $7, $3, $1, $ff
+
+	db $2 ; signs
+	db $0, $1, $7 ; FanClubText7
+	db $0, $6, $8 ; FanClubText8
+
+	db $6 ; people
+	db SPRITE_FISHER2, $3 + 4, $6 + 4, $ff, $d2, $1 ; person
+	db SPRITE_GIRL, $3 + 4, $1 + 4, $ff, $d3, $2 ; person
+	db SPRITE_CLEFAIRY, $4 + 4, $6 + 4, $ff, $d2, $3 ; person
+	db SPRITE_SEEL, $4 + 4, $1 + 4, $ff, $d3, $4 ; person
+	db SPRITE_GENTLEMAN, $1 + 4, $3 + 4, $ff, $d0, $5 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $1 + 4, $5 + 4, $ff, $d0, $6 ; person
+
+	; warp-to
+	EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $2
+	EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/fightingdojo.asm
@@ -1,0 +1,21 @@
+FightingDojoObject: ; 0x5cf9b (size=72)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $b, $4, $1, $ff
+	db $b, $5, $1, $ff
+
+	db $0 ; signs
+
+	db $7 ; people
+	db SPRITE_HIKER, $3 + 4, $5 + 4, $ff, $d0, $41, BLACKBELT + $C8, $1 ; trainer
+	db SPRITE_HIKER, $4 + 4, $3 + 4, $ff, $d3, $42, BLACKBELT + $C8, $2 ; trainer
+	db SPRITE_HIKER, $6 + 4, $3 + 4, $ff, $d3, $43, BLACKBELT + $C8, $3 ; trainer
+	db SPRITE_HIKER, $5 + 4, $5 + 4, $ff, $d2, $44, BLACKBELT + $C8, $4 ; trainer
+	db SPRITE_HIKER, $7 + 4, $5 + 4, $ff, $d2, $45, BLACKBELT + $C8, $5 ; trainer
+	db SPRITE_BALL, $1 + 4, $4 + 4, $ff, $ff, $6 ; person
+	db SPRITE_BALL, $1 + 4, $5 + 4, $ff, $ff, $7 ; person
+
+	; warp-to
+	EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $4
+	EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $5
--- /dev/null
+++ b/data/mapObjects/fuchsiacity.asm
@@ -1,0 +1,52 @@
+FuchsiaCityObject: ; 0x18bd4 (size=178)
+	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 $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 $a ; people
+	db SPRITE_BUG_CATCHER, $c + 4, $a + 4, $fe, $2, $1 ; person
+	db SPRITE_GAMBLER, $11 + 4, $1c + 4, $fe, $2, $2 ; person
+	db SPRITE_FISHER2, $e + 4, $1e + 4, $ff, $d0, $3 ; person
+	db SPRITE_BUG_CATCHER, $8 + 4, $18 + 4, $ff, $d1, $4 ; person
+	db SPRITE_CLEFAIRY, $5 + 4, $1f + 4, $fe, $0, $5 ; person
+	db SPRITE_BALL, $6 + 4, $19 + 4, $ff, $ff, $6 ; person
+	db SPRITE_SLOWBRO, $6 + 4, $c + 4, $fe, $2, $7 ; person
+	db SPRITE_SLOWBRO, $c + 4, $1e + 4, $fe, $2, $8 ; person
+	db SPRITE_SEEL, $11 + 4, $8 + 4, $fe, $0, $9 ; person
+	db SPRITE_OMANYTE, $5 + 4, $6 + 4, $ff, $ff, $a ; 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
--- /dev/null
+++ b/data/mapObjects/fuchsiagym.asm
@@ -1,0 +1,22 @@
+FuchsiaGymObject: ; 0x75658 (size=82)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $11, $4, $5, $ff
+	db $11, $5, $5, $ff
+
+	db $0 ; signs
+
+	db $8 ; people
+	db SPRITE_BLACKBELT, $a + 4, $4 + 4, $ff, $d0, $41, KOGA + $C8, $1 ; trainer
+	db SPRITE_ROCKER, $d + 4, $8 + 4, $ff, $d0, $42, JUGGLER + $C8, $7 ; trainer
+	db SPRITE_ROCKER, $8 + 4, $7 + 4, $ff, $d3, $43, JUGGLER + $C8, $3 ; trainer
+	db SPRITE_ROCKER, $c + 4, $1 + 4, $ff, $d0, $44, JUGGLER + $C8, $8 ; trainer
+	db SPRITE_ROCKER, $5 + 4, $3 + 4, $ff, $d1, $45, TAMER + $C8, $1 ; trainer
+	db SPRITE_ROCKER, $2 + 4, $8 + 4, $ff, $d0, $46, TAMER + $C8, $2 ; trainer
+	db SPRITE_ROCKER, $7 + 4, $2 + 4, $ff, $d2, $47, JUGGLER + $C8, $4 ; trainer
+	db SPRITE_GYM_HELPER, $f + 4, $7 + 4, $ff, $d0, $8 ; person
+
+	; warp-to
+	EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $4
+	EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $5
--- /dev/null
+++ b/data/mapObjects/fuchsiahouse1.asm
@@ -1,0 +1,17 @@
+FuchsiaHouse1Object: ; 0x75031 (size=38)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $1, $ff
+	db $7, $3, $1, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MOM_GEISHA, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
+	db SPRITE_GAMBLER, $2 + 4, $7 + 4, $ff, $d1, $2 ; person
+	db SPRITE_BUG_CATCHER, $5 + 4, $5 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $2
+	EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/fuchsiahouse2.asm
@@ -1,0 +1,19 @@
+FuchsiaHouse2Object: ; 0x75180 (size=45)
+	db $17 ; border block
+
+	db $2 ; warps
+	db $7, $4, $3, $ff
+	db $7, $5, $3, $ff
+
+	db $2 ; signs
+	db $3, $4, $4 ; FuchsiaHouse2Text4
+	db $3, $5, $5 ; FuchsiaHouse2Text5
+
+	db $3 ; people
+	db SPRITE_WARDEN, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $82, RARE_CANDY ; item
+	db SPRITE_BOULDER, $4 + 4, $8 + 4, $ff, $10, $3 ; person
+
+	; warp-to
+	EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $4
+	EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $5
--- /dev/null
+++ b/data/mapObjects/fuchsiahouse3.asm
@@ -1,0 +1,17 @@
+FuchsiaHouse3Object: ; 0x56221 (size=34)
+	db $c ; border block
+
+	db $3 ; warps
+	db $0, $2, $8, $ff
+	db $7, $2, $7, $ff
+	db $7, $3, $7, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FISHER, $3 + 4, $5 + 4, $ff, $d3, $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
--- /dev/null
+++ b/data/mapObjects/fuchsiamart.asm
@@ -1,0 +1,17 @@
+FuchsiaMartObject: ; 0x1dd9b (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $0, $ff
+	db $7, $4, $0, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_FAT_BALD_GUY, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
+	db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $1, $3 ; person
+
+	; warp-to
+	EVENT_DISP FUCHSIA_MART_WIDTH, $7, $3
+	EVENT_DISP FUCHSIA_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/fuchsiameetingroom.asm
@@ -1,0 +1,17 @@
+FuchsiaMeetingRoomObject: ; 0x756fc (size=38)
+	db $17 ; border block
+
+	db $2 ; warps
+	db $7, $4, $6, $ff
+	db $7, $5, $6, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_WHITE_PLAYER, $1 + 4, $4 + 4, $ff, $d0, $1 ; person
+	db SPRITE_WHITE_PLAYER, $2 + 4, $0 + 4, $ff, $d1, $2 ; person
+	db SPRITE_WHITE_PLAYER, $1 + 4, $a + 4, $ff, $d0, $3 ; person
+
+	; warp-to
+	EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $4
+	EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $5
--- /dev/null
+++ b/data/mapObjects/fuchsiapokecenter.asm
@@ -1,0 +1,18 @@
+FuchsiaPokecenterObject: ; 0x7507d (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $2, $ff
+	db $7, $4, $2, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_ROCKER, $3 + 4, $2 + 4, $ff, $ff, $2 ; person
+	db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $2, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/gary.asm
@@ -1,0 +1,20 @@
+GaryObject: ; 0x7612f (size=48)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BLUE, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
+	db SPRITE_OAK, $7 + 4, $3 + 4, $ff, $d1, $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
--- /dev/null
+++ b/data/mapObjects/halloffameroom.asm
@@ -1,0 +1,15 @@
+HallofFameRoomObject: ; 0x5a571 (size=26)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $7, $4, $2, CHAMPIONS_ROOM
+	db $7, $5, $3, CHAMPIONS_ROOM
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_OAK, $2 + 4, $5 + 4, $ff, $d0, $1 ; person
+
+	; warp-to
+	EVENT_DISP HALL_OF_FAME_WIDTH, $7, $4 ; CHAMPIONS_ROOM
+	EVENT_DISP HALL_OF_FAME_WIDTH, $7, $5 ; CHAMPIONS_ROOM
--- /dev/null
+++ b/data/mapObjects/indigoplateau.asm
@@ -1,0 +1,14 @@
+IndigoPlateauObject: ; 0x50936 (size=20)
+	db $e ; border block
+
+	db $2 ; warps
+	db $5, $9, $0, INDIGO_PLATEAU_LOBBY
+	db $5, $a, $0, INDIGO_PLATEAU_LOBBY
+
+	db $0 ; signs
+
+	db $0 ; people
+
+	; warp-to
+	EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $9 ; INDIGO_PLATEAU_LOBBY
+	EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $a ; INDIGO_PLATEAU_LOBBY
--- /dev/null
+++ b/data/mapObjects/indigoplateaulobby.asm
@@ -1,0 +1,21 @@
+IndigoPlateauLobbyObject: ; 0x19c95 (size=58)
+	db $0 ; border block
+
+	db $3 ; warps
+	db $b, $7, $0, $ff
+	db $b, $8, $1, $ff
+	db $0, $8, $0, LORELEIS_ROOM
+
+	db $0 ; signs
+
+	db $5 ; people
+	db SPRITE_NURSE, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GYM_HELPER, $9 + 4, $4 + 4, $ff, $d3, $2 ; person
+	db SPRITE_LASS, $1 + 4, $5 + 4, $ff, $d0, $3 ; person
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $4 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $6 + 4, $d + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/lab1.asm
@@ -1,0 +1,25 @@
+Lab1Object: ; 0x75bb3 (size=62)
+	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 $4 ; signs
+	db $2, $3, $2 ; Lab1Text2
+	db $4, $9, $3 ; Lab1Text3
+	db $4, $d, $4 ; Lab1Text4
+	db $4, $11, $5 ; Lab1Text5
+
+	db $1 ; people
+	db SPRITE_FISHER, $3 + 4, $1 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/lab2.asm
@@ -1,0 +1,17 @@
+Lab2Object: ; 0x75c45 (size=38)
+	db $17 ; border block
+
+	db $2 ; warps
+	db $7, $2, $2, CINNABAR_LAB_1
+	db $7, $3, $2, CINNABAR_LAB_1
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_OLD_PERSON, $4 + 4, $1 + 4, $ff, $ff, $2 ; person
+	db SPRITE_FOULARD_WOMAN, $5 + 4, $5 + 4, $ff, $d1, $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
--- /dev/null
+++ b/data/mapObjects/lab3.asm
@@ -1,0 +1,19 @@
+Lab3Object: ; 0x75cec (size=41)
+	db $17 ; border block
+
+	db $2 ; warps
+	db $7, $2, $3, CINNABAR_LAB_1
+	db $7, $3, $3, CINNABAR_LAB_1
+
+	db $3 ; signs
+	db $4, $0, $3 ; Lab3Text3
+	db $4, $1, $4 ; Lab3Text4
+	db $1, $2, $5 ; Lab3Text5
+
+	db $2 ; people
+	db SPRITE_OAK_AIDE, $2 + 4, $7 + 4, $ff, $d0, $1 ; person
+	db SPRITE_OAK_AIDE, $3 + 4, $2 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/lab4.asm
@@ -1,0 +1,16 @@
+Lab4Object: ; 0x75df0 (size=32)
+	db $17 ; border block
+
+	db $2 ; warps
+	db $7, $2, $4, CINNABAR_LAB_1
+	db $7, $3, $4, CINNABAR_LAB_1
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_OAK_AIDE, $2 + 4, $5 + 4, $fe, $2, $1 ; person
+	db SPRITE_OAK_AIDE, $6 + 4, $7 + 4, $ff, $d1, $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
--- /dev/null
+++ b/data/mapObjects/lance.asm
@@ -1,0 +1,17 @@
+LanceObject: ; 0x5a3c5 (size=36)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_LANCE, $1 + 4, $6 + 4, $ff, $d0, $41, LANCE + $C8, $1 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/lavenderhouse1.asm
@@ -1,0 +1,20 @@
+LavenderHouse1Object: ; 0x1d96a (size=56)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $2, $ff
+	db $7, $3, $2, $ff
+
+	db $0 ; signs
+
+	db $6 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $ff, $1 ; person
+	db SPRITE_LITTLE_GIRL, $3 + 4, $6 + 4, $ff, $d0, $2 ; person
+	db SPRITE_SLOWBRO, $4 + 4, $6 + 4, $ff, $d1, $3 ; person
+	db SPRITE_SLOWBRO, $3 + 4, $1 + 4, $ff, $ff, $4 ; person
+	db SPRITE_MR_FUJI, $1 + 4, $3 + 4, $ff, $ff, $5 ; person
+	db SPRITE_BOOK_MAP_DEX, $3 + 4, $3 + 4, $ff, $ff, $6 ; person
+
+	; warp-to
+	EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $2
+	EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/lavenderhouse2.asm
@@ -1,0 +1,16 @@
+LavenderHouse2Object: ; 0x1d9e6 (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $4, $ff
+	db $7, $3, $4, $ff
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_SLOWBRO, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
+	db SPRITE_BRUNETTE_GIRL, $4 + 4, $2 + 4, $ff, $d3, $2 ; person
+
+	; warp-to
+	EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $2
+	EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/lavendermart.asm
@@ -1,0 +1,17 @@
+LavenderMartObject: ; 0x5c95d (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $3, $ff
+	db $7, $4, $3, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BALDING_GUY, $4 + 4, $3 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $7 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP LAVENDER_MART_WIDTH, $7, $3
+	EVENT_DISP LAVENDER_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/lavenderpokecenter.asm
@@ -1,0 +1,18 @@
+LavenderPokecenterObject: ; 0x5c8f4 (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $0, $ff
+	db $7, $4, $0, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GENTLEMAN, $3 + 4, $5 + 4, $ff, $ff, $2 ; person
+	db SPRITE_LITTLE_GIRL, $6 + 4, $2 + 4, $fe, $1, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/lavendertown.asm
@@ -1,0 +1,31 @@
+LavenderTownObject: ; 0x4402d (size=88)
+	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 ; 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 $3 ; people
+	db SPRITE_LITTLE_GIRL, $9 + 4, $f + 4, $fe, $0, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $9 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $7 + 4, $8 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/lorelei.asm
@@ -1,0 +1,19 @@
+LoreleiObject: ; 0x76280 (size=44)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_LORELEI, $2 + 4, $5 + 4, $ff, $d0, $41, LORELEI + $C8, $1 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/mansion1.asm
@@ -1,0 +1,29 @@
+Mansion1Object: ; 0x443a4 (size=90)
+	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 $0 ; signs
+
+	db $3 ; people
+	db SPRITE_OAK_AIDE, $11 + 4, $11 + 4, $ff, $d2, $41, SCIENTIST + $C8, $4 ; trainer
+	db SPRITE_BALL, $3 + 4, $e + 4, $ff, $ff, $82, ESCAPE_ROPE ; item
+	db SPRITE_BALL, $15 + 4, $12 + 4, $ff, $ff, $83, CARBOS ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/mansion2.asm
@@ -1,0 +1,22 @@
+Mansion2Object: ; 0x520d1 (size=63)
+	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 $0 ; signs
+
+	db $4 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $3 + 4, $fe, $2, $41, BURGLAR + $C8, $7 ; trainer
+	db SPRITE_BALL, $7 + 4, $1c + 4, $ff, $ff, $82, CALCIUM ; item
+	db SPRITE_BOOK_MAP_DEX, $2 + 4, $12 + 4, $ff, $ff, $3 ; person
+	db SPRITE_BOOK_MAP_DEX, $16 + 4, $3 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/mansion3.asm
@@ -1,0 +1,21 @@
+Mansion3Object: ; 0x522e6 (size=64)
+	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 $0 ; signs
+
+	db $5 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $5 + 4, $fe, $2, $41, BURGLAR + $C8, $8 ; trainer
+	db SPRITE_OAK_AIDE, $b + 4, $14 + 4, $ff, $d2, $42, SCIENTIST + $C8, $c ; trainer
+	db SPRITE_BALL, $10 + 4, $1 + 4, $ff, $ff, $83, MAX_POTION ; item
+	db SPRITE_BALL, $5 + 4, $19 + 4, $ff, $ff, $84, IRON ; item
+	db SPRITE_BOOK_MAP_DEX, $c + 4, $6 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/mansion4.asm
@@ -1,0 +1,20 @@
+Mansion4Object: ; 0x52498 (size=69)
+	db $1 ; border block
+
+	db $1 ; warps
+	db $16, $17, $5, MANSION_1
+
+	db $0 ; signs
+
+	db $8 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $17 + 4, $10 + 4, $ff, $ff, $41, BURGLAR + $C8, $9 ; trainer
+	db SPRITE_OAK_AIDE, $b + 4, $1b + 4, $ff, $d0, $42, SCIENTIST + $C8, $d ; trainer
+	db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $83, RARE_CANDY ; item
+	db SPRITE_BALL, $16 + 4, $1 + 4, $ff, $ff, $84, FULL_RESTORE ; item
+	db SPRITE_BALL, $19 + 4, $13 + 4, $ff, $ff, $85, TM_14 ; item
+	db SPRITE_BALL, $4 + 4, $5 + 4, $ff, $ff, $86, TM_22 ; item
+	db SPRITE_BOOK_MAP_DEX, $14 + 4, $10 + 4, $ff, $ff, $7 ; person
+	db SPRITE_BALL, $d + 4, $5 + 4, $ff, $ff, $88, SECRET_KEY ; item
+
+	; warp-to
+	EVENT_DISP MANSION_4_WIDTH, $16, $17 ; MANSION_1
--- /dev/null
+++ b/data/mapObjects/mtmoon1.asm
@@ -1,0 +1,34 @@
+MtMoon1Object: ; 0x49b06 (size=145)
+	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 $1 ; signs
+	db $17, $f, $e ; MtMoon1Text14
+
+	db $d ; people
+	db SPRITE_HIKER, $6 + 4, $5 + 4, $ff, $d0, $41, HIKER + $C8, $1 ; trainer
+	db SPRITE_BUG_CATCHER, $10 + 4, $c + 4, $ff, $d3, $42, YOUNGSTER + $C8, $3 ; trainer
+	db SPRITE_LASS, $4 + 4, $1e + 4, $ff, $d0, $43, LASS + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $1f + 4, $18 + 4, $ff, $d1, $44, SUPER_NERD + $C8, $1 ; trainer
+	db SPRITE_LASS, $17 + 4, $10 + 4, $ff, $d0, $45, LASS + $C8, $6 ; trainer
+	db SPRITE_BUG_CATCHER, $16 + 4, $7 + 4, $ff, $d0, $46, BUG_CATCHER + $C8, $7 ; trainer
+	db SPRITE_BUG_CATCHER, $1b + 4, $1e + 4, $ff, $d3, $47, BUG_CATCHER + $C8, $8 ; trainer
+	db SPRITE_BALL, $14 + 4, $2 + 4, $ff, $ff, $88, POTION ; item
+	db SPRITE_BALL, $2 + 4, $2 + 4, $ff, $ff, $89, MOON_STONE ; item
+	db SPRITE_BALL, $1f + 4, $23 + 4, $ff, $ff, $8a, RARE_CANDY ; item
+	db SPRITE_BALL, $17 + 4, $24 + 4, $ff, $ff, $8b, ESCAPE_ROPE ; item
+	db SPRITE_BALL, $21 + 4, $14 + 4, $ff, $ff, $8c, POTION ; item
+	db SPRITE_BALL, $20 + 4, $5 + 4, $ff, $ff, $8d, TM_12 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/mtmoon2.asm
@@ -1,0 +1,26 @@
+MtMoon2Object: ; 0x51a4d (size=68)
+	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 $0 ; signs
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/mtmoon3.asm
@@ -1,0 +1,27 @@
+MtMoon3Object: ; 0x49fdb (size=102)
+	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 $0 ; signs
+
+	db $9 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $c + 4, $ff, $d3, $41, SUPER_NERD + $C8, $2 ; trainer
+	db SPRITE_ROCKET, $10 + 4, $b + 4, $ff, $d0, $42, ROCKET + $C8, $1 ; trainer
+	db SPRITE_ROCKET, $16 + 4, $f + 4, $ff, $d0, $43, ROCKET + $C8, $2 ; trainer
+	db SPRITE_ROCKET, $b + 4, $1d + 4, $ff, $d1, $44, ROCKET + $C8, $3 ; trainer
+	db SPRITE_ROCKET, $11 + 4, $1d + 4, $ff, $d2, $45, ROCKET + $C8, $4 ; trainer
+	db SPRITE_OMANYTE, $6 + 4, $c + 4, $ff, $ff, $6 ; person
+	db SPRITE_OMANYTE, $6 + 4, $d + 4, $ff, $ff, $7 ; person
+	db SPRITE_BALL, $15 + 4, $19 + 4, $ff, $ff, $88, HP_UP ; item
+	db SPRITE_BALL, $5 + 4, $1d + 4, $ff, $ff, $89, TM_01 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/mtmoonpokecenter.asm
@@ -1,0 +1,20 @@
+MtMoonPokecenterObject: ; 0x49376 (size=56)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $0, $ff
+	db $7, $4, $0, $ff
+
+	db $0 ; signs
+
+	db $6 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_BUG_CATCHER, $3 + 4, $4 + 4, $ff, $d1, $2 ; person
+	db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $ff, $d1, $3 ; person
+	db SPRITE_FAT_BALD_GUY, $6 + 4, $a + 4, $fe, $2, $4 ; person
+	db SPRITE_CLIPBOARD, $2 + 4, $7 + 4, $ff, $ff, $5 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $6 ; person
+
+	; warp-to
+	EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/museum1f.asm
@@ -1,0 +1,25 @@
+Museum1FObject: ; 0x5c2c1 (size=74)
+	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 $0 ; signs
+
+	db $5 ; people
+	db SPRITE_OAK_AIDE, $4 + 4, $c + 4, $ff, $d2, $1 ; person
+	db SPRITE_GAMBLER, $4 + 4, $1 + 4, $ff, $ff, $2 ; person
+	db SPRITE_OAK_AIDE, $2 + 4, $f + 4, $ff, $d0, $3 ; person
+	db SPRITE_OAK_AIDE, $4 + 4, $11 + 4, $ff, $ff, $4 ; person
+	db SPRITE_OLD_AMBER, $2 + 4, $10 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/museum2f.asm
@@ -1,0 +1,19 @@
+Museum2FObject: ; 0x5c34b (size=48)
+	db $a ; border block
+
+	db $1 ; warps
+	db $7, $7, $4, MUSEUM_1F
+
+	db $2 ; signs
+	db $2, $b, $6 ; Museum2FText6
+	db $5, $2, $7 ; Museum2FText7
+
+	db $5 ; people
+	db SPRITE_BUG_CATCHER, $7 + 4, $1 + 4, $fe, $2, $1 ; person
+	db SPRITE_OLD_PERSON, $5 + 4, $0 + 4, $ff, $d0, $2 ; person
+	db SPRITE_OAK_AIDE, $5 + 4, $7 + 4, $ff, $d0, $3 ; person
+	db SPRITE_BRUNETTE_GIRL, $5 + 4, $b + 4, $ff, $ff, $4 ; person
+	db SPRITE_HIKER, $5 + 4, $c + 4, $ff, $d0, $5 ; person
+
+	; warp-to
+	EVENT_DISP MUSEUM_2F_WIDTH, $7, $7 ; MUSEUM_1F
--- /dev/null
+++ b/data/mapObjects/namerater.asm
@@ -1,0 +1,15 @@
+NameRaterObject: ; 0x1dad6 (size=26)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $5, $ff
+	db $7, $3, $5, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_MR_MASTERBALL, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
+
+	; warp-to
+	EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $2
+	EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/oakslab.asm
@@ -1,0 +1,25 @@
+OaksLabObject: ; 0x1d40a (size=88)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $b, $4, $2, $ff
+	db $b, $5, $2, $ff
+
+	db $0 ; signs
+
+	db $b ; people
+	db SPRITE_BLUE, $3 + 4, $4 + 4, $ff, $ff, $41, SONY1 + $C8, $1 ; trainer
+	db SPRITE_BALL, $3 + 4, $6 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BALL, $3 + 4, $7 + 4, $ff, $ff, $3 ; person
+	db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $4 ; person
+	db SPRITE_OAK, $2 + 4, $5 + 4, $ff, $d0, $5 ; person
+	db SPRITE_BOOK_MAP_DEX, $1 + 4, $2 + 4, $ff, $ff, $6 ; person
+	db SPRITE_BOOK_MAP_DEX, $1 + 4, $3 + 4, $ff, $ff, $7 ; person
+	db SPRITE_OAK, $a + 4, $5 + 4, $ff, $d1, $8 ; person
+	db SPRITE_GIRL, $9 + 4, $1 + 4, $fe, $1, $9 ; person
+	db SPRITE_OAK_AIDE, $a + 4, $2 + 4, $ff, $ff, $a ; person
+	db SPRITE_OAK_AIDE, $a + 4, $8 + 4, $ff, $ff, $b ; person
+
+	; warp-to
+	EVENT_DISP OAKS_LAB_WIDTH, $b, $4
+	EVENT_DISP OAKS_LAB_WIDTH, $b, $5
--- /dev/null
+++ b/data/mapObjects/pallettown.asm
@@ -1,0 +1,23 @@
+PalletTownObject: ; 0x182c3 (size=58)
+	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 $4 ; signs
+	db $d, $d, $4 ; PalletTownText4
+	db $9, $7, $5 ; PalletTownText5
+	db $5, $3, $6 ; PalletTownText6
+	db $5, $b, $7 ; PalletTownText7
+
+	db $3 ; people
+	db SPRITE_OAK, $5 + 4, $8 + 4, $ff, $ff, $1 ; person
+	db SPRITE_GIRL, $8 + 4, $3 + 4, $fe, $0, $2 ; person
+	db SPRITE_FISHER2, $e + 4, $b + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/pewtercity.asm
@@ -1,0 +1,36 @@
+PewterCityObject: ; 0x18577 (size=111)
+	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 ; 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 $5 ; people
+	db SPRITE_LASS, $f + 4, $8 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $19 + 4, $11 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $1b + 4, $ff, $ff, $3 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $19 + 4, $1a + 4, $fe, $2, $4 ; person
+	db SPRITE_BUG_CATCHER, $10 + 4, $23 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/pewtergym.asm
@@ -1,0 +1,17 @@
+PewterGymObject: ; 0x5c52e (size=42)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $d, $4, $2, $ff
+	db $d, $5, $2, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $1 + 4, $4 + 4, $ff, $d0, $41, BROCK + $C8, $1 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $3 + 4, $ff, $d3, $42, JR__TRAINER_M + $C8, $1 ; trainer
+	db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $3 ; person
+
+	; warp-to
+	EVENT_DISP PEWTER_GYM_WIDTH, $d, $4
+	EVENT_DISP PEWTER_GYM_WIDTH, $d, $5
--- /dev/null
+++ b/data/mapObjects/pewterhouse1.asm
@@ -1,0 +1,17 @@
+PewterHouse1Object: ; 0x1d616 (size=38)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $3, $ff
+	db $7, $3, $3, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_SLOWBRO, $5 + 4, $4 + 4, $ff, $d2, $1 ; person
+	db SPRITE_YOUNG_BOY, $5 + 4, $3 + 4, $ff, $d3, $2 ; person
+	db SPRITE_FAT_BALD_GUY, $2 + 4, $1 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $2
+	EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/pewterhouse2.asm
@@ -1,0 +1,16 @@
+PewterHouse2Object: ; 0x1d659 (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $5, $ff
+	db $7, $3, $5, $ff
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_GAMBLER, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BUG_CATCHER, $5 + 4, $4 + 4, $ff, $ff, $2 ; person
+
+	; warp-to
+	EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $2
+	EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/pewtermart.asm
@@ -1,0 +1,17 @@
+PewterMartObject: ; 0x74cda (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $4, $ff
+	db $7, $4, $4, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BUG_CATCHER, $3 + 4, $3 + 4, $fe, $1, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $5 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP PEWTER_MART_WIDTH, $7, $3
+	EVENT_DISP PEWTER_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/pewterpokecenter.asm
@@ -1,0 +1,18 @@
+PewterPokecenterObject: ; 0x5c60d (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $6, $ff
+	db $7, $4, $6, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GENTLEMAN, $7 + 4, $b + 4, $ff, $d2, $2 ; person
+	db SPRITE_CLEFAIRY, $3 + 4, $1 + 4, $ff, $d0, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/pokemontower1.asm
@@ -1,0 +1,21 @@
+PokemonTower1Object: ; 0x60452 (size=58)
+	db $1 ; border block
+
+	db $3 ; warps
+	db $11, $a, $1, $ff
+	db $11, $b, $1, $ff
+	db $9, $12, $1, POKEMONTOWER_2
+
+	db $0 ; signs
+
+	db $5 ; people
+	db SPRITE_CABLE_CLUB_WOMAN, $d + 4, $f + 4, $ff, $d1, $1 ; person
+	db SPRITE_MOM_GEISHA, $8 + 4, $6 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BALDING_GUY, $c + 4, $8 + 4, $ff, $ff, $3 ; person
+	db SPRITE_GIRL, $7 + 4, $d + 4, $ff, $ff, $4 ; person
+	db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $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
--- /dev/null
+++ b/data/mapObjects/pokemontower2.asm
@@ -1,0 +1,16 @@
+PokemonTower2Object: ; 0x60646 (size=32)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $9, $3, $0, POKEMONTOWER_3
+	db $9, $12, $2, POKEMONTOWER_1
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BLUE, $5 + 4, $e + 4, $ff, $ff, $1 ; person
+	db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d3, $2 ; person
+
+	; warp-to
+	EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $3 ; POKEMONTOWER_3
+	EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $12 ; POKEMONTOWER_1
--- /dev/null
+++ b/data/mapObjects/pokemontower3.asm
@@ -1,0 +1,18 @@
+PokemonTower3Object: ; 0x6075d (size=51)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $9, $3, $0, POKEMONTOWER_2
+	db $9, $12, $1, POKEMONTOWER_4
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_MEDIUM, $3 + 4, $c + 4, $ff, $d2, $41, CHANNELER + $C8, $5 ; trainer
+	db SPRITE_MEDIUM, $8 + 4, $9 + 4, $ff, $d0, $42, CHANNELER + $C8, $6 ; trainer
+	db SPRITE_MEDIUM, $d + 4, $a + 4, $ff, $d0, $43, CHANNELER + $C8, $8 ; trainer
+	db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $84, ESCAPE_ROPE ; item
+
+	; warp-to
+	EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $3 ; POKEMONTOWER_2
+	EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $12 ; POKEMONTOWER_4
--- /dev/null
+++ b/data/mapObjects/pokemontower4.asm
@@ -1,0 +1,20 @@
+PokemonTower4Object: ; 0x6088b (size=65)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $9, $3, $0, POKEMONTOWER_5
+	db $9, $12, $1, POKEMONTOWER_3
+
+	db $0 ; signs
+
+	db $6 ; people
+	db SPRITE_MEDIUM, $a + 4, $5 + 4, $ff, $d3, $41, CHANNELER + $C8, $9 ; trainer
+	db SPRITE_MEDIUM, $7 + 4, $f + 4, $ff, $d0, $42, CHANNELER + $C8, $a ; trainer
+	db SPRITE_MEDIUM, $c + 4, $e + 4, $ff, $d2, $43, CHANNELER + $C8, $c ; trainer
+	db SPRITE_BALL, $a + 4, $c + 4, $ff, $ff, $84, ELIXER ; item
+	db SPRITE_BALL, $a + 4, $9 + 4, $ff, $ff, $85, AWAKENING ; item
+	db SPRITE_BALL, $10 + 4, $c + 4, $ff, $ff, $86, HP_UP ; item
+
+	; warp-to
+	EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $3 ; POKEMONTOWER_5
+	EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $12 ; POKEMONTOWER_3
--- /dev/null
+++ b/data/mapObjects/pokemontower5.asm
@@ -1,0 +1,20 @@
+PokemonTower5Object: ; 0x60a48 (size=65)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $9, $3, $0, POKEMONTOWER_4
+	db $9, $12, $0, POKEMONTOWER_6
+
+	db $0 ; signs
+
+	db $6 ; people
+	db SPRITE_MEDIUM, $8 + 4, $c + 4, $ff, $ff, $1 ; person
+	db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $42, CHANNELER + $C8, $e ; trainer
+	db SPRITE_MEDIUM, $3 + 4, $e + 4, $ff, $d2, $43, CHANNELER + $C8, $10 ; trainer
+	db SPRITE_MEDIUM, $a + 4, $6 + 4, $ff, $d3, $44, CHANNELER + $C8, $11 ; trainer
+	db SPRITE_MEDIUM, $10 + 4, $9 + 4, $ff, $d3, $45, CHANNELER + $C8, $12 ; trainer
+	db SPRITE_BALL, $e + 4, $6 + 4, $ff, $ff, $86, NUGGET ; item
+
+	; warp-to
+	EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $3 ; POKEMONTOWER_4
+	EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $12 ; POKEMONTOWER_6
--- /dev/null
+++ b/data/mapObjects/pokemontower6.asm
@@ -1,0 +1,19 @@
+PokemonTower6Object: ; 0x60c5b (size=58)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $9, $12, $1, POKEMONTOWER_5
+	db $10, $9, $0, POKEMONTOWER_7
+
+	db $0 ; signs
+
+	db $5 ; people
+	db SPRITE_MEDIUM, $a + 4, $c + 4, $ff, $d3, $41, CHANNELER + $C8, $13 ; trainer
+	db SPRITE_MEDIUM, $5 + 4, $9 + 4, $ff, $d0, $42, CHANNELER + $C8, $14 ; trainer
+	db SPRITE_MEDIUM, $5 + 4, $10 + 4, $ff, $d2, $43, CHANNELER + $C8, $15 ; trainer
+	db SPRITE_BALL, $8 + 4, $6 + 4, $ff, $ff, $84, RARE_CANDY ; item
+	db SPRITE_BALL, $e + 4, $e + 4, $ff, $ff, $85, X_ACCURACY ; item
+
+	; warp-to
+	EVENT_DISP POKEMONTOWER_6_WIDTH, $9, $12 ; POKEMONTOWER_5
+	EVENT_DISP POKEMONTOWER_6_WIDTH, $10, $9 ; POKEMONTOWER_7
--- /dev/null
+++ b/data/mapObjects/pokemontower7.asm
@@ -1,0 +1,16 @@
+PokemonTower7Object: ; 0x60ef6 (size=42)
+	db $1 ; border block
+
+	db $1 ; warps
+	db $10, $9, $1, POKEMONTOWER_6
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_ROCKET, $b + 4, $9 + 4, $ff, $d3, $41, ROCKET + $C8, $13 ; trainer
+	db SPRITE_ROCKET, $9 + 4, $c + 4, $ff, $d2, $42, ROCKET + $C8, $14 ; trainer
+	db SPRITE_ROCKET, $7 + 4, $9 + 4, $ff, $d3, $43, ROCKET + $C8, $15 ; trainer
+	db SPRITE_MR_FUJI, $3 + 4, $a + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP POKEMONTOWER_7_WIDTH, $10, $9 ; POKEMONTOWER_6
--- /dev/null
+++ b/data/mapObjects/powerplant.asm
@@ -1,0 +1,30 @@
+PowerPlantObject: ; 0x1e3bf (size=135)
+	db $2e ; border block
+
+	db $3 ; warps
+	db $23, $4, $3, $ff
+	db $23, $5, $3, $ff
+	db $b, $0, $3, $ff
+
+	db $0 ; signs
+
+	db $e ; people
+	db SPRITE_BALL, $14 + 4, $9 + 4, $ff, $ff, $41, VOLTORB, 40 ; trainer
+	db SPRITE_BALL, $12 + 4, $20 + 4, $ff, $ff, $42, VOLTORB, 40 ; trainer
+	db SPRITE_BALL, $19 + 4, $15 + 4, $ff, $ff, $43, VOLTORB, 40 ; trainer
+	db SPRITE_BALL, $12 + 4, $19 + 4, $ff, $ff, $44, ELECTRODE, 43 ; trainer
+	db SPRITE_BALL, $22 + 4, $17 + 4, $ff, $ff, $45, VOLTORB, 40 ; trainer
+	db SPRITE_BALL, $1c + 4, $1a + 4, $ff, $ff, $46, VOLTORB, 40 ; trainer
+	db SPRITE_BALL, $e + 4, $15 + 4, $ff, $ff, $47, ELECTRODE, 43 ; trainer
+	db SPRITE_BALL, $20 + 4, $25 + 4, $ff, $ff, $48, VOLTORB, 40 ; trainer
+	db SPRITE_BIRD, $9 + 4, $4 + 4, $ff, $d1, $49, ZAPDOS, 50 ; trainer
+	db SPRITE_BALL, $19 + 4, $7 + 4, $ff, $ff, $8a, CARBOS ; item
+	db SPRITE_BALL, $3 + 4, $1c + 4, $ff, $ff, $8b, HP_UP ; item
+	db SPRITE_BALL, $3 + 4, $22 + 4, $ff, $ff, $8c, RARE_CANDY ; item
+	db SPRITE_BALL, $20 + 4, $1a + 4, $ff, $ff, $8d, TM_25 ; item
+	db SPRITE_BALL, $20 + 4, $14 + 4, $ff, $ff, $8e, TM_33 ; item
+
+	; warp-to
+	EVENT_DISP POWER_PLANT_WIDTH, $23, $4
+	EVENT_DISP POWER_PLANT_WIDTH, $23, $5
+	EVENT_DISP POWER_PLANT_WIDTH, $b, $0
--- /dev/null
+++ b/data/mapObjects/redshouse1f.asm
@@ -1,0 +1,18 @@
+RedsHouse1FObject: ; 481e4 (12:41e4)
+	db $0A ; border block
+
+	db 3 ; warps
+	db 7,2,0,$FF ; exit1
+	db 7,3,0,$FF ; exit2
+	db 1,7,0,$26 ; staircase
+
+	db 1 ; signs
+	db 1,3,2 ; TV
+
+	db 1 ; people
+	db $33,4+4,5+4,$FF,$D2,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
--- /dev/null
+++ b/data/mapObjects/redshouse2f.asm
@@ -1,0 +1,12 @@
+RedsHouse2FObject: ; 0x5c0d0 ?
+	db $0A ; border block
+
+	db 1 ; warps
+	db 1, 7, 2, REDS_HOUSE_1F
+
+	db 0 ; signs
+
+	db 0 ; people
+
+	; warp-to
+	EVENT_DISP REDS_HOUSE_2F_WIDTH, 1, 7
--- /dev/null
+++ b/data/mapObjects/rockethideout1.asm
@@ -1,0 +1,27 @@
+RocketHideout1Object: ; 0x44ce7 (size=98)
+	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 $0 ; signs
+
+	db $7 ; people
+	db SPRITE_ROCKET, $8 + 4, $1a + 4, $ff, $d2, $41, ROCKET + $C8, $8 ; trainer
+	db SPRITE_ROCKET, $6 + 4, $c + 4, $ff, $d3, $42, ROCKET + $C8, $9 ; trainer
+	db SPRITE_ROCKET, $11 + 4, $12 + 4, $ff, $d0, $43, ROCKET + $C8, $a ; trainer
+	db SPRITE_ROCKET, $19 + 4, $f + 4, $ff, $d3, $44, ROCKET + $C8, $b ; trainer
+	db SPRITE_ROCKET, $12 + 4, $1c + 4, $ff, $d2, $45, ROCKET + $C8, $c ; trainer
+	db SPRITE_BALL, $e + 4, $b + 4, $ff, $ff, $86, ESCAPE_ROPE ; item
+	db SPRITE_BALL, $11 + 4, $9 + 4, $ff, $ff, $87, HYPER_POTION ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/rockethideout2.asm
@@ -1,0 +1,25 @@
+RocketHideout2Object: ; 0x450f7 (size=80)
+	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 $0 ; signs
+
+	db $5 ; people
+	db SPRITE_ROCKET, $c + 4, $14 + 4, $ff, $d0, $41, ROCKET + $C8, $d ; trainer
+	db SPRITE_BALL, $b + 4, $1 + 4, $ff, $ff, $82, MOON_STONE ; item
+	db SPRITE_BALL, $8 + 4, $10 + 4, $ff, $ff, $83, NUGGET ; item
+	db SPRITE_BALL, $c + 4, $6 + 4, $ff, $ff, $84, TM_07 ; item
+	db SPRITE_BALL, $15 + 4, $3 + 4, $ff, $ff, $85, SUPER_POTION ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/rockethideout3.asm
@@ -1,0 +1,18 @@
+RocketHideout3Object: ; 0x4534d (size=50)
+	db $2e ; border block
+
+	db $2 ; warps
+	db $6, $19, $1, ROCKET_HIDEOUT_2
+	db $12, $13, $0, ROCKET_HIDEOUT_4
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_ROCKET, $16 + 4, $a + 4, $ff, $d3, $41, ROCKET + $C8, $e ; trainer
+	db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d1, $42, ROCKET + $C8, $f ; trainer
+	db SPRITE_BALL, $11 + 4, $1a + 4, $ff, $ff, $83, TM_10 ; item
+	db SPRITE_BALL, $e + 4, $14 + 4, $ff, $ff, $84, RARE_CANDY ; item
+
+	; warp-to
+	EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $6, $19 ; ROCKET_HIDEOUT_2
+	EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $12, $13 ; ROCKET_HIDEOUT_4
--- /dev/null
+++ b/data/mapObjects/rockethideout4.asm
@@ -1,0 +1,25 @@
+RocketHideout4Object: ; 0x455f1 (size=95)
+	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 $0 ; signs
+
+	db $9 ; people
+	db SPRITE_GIOVANNI, $3 + 4, $19 + 4, $ff, $d0, $41, GIOVANNI + $C8, $1 ; trainer
+	db SPRITE_ROCKET, $c + 4, $17 + 4, $ff, $d0, $42, ROCKET + $C8, $10 ; trainer
+	db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d0, $43, ROCKET + $C8, $11 ; trainer
+	db SPRITE_ROCKET, $2 + 4, $b + 4, $ff, $d0, $44, ROCKET + $C8, $12 ; trainer
+	db SPRITE_BALL, $c + 4, $a + 4, $ff, $ff, $85, HP_UP ; item
+	db SPRITE_BALL, $4 + 4, $9 + 4, $ff, $ff, $86, TM_02 ; item
+	db SPRITE_BALL, $14 + 4, $c + 4, $ff, $ff, $87, IRON ; item
+	db SPRITE_BALL, $2 + 4, $19 + 4, $ff, $ff, $88, SILPH_SCOPE ; item
+	db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $89, LIFT_KEY ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/rockethideoutelevator.asm
@@ -1,0 +1,15 @@
+RocketHideoutElevatorObject: ; 0x45791 (size=23)
+	db $f ; border block
+
+	db $2 ; warps
+	db $1, $2, $2, ROCKET_HIDEOUT_1
+	db $1, $3, $4, ROCKET_HIDEOUT_1
+
+	db $1 ; signs
+	db $1, $1, $1 ; RocketHideoutElevatorText1
+
+	db $0 ; people
+
+	; warp-to
+	EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $2 ; ROCKET_HIDEOUT_1
+	EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $3 ; ROCKET_HIDEOUT_1
--- /dev/null
+++ b/data/mapObjects/rocktunnel1.asm
@@ -1,0 +1,34 @@
+RockTunnel1Object: ; 0x445f6 (size=127)
+	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 $1 ; signs
+	db $1d, $b, $8 ; RockTunnel1Text8
+
+	db $7 ; people
+	db SPRITE_HIKER, $5 + 4, $7 + 4, $ff, $d0, $41, HIKER + $C8, $c ; trainer
+	db SPRITE_HIKER, $10 + 4, $5 + 4, $ff, $d0, $42, HIKER + $C8, $d ; trainer
+	db SPRITE_HIKER, $f + 4, $11 + 4, $ff, $d2, $43, HIKER + $C8, $e ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $17 + 4, $ff, $d2, $44, POKEMANIAC + $C8, $7 ; trainer
+	db SPRITE_LASS, $15 + 4, $25 + 4, $ff, $d2, $45, JR__TRAINER_F + $C8, $11 ; trainer
+	db SPRITE_LASS, $18 + 4, $16 + 4, $ff, $d0, $46, JR__TRAINER_F + $C8, $12 ; trainer
+	db SPRITE_LASS, $18 + 4, $20 + 4, $ff, $d3, $47, JR__TRAINER_F + $C8, $13 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/rocktunnel2.asm
@@ -1,0 +1,26 @@
+RockTunnel2Object: ; 0x4613d (size=100)
+	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 $0 ; signs
+
+	db $8 ; people
+	db SPRITE_LASS, $d + 4, $b + 4, $ff, $d0, $41, JR__TRAINER_F + $C8, $9 ; trainer
+	db SPRITE_HIKER, $a + 4, $6 + 4, $ff, $d0, $42, HIKER + $C8, $9 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $d0, $43, POKEMANIAC + $C8, $3 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $14 + 4, $ff, $d3, $44, POKEMANIAC + $C8, $4 ; trainer
+	db SPRITE_HIKER, $a + 4, $1e + 4, $ff, $d0, $45, HIKER + $C8, $a ; trainer
+	db SPRITE_LASS, $1c + 4, $e + 4, $ff, $d3, $46, JR__TRAINER_F + $C8, $a ; trainer
+	db SPRITE_HIKER, $5 + 4, $21 + 4, $ff, $d3, $47, HIKER + $C8, $b ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $1e + 4, $1a + 4, $ff, $d0, $48, POKEMANIAC + $C8, $5 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/rocktunnelpokecenter.asm
@@ -1,0 +1,18 @@
+RockTunnelPokecenterObject: ; 0x493d4 (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $0, $ff
+	db $7, $4, $0, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $fe, $2, $2 ; person
+	db SPRITE_FISHER2, $5 + 4, $2 + 4, $ff, $ff, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/route1.asm
@@ -1,0 +1,14 @@
+Route1Object: ; 0x1c0e5 (size=19)
+	db $b ; border block
+
+	db $0 ; warps
+
+	db $1 ; signs
+	db $1b, $9, $3 ; Route1Text3
+
+	db $2 ; people
+	db SPRITE_BUG_CATCHER, $18 + 4, $5 + 4, $fe, $1, $1 ; person
+	db SPRITE_BUG_CATCHER, $d + 4, $f + 4, $fe, $2, $2 ; person
+
+	; warp-to (unused)
+	EVENT_DISP $4, $7, $2
--- /dev/null
+++ b/data/mapObjects/route10.asm
@@ -1,0 +1,28 @@
+Route10Object: ; 0x582f6 (size=96)
+	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 ; signs
+	db $13, $7, $7 ; Route10Text7
+	db $13, $c, $8 ; PokeCenterSignText
+	db $37, $9, $9 ; Route10Text9
+	db $29, $5, $a ; Route10Text10
+
+	db $6 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $2c + 4, $a + 4, $ff, $d2, $41, POKEMANIAC + $C8, $1 ; trainer
+	db SPRITE_HIKER, $39 + 4, $3 + 4, $ff, $d1, $42, HIKER + $C8, $7 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $40 + 4, $e + 4, $ff, $d2, $43, POKEMANIAC + $C8, $2 ; trainer
+	db SPRITE_LASS, $19 + 4, $7 + 4, $ff, $d2, $44, JR__TRAINER_F + $C8, $7 ; trainer
+	db SPRITE_HIKER, $3d + 4, $3 + 4, $ff, $d0, $45, HIKER + $C8, $8 ; trainer
+	db SPRITE_LASS, $36 + 4, $7 + 4, $ff, $d0, $46, JR__TRAINER_F + $C8, $8 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route11.asm
@@ -1,0 +1,31 @@
+Route11Object: ; 0x584e0 (size=127)
+	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 $1 ; signs
+	db $5, $1, $b ; Route11Text11
+
+	db $a ; people
+	db SPRITE_GAMBLER, $e + 4, $a + 4, $ff, $d0, $41, GAMBLER + $C8, $1 ; trainer
+	db SPRITE_GAMBLER, $9 + 4, $1a + 4, $ff, $d0, $42, GAMBLER + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $5 + 4, $d + 4, $ff, $d2, $43, YOUNGSTER + $C8, $9 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $24 + 4, $ff, $d0, $44, ENGINEER + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $4 + 4, $16 + 4, $ff, $d1, $45, YOUNGSTER + $C8, $a ; trainer
+	db SPRITE_GAMBLER, $7 + 4, $2d + 4, $ff, $d0, $46, GAMBLER + $C8, $3 ; trainer
+	db SPRITE_GAMBLER, $3 + 4, $21 + 4, $ff, $d1, $47, GAMBLER + $C8, $4 ; trainer
+	db SPRITE_BUG_CATCHER, $5 + 4, $2b + 4, $ff, $d3, $48, YOUNGSTER + $C8, $b ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $10 + 4, $2d + 4, $ff, $d2, $49, ENGINEER + $C8, $3 ; trainer
+	db SPRITE_BUG_CATCHER, $c + 4, $16 + 4, $ff, $d1, $4a, YOUNGSTER + $C8, $c ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route11gate.asm
@@ -1,0 +1,21 @@
+Route11GateObject: ; 0x49416 (size=50)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/route11gateupstairs.asm
@@ -1,0 +1,16 @@
+Route11GateUpstairsObject: ; 0x494da (size=30)
+	db $a ; border block
+
+	db $1 ; warps
+	db $7, $7, $4, ROUTE_11_GATE_1F
+
+	db $2 ; signs
+	db $2, $1, $3 ; Route11GateUpstairsText3
+	db $2, $6, $4 ; Route11GateUpstairsText4
+
+	db $2 ; people
+	db SPRITE_BUG_CATCHER, $2 + 4, $4 + 4, $fe, $2, $1 ; person
+	db SPRITE_OAK_AIDE, $6 + 4, $2 + 4, $ff, $ff, $2 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_11_GATE_2F_WIDTH, $7, $7 ; ROUTE_11_GATE_1F
--- /dev/null
+++ b/data/mapObjects/route12.asm
@@ -1,0 +1,30 @@
+Route12Object: ; 0x5869a (size=118)
+	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 $2 ; signs
+	db $d, $d, $b ; Route12Text11
+	db $3f, $b, $c ; Route12Text12
+
+	db $a ; people
+	db SPRITE_SNORLAX, $3e + 4, $a + 4, $ff, $d0, $1 ; person
+	db SPRITE_FISHER2, $1f + 4, $e + 4, $ff, $d2, $42, FISHER + $C8, $3 ; trainer
+	db SPRITE_FISHER2, $27 + 4, $5 + 4, $ff, $d1, $43, FISHER + $C8, $4 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $5c + 4, $b + 4, $ff, $d2, $44, JR__TRAINER_M + $C8, $9 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $4c + 4, $e + 4, $ff, $d1, $45, ROCKER + $C8, $2 ; trainer
+	db SPRITE_FISHER2, $28 + 4, $c + 4, $ff, $d2, $46, FISHER + $C8, $5 ; trainer
+	db SPRITE_FISHER2, $34 + 4, $9 + 4, $ff, $d3, $47, FISHER + $C8, $6 ; trainer
+	db SPRITE_FISHER2, $57 + 4, $6 + 4, $ff, $d0, $48, FISHER + $C8, $b ; trainer
+	db SPRITE_BALL, $23 + 4, $e + 4, $ff, $ff, $89, TM_16 ; item
+	db SPRITE_BALL, $59 + 4, $5 + 4, $ff, $ff, $8a, IRON ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route12gate.asm
@@ -1,0 +1,21 @@
+Route12GateObject: ; 0x4950e (size=50)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $3 + 4, $1 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/route12gateupstairs.asm
@@ -1,0 +1,15 @@
+Route12GateUpstairsObject: ; 0x495de (size=24)
+	db $a ; border block
+
+	db $1 ; warps
+	db $7, $7, $4, ROUTE_12_GATE_1F
+
+	db $2 ; signs
+	db $2, $1, $2 ; Route12GateUpstairsText2
+	db $2, $6, $3 ; Route12GateUpstairsText3
+
+	db $1 ; people
+	db SPRITE_BRUNETTE_GIRL, $4 + 4, $3 + 4, $fe, $1, $1 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_12_GATE_2F_WIDTH, $7, $7 ; ROUTE_12_GATE_1F
--- /dev/null
+++ b/data/mapObjects/route12house.asm
@@ -1,0 +1,15 @@
+Route12HouseObject: ; 0x564de (size=26)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $3, $ff
+	db $7, $3, $3, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FISHER, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $2
+	EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/route13.asm
@@ -1,0 +1,21 @@
+Route13Object: ; 0x5482e (size=93)
+	db $43 ; border block
+
+	db $0 ; warps
+
+	db $3 ; signs
+	db $d, $f, $b ; Route13Text11
+	db $5, $21, $c ; Route13Text12
+	db $b, $1f, $d ; Route13Text13
+
+	db $a ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $31 + 4, $ff, $d3, $41, BIRD_KEEPER + $C8, $1 ; trainer
+	db SPRITE_LASS, $a + 4, $30 + 4, $ff, $d0, $42, JR__TRAINER_F + $C8, $c ; trainer
+	db SPRITE_LASS, $9 + 4, $1b + 4, $ff, $d0, $43, JR__TRAINER_F + $C8, $d ; trainer
+	db SPRITE_LASS, $a + 4, $17 + 4, $ff, $d2, $44, JR__TRAINER_F + $C8, $e ; trainer
+	db SPRITE_LASS, $5 + 4, $32 + 4, $ff, $d0, $45, JR__TRAINER_F + $C8, $f ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $c + 4, $ff, $d3, $46, BIRD_KEEPER + $C8, $2 ; trainer
+	db SPRITE_FOULARD_WOMAN, $6 + 4, $21 + 4, $ff, $d0, $47, BEAUTY + $C8, $4 ; trainer
+	db SPRITE_FOULARD_WOMAN, $6 + 4, $20 + 4, $ff, $d0, $48, BEAUTY + $C8, $5 ; trainer
+	db SPRITE_BIKER, $7 + 4, $a + 4, $ff, $d1, $49, BIKER + $C8, $1 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $7 + 4, $ff, $d1, $4a, BIRD_KEEPER + $C8, $3 ; trainer
--- /dev/null
+++ b/data/mapObjects/route14.asm
@@ -1,0 +1,19 @@
+Route14Object: ; 0x549bb (size=87)
+	db $43 ; border block
+
+	db $0 ; warps
+
+	db $1 ; signs
+	db $d, $11, $b ; Route14Text11
+
+	db $a ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $4 + 4, $ff, $d0, $41, BIRD_KEEPER + $C8, $e ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $f + 4, $ff, $d0, $42, BIRD_KEEPER + $C8, $f ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $c + 4, $ff, $d0, $43, BIRD_KEEPER + $C8, $10 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $e + 4, $ff, $d1, $44, BIRD_KEEPER + $C8, $11 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $f + 4, $ff, $d2, $45, BIRD_KEEPER + $C8, $4 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $31 + 4, $6 + 4, $ff, $d1, $46, BIRD_KEEPER + $C8, $5 ; trainer
+	db SPRITE_BIKER, $27 + 4, $5 + 4, $ff, $d0, $47, BIKER + $C8, $d ; trainer
+	db SPRITE_BIKER, $1e + 4, $4 + 4, $ff, $d3, $48, BIKER + $C8, $e ; trainer
+	db SPRITE_BIKER, $1e + 4, $f + 4, $ff, $d2, $49, BIKER + $C8, $f ; trainer
+	db SPRITE_BIKER, $1f + 4, $4 + 4, $ff, $d3, $4a, BIKER + $C8, $2 ; trainer
--- /dev/null
+++ b/data/mapObjects/route15.asm
@@ -1,0 +1,30 @@
+Route15Object: ; 0x5894e (size=126)
+	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 $1 ; signs
+	db $9, $27, $c ; Route15Text12
+
+	db $b ; people
+	db SPRITE_LASS, $b + 4, $29 + 4, $ff, $d0, $41, JR__TRAINER_F + $C8, $14 ; trainer
+	db SPRITE_LASS, $a + 4, $35 + 4, $ff, $d2, $42, JR__TRAINER_F + $C8, $15 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $1f + 4, $ff, $d1, $43, BIRD_KEEPER + $C8, $6 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $23 + 4, $ff, $d1, $44, BIRD_KEEPER + $C8, $7 ; trainer
+	db SPRITE_FOULARD_WOMAN, $b + 4, $35 + 4, $ff, $d0, $45, BEAUTY + $C8, $9 ; trainer
+	db SPRITE_FOULARD_WOMAN, $a + 4, $29 + 4, $ff, $d3, $46, BEAUTY + $C8, $a ; trainer
+	db SPRITE_BIKER, $a + 4, $30 + 4, $ff, $d0, $47, BIKER + $C8, $3 ; trainer
+	db SPRITE_BIKER, $a + 4, $2e + 4, $ff, $d0, $48, BIKER + $C8, $4 ; trainer
+	db SPRITE_LASS, $5 + 4, $25 + 4, $ff, $d3, $49, JR__TRAINER_F + $C8, $16 ; trainer
+	db SPRITE_LASS, $d + 4, $12 + 4, $ff, $d1, $4a, JR__TRAINER_F + $C8, $17 ; trainer
+	db SPRITE_BALL, $5 + 4, $12 + 4, $ff, $ff, $8b, TM_20 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route15gate.asm
@@ -1,0 +1,21 @@
+Route15GateObject: ; 0x4960c (size=50)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/route15gateupstairs.asm
@@ -1,0 +1,14 @@
+Route15GateUpstairsObject: ; 4969d (12:569d)
+	db $a ; border block
+
+	db $1 ; warps
+	db $7, $7, $4, ROUTE_15_GATE_1F
+
+	db $1 ; signs
+	db $2, $6, $2 ; Route15GateUpstairsText2
+
+	db $1 ; people
+	db SPRITE_OAK_AIDE, $2 + 4, $4 + 4, $ff, $d0, $1
+
+	; warp-to
+	EVENT_DISP ROUTE_15_GATE_2F_WIDTH, $7, $7 ; ROUTE_15_GATE_1F
--- /dev/null
+++ b/data/mapObjects/route16.asm
@@ -1,0 +1,37 @@
+Route16Object: ; 0x58afc (size=136)
+	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 $2 ; signs
+	db $b, $1b, $8 ; Route16Text8
+	db $11, $5, $9 ; Route16Text9
+
+	db $7 ; people
+	db SPRITE_BIKER, $c + 4, $11 + 4, $ff, $d2, $41, BIKER + $C8, $5 ; trainer
+	db SPRITE_BIKER, $d + 4, $e + 4, $ff, $d3, $42, CUE_BALL + $C8, $1 ; trainer
+	db SPRITE_BIKER, $c + 4, $b + 4, $ff, $d1, $43, CUE_BALL + $C8, $2 ; trainer
+	db SPRITE_BIKER, $b + 4, $9 + 4, $ff, $d2, $44, BIKER + $C8, $6 ; trainer
+	db SPRITE_BIKER, $a + 4, $6 + 4, $ff, $d3, $45, CUE_BALL + $C8, $3 ; trainer
+	db SPRITE_BIKER, $c + 4, $3 + 4, $ff, $d3, $46, BIKER + $C8, $7 ; trainer
+	db SPRITE_SNORLAX, $a + 4, $1a + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/route16gate.asm
@@ -1,0 +1,30 @@
+Route16GateObject: ; 0x4978b (size=88)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_GUARD, $5 + 4, $4 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GAMBLER, $3 + 4, $4 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/route16gateupstairs.asm
@@ -1,0 +1,16 @@
+Route16GateUpstairsObject: ; 0x4984c (size=30)
+	db $a ; border block
+
+	db $1 ; warps
+	db $7, $7, $8, ROUTE_16_GATE_1F
+
+	db $2 ; signs
+	db $2, $1, $3 ; Route16GateUpstairsText3
+	db $2, $6, $4 ; Route16GateUpstairsText4
+
+	db $2 ; people
+	db SPRITE_YOUNG_BOY, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
+	db SPRITE_LITTLE_GIRL, $5 + 4, $2 + 4, $fe, $2, $2 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_16_GATE_2F_WIDTH, $7, $7 ; ROUTE_16_GATE_1F
--- /dev/null
+++ b/data/mapObjects/route16house.asm
@@ -1,0 +1,16 @@
+Route16HouseObject: ; 0x1e657 (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $8, $ff
+	db $7, $3, $8, $ff
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BRUNETTE_GIRL, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BIRD, $4 + 4, $6 + 4, $fe, $0, $2 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $2
+	EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/route17.asm
@@ -1,0 +1,24 @@
+Route17Object: ; 0x54b42 (size=102)
+	db $43 ; border block
+
+	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 $a ; people
+	db SPRITE_BIKER, $13 + 4, $c + 4, $ff, $d2, $41, CUE_BALL + $C8, $4 ; trainer
+	db SPRITE_BIKER, $10 + 4, $b + 4, $ff, $d3, $42, CUE_BALL + $C8, $5 ; trainer
+	db SPRITE_BIKER, $12 + 4, $4 + 4, $ff, $d1, $43, BIKER + $C8, $8 ; trainer
+	db SPRITE_BIKER, $20 + 4, $7 + 4, $ff, $d2, $44, BIKER + $C8, $9 ; trainer
+	db SPRITE_BIKER, $22 + 4, $e + 4, $ff, $d3, $45, BIKER + $C8, $a ; trainer
+	db SPRITE_BIKER, $3a + 4, $11 + 4, $ff, $d2, $46, CUE_BALL + $C8, $6 ; trainer
+	db SPRITE_BIKER, $44 + 4, $2 + 4, $ff, $d3, $47, CUE_BALL + $C8, $7 ; trainer
+	db SPRITE_BIKER, $62 + 4, $e + 4, $ff, $d3, $48, CUE_BALL + $C8, $8 ; trainer
+	db SPRITE_BIKER, $62 + 4, $5 + 4, $ff, $d2, $49, BIKER + $C8, $b ; trainer
+	db SPRITE_BIKER, $76 + 4, $a + 4, $ff, $d0, $4a, BIKER + $C8, $c ; trainer
--- /dev/null
+++ b/data/mapObjects/route18.asm
@@ -1,0 +1,23 @@
+Route18Object: ; 0x58c5a (size=66)
+	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 $2 ; signs
+	db $7, $2b, $4 ; Route18Text4
+	db $5, $21, $5 ; Route18Text5
+
+	db $3 ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $24 + 4, $ff, $d3, $41, BIRD_KEEPER + $C8, $8 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $28 + 4, $ff, $d2, $42, BIRD_KEEPER + $C8, $9 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $2a + 4, $ff, $d2, $43, BIRD_KEEPER + $C8, $a ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route18gate.asm
@@ -1,0 +1,21 @@
+Route18GateObject: ; 0x49937 (size=50)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/route18gateupstairs.asm
@@ -1,0 +1,15 @@
+Route18GateUpstairsObject: ; 0x499a4 (size=24)
+	db $a ; border block
+
+	db $1 ; warps
+	db $7, $7, $4, ROUTE_18_GATE_1F
+
+	db $2 ; signs
+	db $2, $1, $2 ; Route18GateUpstairsText2
+	db $2, $6, $3 ; Route18GateUpstairsText3
+
+	db $1 ; people
+	db SPRITE_BUG_CATCHER, $2 + 4, $4 + 4, $fe, $2, $1 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_18_GATE_2F_WIDTH, $7, $7 ; ROUTE_18_GATE_1F
--- /dev/null
+++ b/data/mapObjects/route19.asm
@@ -1,0 +1,30 @@
+Route19Object: ; 0x54e9a (size=87)
+	db $43 ; border block
+
+	IF _YELLOW
+		db $1 ; warps
+		db $9, $5, $0, $f8 ; SURF_HOUSE
+	ENDC
+	IF !_YELLOW
+		db $0 ; warps
+	ENDC
+
+	db $1 ; signs
+	db $9, $b, $b ; Route19Text11
+
+	db $a ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $8 + 4, $ff, $d2, $41, SWIMMER + $C8, $2 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $d + 4, $ff, $d2, $42, SWIMMER + $C8, $3 ; trainer
+	db SPRITE_SWIMMER, $19 + 4, $d + 4, $ff, $d2, $43, SWIMMER + $C8, $4 ; trainer
+	db SPRITE_SWIMMER, $1b + 4, $4 + 4, $ff, $d3, $44, SWIMMER + $C8, $5 ; trainer
+	db SPRITE_SWIMMER, $1f + 4, $10 + 4, $ff, $d1, $45, SWIMMER + $C8, $6 ; trainer
+	db SPRITE_SWIMMER, $b + 4, $9 + 4, $ff, $d0, $46, SWIMMER + $C8, $7 ; trainer
+	db SPRITE_SWIMMER, $2b + 4, $8 + 4, $ff, $d2, $47, BEAUTY + $C8, $c ; trainer
+	db SPRITE_SWIMMER, $2b + 4, $b + 4, $ff, $d3, $48, BEAUTY + $C8, $d ; trainer
+	db SPRITE_SWIMMER, $2a + 4, $9 + 4, $ff, $d1, $49, SWIMMER + $C8, $8 ; trainer
+	db SPRITE_SWIMMER, $2c + 4, $a + 4, $ff, $d0, $4a, BEAUTY + $C8, $e ; trainer
+
+	; warp-to
+	IF _YELLOW
+		EVENT_DISP ROUTE_19_WIDTH, $9, $5 ; SURF_HOUSE
+	ENDC
--- /dev/null
+++ b/data/mapObjects/route2.asm
@@ -1,0 +1,33 @@
+Route2Object: ; 0x54022 (size=72)
+	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 $2 ; signs
+	db $41, $5, $3 ; Route2Text3
+	db $b, $b, $4 ; Route2Text4
+
+	db $2 ; people
+	db SPRITE_BALL, $36 + 4, $d + 4, $ff, $ff, $81, MOON_STONE ; item
+	db SPRITE_BALL, $2d + 4, $d + 4, $ff, $ff, $82, HP_UP ; item
+
+	; 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
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route20.asm
@@ -1,0 +1,26 @@
+Route20Object: ; 0x50113 (size=106)
+	db $43 ; border block
+
+	db $2 ; warps
+	db $5, $30, $0, SEAFOAM_ISLANDS_1
+	db $9, $3a, $2, SEAFOAM_ISLANDS_1
+
+	db $2 ; signs
+	db $7, $33, $b ; Route20Text11
+	db $b, $39, $c ; Route20Text12
+
+	db $a ; people
+	db SPRITE_SWIMMER, $8 + 4, $57 + 4, $ff, $d1, $41, SWIMMER + $C8, $9 ; trainer
+	db SPRITE_SWIMMER, $b + 4, $44 + 4, $ff, $d1, $42, BEAUTY + $C8, $f ; trainer
+	db SPRITE_SWIMMER, $a + 4, $2d + 4, $ff, $d0, $43, BEAUTY + $C8, $6 ; trainer
+	db SPRITE_SWIMMER, $e + 4, $37 + 4, $ff, $d3, $44, JR__TRAINER_F + $C8, $18 ; trainer
+	db SPRITE_SWIMMER, $d + 4, $26 + 4, $ff, $d0, $45, SWIMMER + $C8, $a ; trainer
+	db SPRITE_SWIMMER, $d + 4, $57 + 4, $ff, $d1, $46, SWIMMER + $C8, $b ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $9 + 4, $22 + 4, $ff, $d1, $47, BIRD_KEEPER + $C8, $b ; trainer
+	db SPRITE_SWIMMER, $7 + 4, $19 + 4, $ff, $d1, $48, BEAUTY + $C8, $7 ; trainer
+	db SPRITE_SWIMMER, $c + 4, $18 + 4, $ff, $d0, $49, JR__TRAINER_F + $C8, $10 ; trainer
+	db SPRITE_SWIMMER, $8 + 4, $f + 4, $ff, $d1, $4a, BEAUTY + $C8, $8 ; trainer
+
+	; warp-to
+	EVENT_DISP ROUTE_20_WIDTH, $5, $30 ; SEAFOAM_ISLANDS_1
+	EVENT_DISP ROUTE_20_WIDTH, $9, $3a ; SEAFOAM_ISLANDS_1
--- /dev/null
+++ b/data/mapObjects/route21.asm
@@ -1,0 +1,17 @@
+Route21Object: ; 0x55021 (size=76)
+	db $43 ; border block
+
+	db $0 ; warps
+
+	db $0 ; signs
+
+	db $9 ; people
+	db SPRITE_FISHER2, $18 + 4, $4 + 4, $ff, $d2, $41, FISHER + $C8, $7 ; trainer
+	db SPRITE_FISHER2, $19 + 4, $6 + 4, $ff, $d0, $42, FISHER + $C8, $9 ; trainer
+	db SPRITE_SWIMMER, $1f + 4, $a + 4, $ff, $d1, $43, SWIMMER + $C8, $c ; trainer
+	db SPRITE_SWIMMER, $1e + 4, $c + 4, $ff, $d3, $44, CUE_BALL + $C8, $9 ; trainer
+	db SPRITE_SWIMMER, $3f + 4, $10 + 4, $ff, $d0, $45, SWIMMER + $C8, $d ; trainer
+	db SPRITE_SWIMMER, $47 + 4, $5 + 4, $ff, $d3, $46, SWIMMER + $C8, $e ; trainer
+	db SPRITE_SWIMMER, $47 + 4, $f + 4, $ff, $d2, $47, SWIMMER + $C8, $f ; trainer
+	db SPRITE_FISHER2, $38 + 4, $e + 4, $ff, $d2, $48, FISHER + $C8, $8 ; trainer
+	db SPRITE_FISHER2, $39 + 4, $11 + 4, $ff, $d3, $49, FISHER + $C8, $a ; trainer
--- /dev/null
+++ b/data/mapObjects/route22.asm
@@ -1,0 +1,15 @@
+Route22Object: ; 0x50022 (size=27)
+	db $2c ; border block
+
+	db $1 ; warps
+	db $5, $8, $0, ROUTE_22_GATE
+
+	db $1 ; signs
+	db $b, $7, $3 ; Route22Text3
+
+	db $2 ; people
+	db SPRITE_BLUE, $5 + 4, $19 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BLUE, $5 + 4, $19 + 4, $ff, $ff, $2 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_22_WIDTH, $5, $8 ; ROUTE_22_GATE
--- /dev/null
+++ b/data/mapObjects/route22gate.asm
@@ -1,0 +1,19 @@
+Route22GateObject: ; 0x1e720 (size=42)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $2 + 4, $6 + 4, $ff, $d2, $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
--- /dev/null
+++ b/data/mapObjects/route23.asm
@@ -1,0 +1,26 @@
+Route23Object: ; 0x50361 (size=81)
+	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 $1 ; signs
+	db $21, $3, $8 ; Route23Text8
+
+	db $7 ; people
+	db SPRITE_GUARD, $23 + 4, $4 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GUARD, $38 + 4, $a + 4, $ff, $d0, $2 ; person
+	db SPRITE_SWIMMER, $55 + 4, $8 + 4, $ff, $d0, $3 ; person
+	db SPRITE_SWIMMER, $60 + 4, $b + 4, $ff, $d0, $4 ; person
+	db SPRITE_GUARD, $69 + 4, $c + 4, $ff, $d0, $5 ; person
+	db SPRITE_GUARD, $77 + 4, $8 + 4, $ff, $d0, $6 ; person
+	db SPRITE_GUARD, $88 + 4, $8 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/route24.asm
@@ -1,0 +1,16 @@
+Route24Object: ; 0x506a4 (size=67)
+	db $2c ; border block
+
+	db $0 ; warps
+
+	db $0 ; signs
+
+	db $8 ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $b + 4, $ff, $d2, $41, ROCKET + $C8, $6 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $5 + 4, $ff, $d1, $42, JR__TRAINER_M + $C8, $2 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $13 + 4, $b + 4, $ff, $d2, $43, JR__TRAINER_M + $C8, $3 ; trainer
+	db SPRITE_LASS, $16 + 4, $a + 4, $ff, $d3, $44, LASS + $C8, $7 ; trainer
+	db SPRITE_BUG_CATCHER, $19 + 4, $b + 4, $ff, $d2, $45, YOUNGSTER + $C8, $4 ; trainer
+	db SPRITE_LASS, $1c + 4, $a + 4, $ff, $d3, $46, LASS + $C8, $8 ; trainer
+	db SPRITE_BUG_CATCHER, $1f + 4, $b + 4, $ff, $d2, $47, BUG_CATCHER + $C8, $9 ; trainer
+	db SPRITE_BALL, $5 + 4, $a + 4, $ff, $ff, $88, TM_45 ; item
--- /dev/null
+++ b/data/mapObjects/route25.asm
@@ -1,0 +1,23 @@
+Route25Object: ; 0x507b2 (size=94)
+	db $2c ; border block
+
+	db $1 ; warps
+	db $3, $2d, $0, BILLS_HOUSE
+
+	db $1 ; signs
+	db $3, $2b, $b ; Route25Text11
+
+	db $a ; people
+	db SPRITE_BUG_CATCHER, $2 + 4, $e + 4, $ff, $d0, $41, YOUNGSTER + $C8, $5 ; trainer
+	db SPRITE_BUG_CATCHER, $5 + 4, $12 + 4, $ff, $d1, $42, YOUNGSTER + $C8, $6 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $18 + 4, $ff, $d0, $43, JR__TRAINER_M + $C8, $2 ; trainer
+	db SPRITE_LASS, $8 + 4, $12 + 4, $ff, $d3, $44, LASS + $C8, $9 ; trainer
+	db SPRITE_BUG_CATCHER, $3 + 4, $20 + 4, $ff, $d2, $45, YOUNGSTER + $C8, $7 ; trainer
+	db SPRITE_LASS, $4 + 4, $25 + 4, $ff, $d0, $46, LASS + $C8, $a ; trainer
+	db SPRITE_HIKER, $4 + 4, $8 + 4, $ff, $d3, $47, HIKER + $C8, $2 ; trainer
+	db SPRITE_HIKER, $9 + 4, $17 + 4, $ff, $d1, $48, HIKER + $C8, $3 ; trainer
+	db SPRITE_HIKER, $7 + 4, $d + 4, $ff, $d3, $49, HIKER + $C8, $4 ; trainer
+	db SPRITE_BALL, $2 + 4, $16 + 4, $ff, $ff, $8a, TM_19 ; item
+
+	; warp-to
+	EVENT_DISP ROUTE_25_WIDTH, $3, $2d ; BILLS_HOUSE
--- /dev/null
+++ b/data/mapObjects/route2gate.asm
@@ -1,0 +1,20 @@
+Route2GateObject: ; 0x5d620 (size=48)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_OAK_AIDE, $4 + 4, $1 + 4, $ff, $d2, $1 ; person
+	db SPRITE_BUG_CATCHER, $4 + 4, $5 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/route2house.asm
@@ -1,0 +1,16 @@
+Route2HouseObject: ; 0x1df07 (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $2, $ff
+	db $7, $3, $2, $ff
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_OAK_AIDE, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
+	db SPRITE_GAMEBOY_KID_COPY, $1 + 4, $4 + 4, $ff, $d0, $2 ; person
+
+	; warp-to
+	EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $2
+	EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/route3.asm
@@ -1,0 +1,18 @@
+Route3Object: ; 0x54208 (size=77)
+	db $2c ; border block
+
+	db $0 ; warps
+
+	db $1 ; signs
+	db $9, $3b, $a ; Route3Text10
+
+	db $9 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $39 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BUG_CATCHER, $6 + 4, $a + 4, $ff, $d3, $42, BUG_CATCHER + $C8, $4 ; trainer
+	db SPRITE_BUG_CATCHER, $4 + 4, $e + 4, $ff, $d0, $43, YOUNGSTER + $C8, $1 ; trainer
+	db SPRITE_LASS, $9 + 4, $10 + 4, $ff, $d2, $44, LASS + $C8, $1 ; trainer
+	db SPRITE_BUG_CATCHER, $5 + 4, $13 + 4, $ff, $d0, $45, BUG_CATCHER + $C8, $5 ; trainer
+	db SPRITE_LASS, $4 + 4, $17 + 4, $ff, $d2, $46, LASS + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $9 + 4, $16 + 4, $ff, $d2, $47, YOUNGSTER + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $6 + 4, $18 + 4, $ff, $d3, $48, BUG_CATCHER + $C8, $6 ; trainer
+	db SPRITE_LASS, $a + 4, $21 + 4, $ff, $d1, $49, LASS + $C8, $3 ; trainer
--- /dev/null
+++ b/data/mapObjects/route4.asm
@@ -1,0 +1,22 @@
+Route4Object: ; 0x543b2 (size=58)
+	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 ; signs
+	db $5, $c, $4 ; PokeCenterSignText
+	db $7, $11, $5 ; Route4Text5
+	db $7, $1b, $6 ; Route4Text6
+
+	db $3 ; people
+	db SPRITE_LASS, $8 + 4, $9 + 4, $fe, $0, $1 ; person
+	db SPRITE_LASS, $3 + 4, $3f + 4, $ff, $d3, $42, LASS + $C8, $4 ; trainer
+	db SPRITE_BALL, $3 + 4, $39 + 4, $ff, $ff, $83, TM_04 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route5.asm
@@ -1,0 +1,21 @@
+Route5Object: ; 0x545a3 (size=47)
+	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 $1 ; signs
+	db $1d, $11, $1 ; Route5Text1
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route5gate.asm
@@ -1,0 +1,19 @@
+Route5GateObject: ; 0x1dffb (size=42)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $3 + 4, $1 + 4, $ff, $d3, $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
--- /dev/null
+++ b/data/mapObjects/route6.asm
@@ -1,0 +1,19 @@
+Route6Object: ; 0x58022 (size=87)
+	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 $1 ; signs
+	db $f, $13, $7 ; Route6Text7
+
+	db $6 ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $15 + 4, $a + 4, $ff, $d3, $41, JR__TRAINER_M + $C8, $4 ; trainer
+	db SPRITE_LASS, $15 + 4, $b + 4, $ff, $d2, $42, JR__TRAINER_F + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $f + 4, $0 + 4, $ff, $d3, $43, BUG_CATCHER + $C8, $a ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $b + 4, $ff, $d2, $44, JR__TRAINER_M + $C8, $5 ; trainer
+	db SPRITE_LASS, $1e + 4, $b + 4, $ff, $d2, $45, JR__TRAINER_F + $C8, $3 ; trainer
+	db SPRITE_BUG_CATCHER, $1a + 4, $13 + 4, $ff, $d2, $46, BUG_CATCHER + $C8, $b ; trainer
--- /dev/null
+++ b/data/mapObjects/route6gate.asm
@@ -1,0 +1,19 @@
+Route6GateObject: ; 0x1e0be (size=42)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $2 + 4, $6 + 4, $ff, $d2, $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
--- /dev/null
+++ b/data/mapObjects/route7.asm
@@ -1,0 +1,21 @@
+Route7Object: ; 0x48022 (size=47)
+	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 $1 ; signs
+	db $d, $3, $1 ; Route7Text1
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route7gate.asm
@@ -1,0 +1,19 @@
+Route7GateObject: ; 0x1e185 (size=42)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $1 + 4, $3 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/route8.asm
@@ -1,0 +1,30 @@
+Route8Object: ; 0x5814f (size=119)
+	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 $1 ; signs
+	db $3, $11, $a ; Route8Text10
+
+	db $9 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $8 + 4, $ff, $d3, $41, SUPER_NERD + $C8, $3 ; trainer
+	db SPRITE_GAMBLER, $9 + 4, $d + 4, $ff, $d1, $42, GAMBLER + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $6 + 4, $2a + 4, $ff, $d1, $43, SUPER_NERD + $C8, $4 ; trainer
+	db SPRITE_LASS, $3 + 4, $1a + 4, $ff, $d2, $44, LASS + $C8, $d ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $1a + 4, $ff, $d3, $45, SUPER_NERD + $C8, $5 ; trainer
+	db SPRITE_LASS, $5 + 4, $1a + 4, $ff, $d2, $46, LASS + $C8, $e ; trainer
+	db SPRITE_LASS, $6 + 4, $1a + 4, $ff, $d3, $47, LASS + $C8, $f ; trainer
+	db SPRITE_GAMBLER, $d + 4, $2e + 4, $ff, $d0, $48, GAMBLER + $C8, $7 ; trainer
+	db SPRITE_LASS, $c + 4, $33 + 4, $ff, $d2, $49, LASS + $C8, $10 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/route8gate.asm
@@ -1,0 +1,19 @@
+Route8GateObject: ; 0x1e247 (size=42)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GUARD, $1 + 4, $2 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/route9.asm
@@ -1,0 +1,19 @@
+Route9Object: ; 0x546a8 (size=86)
+	db $2c ; border block
+
+	db $0 ; warps
+
+	db $1 ; signs
+	db $7, $19, $b ; Route9Text11
+
+	db $a ; people
+	db SPRITE_LASS, $a + 4, $d + 4, $ff, $d2, $41, JR__TRAINER_F + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $18 + 4, $ff, $d2, $42, JR__TRAINER_M + $C8, $7 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $1f + 4, $ff, $d3, $43, JR__TRAINER_M + $C8, $8 ; trainer
+	db SPRITE_LASS, $8 + 4, $30 + 4, $ff, $d3, $44, JR__TRAINER_F + $C8, $6 ; trainer
+	db SPRITE_HIKER, $f + 4, $10 + 4, $ff, $d2, $45, HIKER + $C8, $b ; trainer
+	db SPRITE_HIKER, $3 + 4, $2b + 4, $ff, $d2, $46, HIKER + $C8, $6 ; trainer
+	db SPRITE_BUG_CATCHER, $2 + 4, $16 + 4, $ff, $d0, $47, BUG_CATCHER + $C8, $d ; trainer
+	db SPRITE_HIKER, $f + 4, $2d + 4, $ff, $d3, $48, HIKER + $C8, $5 ; trainer
+	db SPRITE_BUG_CATCHER, $8 + 4, $28 + 4, $ff, $d3, $49, BUG_CATCHER + $C8, $e ; trainer
+	db SPRITE_BALL, $f + 4, $a + 4, $ff, $ff, $8a, TM_30 ; item
--- /dev/null
+++ b/data/mapObjects/safarizonecenter.asm
@@ -1,0 +1,31 @@
+SafariZoneCenterObject: ; 0x45bc5 (size=89)
+	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 $2 ; signs
+	db $14, $12, $2 ; SafariZoneCenterText2
+	db $16, $e, $3 ; SafariZoneCenterText3
+
+	db $1 ; people
+	db SPRITE_BALL, $a + 4, $e + 4, $ff, $ff, $81, NUGGET ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/safarizoneeast.asm
@@ -1,0 +1,27 @@
+SafariZoneEastObject: ; 0x4588b (size=81)
+	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 $3 ; signs
+	db $a, $1a, $5 ; SafariZoneEastText5
+	db $4, $6, $6 ; SafariZoneEastText6
+	db $17, $5, $7 ; SafariZoneEastText7
+
+	db $4 ; people
+	db SPRITE_BALL, $a + 4, $15 + 4, $ff, $ff, $81, FULL_RESTORE ; item
+	db SPRITE_BALL, $7 + 4, $3 + 4, $ff, $ff, $82, MAX_POTION ; item
+	db SPRITE_BALL, $d + 4, $14 + 4, $ff, $ff, $83, CARBOS ; item
+	db SPRITE_BALL, $c + 4, $f + 4, $ff, $ff, $84, TM_37 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/safarizoneentrance.asm
@@ -1,0 +1,20 @@
+SafariZoneEntranceObject: ; 0x753f5 (size=48)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_WHITE_PLAYER, $2 + 4, $6 + 4, $ff, $d2, $1 ; person
+	db SPRITE_WHITE_PLAYER, $4 + 4, $1 + 4, $ff, $d3, $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
--- /dev/null
+++ b/data/mapObjects/safarizonenorth.asm
@@ -1,0 +1,35 @@
+SafariZoneNorthObject: ; 0x459d5 (size=105)
+	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 $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 $2 ; people
+	db SPRITE_BALL, $1 + 4, $19 + 4, $ff, $ff, $81, PROTEIN ; item
+	db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $82, TM_40 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse1.asm
@@ -1,0 +1,16 @@
+SafariZoneRestHouse1Object: ; 0x45cfe (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $8, SAFARI_ZONE_CENTER
+	db $7, $3, $8, SAFARI_ZONE_CENTER
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_GIRL, $2 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_OAK_AIDE, $4 + 4, $1 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse2.asm
@@ -1,0 +1,17 @@
+SafariZoneRestHouse2Object: ; 0x45d43 (size=38)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $7, SAFARI_ZONE_WEST
+	db $7, $3, $7, SAFARI_ZONE_WEST
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_OAK_AIDE, $4 + 4, $4 + 4, $fe, $0, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $0 + 4, $ff, $d3, $2 ; person
+	db SPRITE_ERIKA, $2 + 4, $6 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse3.asm
@@ -1,0 +1,17 @@
+SafariZoneRestHouse3Object: ; 0x45d8e (size=38)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $4, SAFARI_ZONE_EAST
+	db $7, $3, $4, SAFARI_ZONE_EAST
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_OAK_AIDE, $3 + 4, $1 + 4, $fe, $1, $1 ; person
+	db SPRITE_ROCKER, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
+	db SPRITE_LAPRAS_GIVER, $2 + 4, $5 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse4.asm
@@ -1,0 +1,17 @@
+SafariZoneRestHouse4Object: ; 0x45dd9 (size=38)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $8, SAFARI_ZONE_NORTH
+	db $7, $3, $8, SAFARI_ZONE_NORTH
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_OAK_AIDE, $3 + 4, $6 + 4, $fe, $2, $1 ; person
+	db SPRITE_WHITE_PLAYER, $4 + 4, $3 + 4, $ff, $ff, $2 ; person
+	db SPRITE_GENTLEMAN, $5 + 4, $1 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/safarizonesecrethouse.asm
@@ -1,0 +1,15 @@
+SafariZoneSecretHouseObject: ; 0x4a365 (size=26)
+	db $17 ; border block
+
+	db $2 ; warps
+	db $7, $2, $6, SAFARI_ZONE_WEST
+	db $7, $3, $6, SAFARI_ZONE_WEST
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FISHER, $3 + 4, $3 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/safarizonewest.asm
@@ -1,0 +1,34 @@
+SafariZoneWestObject: ; 0x4a1dc (size=108)
+	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 $4 ; signs
+	db $c, $c, $5 ; SafariZoneWestText5
+	db $3, $11, $6 ; SafariZoneWestText6
+	db $4, $1a, $7 ; SafariZoneWestText7
+	db $16, $18, $8 ; SafariZoneWestText8
+
+	db $4 ; people
+	db SPRITE_BALL, $14 + 4, $8 + 4, $ff, $ff, $81, MAX_POTION ; item
+	db SPRITE_BALL, $7 + 4, $9 + 4, $ff, $ff, $82, TM_32 ; item
+	db SPRITE_BALL, $12 + 4, $12 + 4, $ff, $ff, $83, MAX_REVIVE ; item
+	db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $84, GOLD_TEETH ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/saffroncity.asm
@@ -1,0 +1,51 @@
+SaffronCityObject: ; 0x509dc (size=188)
+	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 $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 $f ; people
+	db SPRITE_ROCKET, $6 + 4, $7 + 4, $ff, $ff, $1 ; person
+	db SPRITE_ROCKET, $8 + 4, $14 + 4, $fe, $2, $2 ; person
+	db SPRITE_ROCKET, $4 + 4, $22 + 4, $ff, $ff, $3 ; person
+	db SPRITE_ROCKET, $c + 4, $d + 4, $ff, $ff, $4 ; person
+	db SPRITE_ROCKET, $19 + 4, $b + 4, $fe, $2, $5 ; person
+	db SPRITE_ROCKET, $d + 4, $20 + 4, $fe, $2, $6 ; person
+	db SPRITE_ROCKET, $1e + 4, $12 + 4, $fe, $2, $7 ; person
+	db SPRITE_OAK_AIDE, $e + 4, $8 + 4, $fe, $0, $8 ; person
+	db SPRITE_LAPRAS_GIVER, $17 + 4, $17 + 4, $ff, $ff, $9 ; person
+	db SPRITE_ERIKA, $1e + 4, $11 + 4, $fe, $2, $a ; person
+	db SPRITE_GENTLEMAN, $c + 4, $1e + 4, $ff, $d0, $b ; person
+	db SPRITE_BIRD, $c + 4, $1f + 4, $ff, $d0, $c ; person
+	db SPRITE_ROCKER, $8 + 4, $12 + 4, $ff, $d1, $d ; person
+	db SPRITE_ROCKET, $16 + 4, $12 + 4, $ff, $d0, $e ; person
+	db SPRITE_ROCKET, $16 + 4, $13 + 4, $ff, $d0, $f ; 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
--- /dev/null
+++ b/data/mapObjects/saffrongym.asm
@@ -1,0 +1,83 @@
+SaffronGymObject: ; 0x5d259 (size=330)
+	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 $0 ; signs
+
+	db $9 ; people
+	db SPRITE_GIRL, $8 + 4, $9 + 4, $ff, $d0, $41, SABRINA + $C8, $1 ; trainer
+	db SPRITE_MEDIUM, $1 + 4, $a + 4, $ff, $d0, $42, CHANNELER + $C8, $16 ; trainer
+	db SPRITE_BUG_CATCHER, $1 + 4, $11 + 4, $ff, $d0, $43, PSYCHIC_TR + $C8, $1 ; trainer
+	db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d0, $44, CHANNELER + $C8, $17 ; trainer
+	db SPRITE_BUG_CATCHER, $7 + 4, $11 + 4, $ff, $d0, $45, PSYCHIC_TR + $C8, $2 ; trainer
+	db SPRITE_MEDIUM, $d + 4, $3 + 4, $ff, $d0, $46, CHANNELER + $C8, $18 ; trainer
+	db SPRITE_BUG_CATCHER, $d + 4, $11 + 4, $ff, $d0, $47, PSYCHIC_TR + $C8, $3 ; trainer
+	db SPRITE_BUG_CATCHER, $1 + 4, $3 + 4, $ff, $d0, $48, PSYCHIC_TR + $C8, $4 ; trainer
+	db SPRITE_GYM_HELPER, $f + 4, $a + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/saffronhouse1.asm
@@ -1,0 +1,18 @@
+SaffronHouse1Object: ; 0x1de04 (size=44)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $3, $ff
+	db $7, $3, $3, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_BRUNETTE_GIRL, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BIRD, $4 + 4, $0 + 4, $fe, $1, $2 ; person
+	db SPRITE_BUG_CATCHER, $1 + 4, $4 + 4, $ff, $d0, $3 ; person
+	db SPRITE_PAPER_SHEET, $3 + 4, $3 + 4, $ff, $ff, $4 ; person
+
+	; warp-to
+	EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $2
+	EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/saffronhouse2.asm
@@ -1,0 +1,15 @@
+SaffronHouse2Object: ; 0x1de8a (size=26)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $7, $ff
+	db $7, $3, $7, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FISHER, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
+
+	; warp-to
+	EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $2
+	EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/saffronmart.asm
@@ -1,0 +1,17 @@
+SaffronMartObject: ; 0x5d41c (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $4, $ff
+	db $7, $4, $4, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
+	db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $0, $3 ; person
+
+	; warp-to
+	EVENT_DISP SAFFRON_MART_WIDTH, $7, $3
+	EVENT_DISP SAFFRON_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/saffronpokecenter.asm
@@ -1,0 +1,18 @@
+SaffronPokecenterObject: ; 0x5d54f (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $6, $ff
+	db $7, $4, $6, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_FOULARD_WOMAN, $5 + 4, $5 + 4, $ff, $ff, $2 ; person
+	db SPRITE_GENTLEMAN, $3 + 4, $8 + 4, $ff, $d0, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/school.asm
@@ -1,0 +1,16 @@
+SchoolObject: ; 0x1d55d (size=32)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $2, $ff
+	db $7, $3, $2, $ff
+
+	db $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BRUNETTE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
+	db SPRITE_LASS, $1 + 4, $4 + 4, $ff, $d0, $2 ; person
+
+	; warp-to
+	EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $2
+	EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/seafoamislands1.asm
@@ -1,0 +1,30 @@
+SeafoamIslands1Object: ; 0x4484f (size=72)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BOULDER, $a + 4, $12 + 4, $ff, $10, $1 ; person
+	db SPRITE_BOULDER, $7 + 4, $1a + 4, $ff, $10, $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
+
+	; holes
+	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $6, $11
+	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $6, $18
--- /dev/null
+++ b/data/mapObjects/seafoamislands2.asm
@@ -1,0 +1,26 @@
+SeafoamIslands2Object: ; 0x46376 (size=72)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BOULDER, $6 + 4, $11 + 4, $ff, $10, $1 ; person
+	db SPRITE_BOULDER, $6 + 4, $16 + 4, $ff, $10, $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
--- /dev/null
+++ b/data/mapObjects/seafoamislands3.asm
@@ -1,0 +1,26 @@
+SeafoamIslands3Object: ; 0x464b2 (size=72)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BOULDER, $6 + 4, $12 + 4, $ff, $10, $1 ; person
+	db SPRITE_BOULDER, $6 + 4, $17 + 4, $ff, $10, $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
--- /dev/null
+++ b/data/mapObjects/seafoamislands4.asm
@@ -1,0 +1,30 @@
+SeafoamIslands4Object: ; 0x466a6 (size=96)
+	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 $0 ; signs
+
+	db $6 ; people
+	db SPRITE_BOULDER, $e + 4, $5 + 4, $ff, $10, $1 ; person
+	db SPRITE_BOULDER, $f + 4, $3 + 4, $ff, $10, $2 ; person
+	db SPRITE_BOULDER, $e + 4, $8 + 4, $ff, $10, $3 ; person
+	db SPRITE_BOULDER, $e + 4, $9 + 4, $ff, $10, $4 ; person
+	db SPRITE_BOULDER, $6 + 4, $12 + 4, $ff, $ff, $5 ; person
+	db SPRITE_BOULDER, $6 + 4, $13 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/seafoamislands5.asm
@@ -1,0 +1,23 @@
+SeafoamIslands5Object: ; 0x468bc (size=62)
+	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 $2 ; signs
+	db $f, $9, $4 ; SeafoamIslands5Text4
+	db $1, $17, $5 ; SeafoamIslands5Text5
+
+	db $3 ; people
+	db SPRITE_BOULDER, $f + 4, $4 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BIRD, $1 + 4, $6 + 4, $ff, $d0, $43, ARTICUNO, 50 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco1.asm
@@ -1,0 +1,21 @@
+SilphCo1Object: ; 0x5d470 (size=50)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $4 + 4, $ff, $d0, $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
--- /dev/null
+++ b/data/mapObjects/silphco10.asm
@@ -1,0 +1,28 @@
+SilphCo10Object: ; 0x5a1fb (size=95)
+	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 $0 ; signs
+
+	db $6 ; people
+	db SPRITE_ROCKET, $9 + 4, $1 + 4, $ff, $d3, $41, ROCKET + $C8, $27 ; trainer
+	db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d2, $42, SCIENTIST + $C8, $b ; trainer
+	db SPRITE_ERIKA, $f + 4, $9 + 4, $fe, $0, $3 ; person
+	db SPRITE_BALL, $c + 4, $2 + 4, $ff, $ff, $84, TM_26 ; item
+	db SPRITE_BALL, $e + 4, $4 + 4, $ff, $ff, $85, RARE_CANDY ; item
+	db SPRITE_BALL, $b + 4, $5 + 4, $ff, $ff, $86, CARBOS ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco11.asm
@@ -1,0 +1,23 @@
+SilphCo11Object: ; 0x62380 (size=72)
+	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 $0 ; signs
+
+	db $5 ; people
+	db SPRITE_MR_MASTERBALL, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
+	db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $ff, $d0, $2 ; person
+	db SPRITE_GIOVANNI, $9 + 4, $6 + 4, $ff, $d0, $43, GIOVANNI + $C8, $2 ; trainer
+	db SPRITE_ROCKET, $10 + 4, $3 + 4, $ff, $d1, $44, ROCKET + $C8, $29 ; trainer
+	db SPRITE_ROCKET, $9 + 4, $f + 4, $ff, $d1, $45, ROCKET + $C8, $28 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco2.asm
@@ -1,0 +1,29 @@
+SilphCo2Object: ; 0x59e66 (size=98)
+	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 $0 ; signs
+
+	db $5 ; people
+	db SPRITE_ERIKA, $1 + 4, $a + 4, $ff, $d1, $1 ; person
+	db SPRITE_OAK_AIDE, $c + 4, $5 + 4, $ff, $d0, $42, SCIENTIST + $C8, $2 ; trainer
+	db SPRITE_OAK_AIDE, $d + 4, $18 + 4, $ff, $d2, $43, SCIENTIST + $C8, $3 ; trainer
+	db SPRITE_ROCKET, $b + 4, $10 + 4, $ff, $d1, $44, ROCKET + $C8, $17 ; trainer
+	db SPRITE_ROCKET, $7 + 4, $18 + 4, $ff, $d1, $45, ROCKET + $C8, $18 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco3.asm
@@ -1,0 +1,34 @@
+SilphCo3Object: ; 0x5a035 (size=113)
+	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 $0 ; signs
+
+	db $4 ; people
+	db SPRITE_LAPRAS_GIVER, $8 + 4, $18 + 4, $ff, $ff, $1 ; person
+	db SPRITE_ROCKET, $7 + 4, $14 + 4, $ff, $d2, $42, ROCKET + $C8, $19 ; trainer
+	db SPRITE_OAK_AIDE, $9 + 4, $7 + 4, $ff, $d0, $43, SCIENTIST + $C8, $4 ; trainer
+	db SPRITE_BALL, $5 + 4, $8 + 4, $ff, $ff, $84, HYPER_POTION ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco4.asm
@@ -1,0 +1,31 @@
+SilphCo4Object: ; 0x19e35 (size=111)
+	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 $0 ; signs
+
+	db $7 ; people
+	db SPRITE_LAPRAS_GIVER, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
+	db SPRITE_ROCKET, $e + 4, $9 + 4, $ff, $d3, $42, ROCKET + $C8, $1a ; trainer
+	db SPRITE_OAK_AIDE, $6 + 4, $e + 4, $ff, $d2, $43, SCIENTIST + $C8, $5 ; trainer
+	db SPRITE_ROCKET, $a + 4, $1a + 4, $ff, $d1, $44, ROCKET + $C8, $1b ; trainer
+	db SPRITE_BALL, $9 + 4, $3 + 4, $ff, $ff, $85, FULL_HEAL ; item
+	db SPRITE_BALL, $7 + 4, $4 + 4, $ff, $ff, $86, MAX_REVIVE ; item
+	db SPRITE_BALL, $8 + 4, $5 + 4, $ff, $ff, $87, ESCAPE_ROPE ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco5.asm
@@ -1,0 +1,35 @@
+SilphCo5Object: ; 0x1a08d (size=137)
+	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 $0 ; signs
+
+	db $b ; people
+	db SPRITE_LAPRAS_GIVER, $9 + 4, $d + 4, $ff, $ff, $1 ; person
+	db SPRITE_ROCKET, $10 + 4, $8 + 4, $ff, $d3, $42, ROCKET + $C8, $1c ; trainer
+	db SPRITE_OAK_AIDE, $3 + 4, $8 + 4, $ff, $d3, $43, SCIENTIST + $C8, $6 ; trainer
+	db SPRITE_ROCKER, $a + 4, $12 + 4, $ff, $d1, $44, JUGGLER + $C8, $1 ; trainer
+	db SPRITE_ROCKET, $4 + 4, $1c + 4, $ff, $d1, $45, ROCKET + $C8, $1d ; trainer
+	db SPRITE_BALL, $d + 4, $2 + 4, $ff, $ff, $86, TM_09 ; item
+	db SPRITE_BALL, $6 + 4, $4 + 4, $ff, $ff, $87, PROTEIN ; item
+	db SPRITE_BALL, $10 + 4, $15 + 4, $ff, $ff, $88, CARD_KEY ; item
+	db SPRITE_CLIPBOARD, $c + 4, $16 + 4, $ff, $ff, $9 ; person
+	db SPRITE_CLIPBOARD, $a + 4, $19 + 4, $ff, $ff, $a ; person
+	db SPRITE_CLIPBOARD, $6 + 4, $18 + 4, $ff, $ff, $b ; 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
--- /dev/null
+++ b/data/mapObjects/silphco6.asm
@@ -1,0 +1,30 @@
+SilphCo6Object: ; 0x1a2fb (size=112)
+	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 $0 ; signs
+
+	db $a ; people
+	db SPRITE_LAPRAS_GIVER, $6 + 4, $a + 4, $ff, $ff, $1 ; person
+	db SPRITE_LAPRAS_GIVER, $6 + 4, $14 + 4, $ff, $ff, $2 ; person
+	db SPRITE_ERIKA, $6 + 4, $15 + 4, $ff, $d0, $3 ; person
+	db SPRITE_ERIKA, $a + 4, $b + 4, $ff, $d3, $4 ; person
+	db SPRITE_LAPRAS_GIVER, $d + 4, $12 + 4, $ff, $d1, $5 ; person
+	db SPRITE_ROCKET, $3 + 4, $11 + 4, $ff, $d3, $46, ROCKET + $C8, $1e ; trainer
+	db SPRITE_OAK_AIDE, $8 + 4, $7 + 4, $ff, $d0, $47, SCIENTIST + $C8, $7 ; trainer
+	db SPRITE_ROCKET, $f + 4, $e + 4, $ff, $d2, $48, ROCKET + $C8, $1f ; trainer
+	db SPRITE_BALL, $c + 4, $3 + 4, $ff, $ff, $89, HP_UP ; item
+	db SPRITE_BALL, $f + 4, $2 + 4, $ff, $ff, $8a, X_ACCURACY ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco7.asm
@@ -1,0 +1,33 @@
+SilphCo7Object: ; 0x51ed7 (size=128)
+	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 $0 ; signs
+
+	db $b ; people
+	db SPRITE_LAPRAS_GIVER, $5 + 4, $1 + 4, $ff, $ff, $1 ; person
+	db SPRITE_LAPRAS_GIVER, $d + 4, $d + 4, $ff, $d1, $2 ; person
+	db SPRITE_LAPRAS_GIVER, $a + 4, $7 + 4, $ff, $ff, $3 ; person
+	db SPRITE_ERIKA, $8 + 4, $a + 4, $ff, $ff, $4 ; person
+	db SPRITE_ROCKET, $1 + 4, $d + 4, $ff, $d0, $45, ROCKET + $C8, $20 ; trainer
+	db SPRITE_OAK_AIDE, $d + 4, $2 + 4, $ff, $d0, $46, SCIENTIST + $C8, $8 ; trainer
+	db SPRITE_ROCKET, $2 + 4, $14 + 4, $ff, $d2, $47, ROCKET + $C8, $21 ; trainer
+	db SPRITE_ROCKET, $e + 4, $13 + 4, $ff, $d3, $48, ROCKET + $C8, $22 ; trainer
+	db SPRITE_BLUE, $7 + 4, $3 + 4, $ff, $d1, $9 ; person
+	db SPRITE_BALL, $9 + 4, $1 + 4, $ff, $ff, $8a, CALCIUM ; item
+	db SPRITE_BALL, $b + 4, $18 + 4, $ff, $ff, $8b, TM_03 ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco8.asm
@@ -1,0 +1,28 @@
+SilphCo8Object: ; 0x56613 (size=90)
+	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 $0 ; signs
+
+	db $4 ; people
+	db SPRITE_LAPRAS_GIVER, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
+	db SPRITE_ROCKET, $2 + 4, $13 + 4, $ff, $d2, $42, ROCKET + $C8, $23 ; trainer
+	db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d0, $43, SCIENTIST + $C8, $9 ; trainer
+	db SPRITE_ROCKET, $f + 4, $c + 4, $ff, $d3, $44, ROCKET + $C8, $24 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphco9.asm
@@ -1,0 +1,24 @@
+SilphCo9Object: ; 0x5d93f (size=74)
+	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 $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $e + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_ROCKET, $4 + 4, $2 + 4, $ff, $d1, $42, ROCKET + $C8, $25 ; trainer
+	db SPRITE_OAK_AIDE, $d + 4, $15 + 4, $ff, $d0, $43, SCIENTIST + $C8, $a ; trainer
+	db SPRITE_ROCKET, $10 + 4, $d + 4, $ff, $d1, $44, ROCKET + $C8, $26 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/silphcoelevator.asm
@@ -1,0 +1,15 @@
+SilphCoElevatorObject: ; 0x45844 (size=23)
+	db $f ; border block
+
+	db $2 ; warps
+	db $3, $1, $0, $ed
+	db $3, $2, $0, $ed
+
+	db $1 ; signs
+	db $0, $3, $1 ; SilphCoElevatorText1
+
+	db $0 ; people
+
+	; warp-to
+	EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $1
+	EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $2
--- /dev/null
+++ b/data/mapObjects/ssanne1.asm
@@ -1,0 +1,34 @@
+SSAnne1Object: ; 0x61277 (size=104)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_WAITER, $6 + 4, $c + 4, $fe, $2, $1 ; person
+	db SPRITE_SAILOR, $5 + 4, $1b + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/ssanne10.asm
@@ -1,0 +1,41 @@
+SSAnne10Object: ; 0x61e75 (size=165)
+	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 $0 ; signs
+
+	db $b ; people
+	db SPRITE_SAILOR, $d + 4, $0 + 4, $ff, $d0, $41, SAILOR + $C8, $3 ; trainer
+	db SPRITE_SAILOR, $b + 4, $2 + 4, $ff, $d0, $42, SAILOR + $C8, $4 ; trainer
+	db SPRITE_SAILOR, $3 + 4, $c + 4, $ff, $d2, $43, SAILOR + $C8, $5 ; trainer
+	db SPRITE_SAILOR, $2 + 4, $16 + 4, $ff, $d0, $44, SAILOR + $C8, $6 ; trainer
+	db SPRITE_SAILOR, $2 + 4, $0 + 4, $ff, $d3, $45, SAILOR + $C8, $7 ; trainer
+	db SPRITE_FISHER2, $4 + 4, $0 + 4, $ff, $d3, $46, FISHER + $C8, $2 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $a + 4, $ff, $d3, $7 ; person
+	db SPRITE_SLOWBRO, $c + 4, $b + 4, $ff, $ff, $8 ; person
+	db SPRITE_BALL, $2 + 4, $14 + 4, $ff, $ff, $89, ETHER ; item
+	db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $8a, TM_44 ; item
+	db SPRITE_BALL, $b + 4, $c + 4, $ff, $ff, $8b, MAX_POTION ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/ssanne2.asm
@@ -1,0 +1,30 @@
+SSAnne2Object: ; 0x61514 (size=90)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_WAITER, $7 + 4, $3 + 4, $fe, $1, $1 ; person
+	db SPRITE_BLUE, $4 + 4, $24 + 4, $ff, $d0, $42, SONY1 + $C8, $1 ; trainer
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/ssanne3.asm
@@ -1,0 +1,15 @@
+SSAnne3Object: ; 0x4493c (size=26)
+	db $c ; border block
+
+	db $2 ; warps
+	db $3, $0, $0, SS_ANNE_5
+	db $3, $13, $7, SS_ANNE_2
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_SAILOR, $3 + 4, $9 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/ssanne4.asm
@@ -1,0 +1,22 @@
+SSAnne4Object: ; 0x61632 (size=52)
+	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 $0 ; signs
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/ssanne5.asm
@@ -1,0 +1,19 @@
+SSAnne5Object: ; 0x6172b (size=54)
+	db $23 ; border block
+
+	db $2 ; warps
+	db $6, $d, $0, SS_ANNE_3
+	db $7, $d, $0, SS_ANNE_3
+
+	db $0 ; signs
+
+	db $5 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $5 + 4, $ff, $d1, $1 ; person
+	db SPRITE_SAILOR, $9 + 4, $4 + 4, $ff, $ff, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $7 + 4, $ff, $ff, $3 ; person
+	db SPRITE_SAILOR, $4 + 4, $4 + 4, $ff, $d0, $44, SAILOR + $C8, $1 ; trainer
+	db SPRITE_SAILOR, $8 + 4, $a + 4, $ff, $d1, $45, SAILOR + $C8, $2 ; trainer
+
+	; warp-to
+	EVENT_DISP SS_ANNE_5_WIDTH, $6, $d ; SS_ANNE_3
+	EVENT_DISP SS_ANNE_5_WIDTH, $7, $d ; SS_ANNE_3
--- /dev/null
+++ b/data/mapObjects/ssanne6.asm
@@ -1,0 +1,19 @@
+SSAnne6Object: ; 0x6181b (size=54)
+	db $c ; border block
+
+	db $1 ; warps
+	db $0, $6, $a, SS_ANNE_1
+
+	db $0 ; signs
+
+	db $7 ; people
+	db SPRITE_COOK, $8 + 4, $1 + 4, $fe, $1, $1 ; person
+	db SPRITE_COOK, $8 + 4, $5 + 4, $fe, $1, $2 ; person
+	db SPRITE_COOK, $7 + 4, $9 + 4, $fe, $1, $3 ; person
+	db SPRITE_COOK, $6 + 4, $d + 4, $ff, $ff, $4 ; person
+	db SPRITE_COOK, $8 + 4, $d + 4, $ff, $ff, $5 ; person
+	db SPRITE_COOK, $a + 4, $d + 4, $ff, $ff, $6 ; person
+	db SPRITE_COOK, $d + 4, $b + 4, $ff, $d1, $7 ; person
+
+	; warp-to
+	EVENT_DISP SS_ANNE_6_WIDTH, $0, $6 ; SS_ANNE_1
--- /dev/null
+++ b/data/mapObjects/ssanne7.asm
@@ -1,0 +1,15 @@
+SSAnne7Object: ; 0x61946 (size=24)
+	db $c ; border block
+
+	db $1 ; warps
+	db $7, $0, $8, SS_ANNE_2
+
+	db $2 ; signs
+	db $1, $4, $2 ; SSAnne7Text2
+	db $2, $1, $3 ; SSAnne7Text3
+
+	db $1 ; people
+	db SPRITE_SS_CAPTAIN, $2 + 4, $4 + 4, $ff, $d1, $1 ; person
+
+	; warp-to
+	EVENT_DISP SS_ANNE_7_WIDTH, $7, $0 ; SS_ANNE_2
--- /dev/null
+++ b/data/mapObjects/ssanne8.asm
@@ -1,0 +1,33 @@
+SSAnne8Object: ; 0x61a60 (size=127)
+	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 $0 ; signs
+
+	db $b ; people
+	db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d2, $41, GENTLEMAN + $C8, $1 ; trainer
+	db SPRITE_GENTLEMAN, $4 + 4, $b + 4, $ff, $d1, $42, GENTLEMAN + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $e + 4, $b + 4, $ff, $d1, $43, YOUNGSTER + $C8, $8 ; trainer
+	db SPRITE_LASS, $b + 4, $d + 4, $ff, $d2, $44, LASS + $C8, $b ; trainer
+	db SPRITE_GIRL, $3 + 4, $16 + 4, $fe, $1, $5 ; person
+	db SPRITE_FAT_BALD_GUY, $e + 4, $0 + 4, $ff, $ff, $6 ; person
+	db SPRITE_LITTLE_GIRL, $b + 4, $2 + 4, $ff, $d0, $7 ; person
+	db SPRITE_CLEFAIRY, $b + 4, $3 + 4, $ff, $d0, $8 ; person
+	db SPRITE_GIRL, $d + 4, $a + 4, $ff, $d3, $9 ; person
+	db SPRITE_BALL, $f + 4, $c + 4, $ff, $ff, $8a, TM_08 ; item
+	db SPRITE_GENTLEMAN, $d + 4, $15 + 4, $fe, $2, $b ; 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
--- /dev/null
+++ b/data/mapObjects/ssanne9.asm
@@ -1,0 +1,47 @@
+SSAnne9Object: ; 0x61c8d (size=188)
+	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 $0 ; signs
+
+	db $d ; people
+	db SPRITE_GENTLEMAN, $2 + 4, $a + 4, $ff, $d3, $41, GENTLEMAN + $C8, $3 ; trainer
+	db SPRITE_FISHER2, $4 + 4, $d + 4, $ff, $d2, $42, FISHER + $C8, $1 ; trainer
+	db SPRITE_GENTLEMAN, $e + 4, $0 + 4, $ff, $d3, $43, GENTLEMAN + $C8, $5 ; trainer
+	db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d0, $44, LASS + $C8, $c ; trainer
+	db SPRITE_GENTLEMAN, $2 + 4, $1 + 4, $ff, $d0, $5 ; person
+	db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $86, MAX_ETHER ; item
+	db SPRITE_GENTLEMAN, $2 + 4, $15 + 4, $ff, $d0, $7 ; person
+	db SPRITE_OLD_PERSON, $1 + 4, $16 + 4, $ff, $d0, $8 ; person
+	db SPRITE_BALL, $c + 4, $0 + 4, $ff, $ff, $89, RARE_CANDY ; item
+	db SPRITE_GENTLEMAN, $c + 4, $c + 4, $ff, $d0, $a ; person
+	db SPRITE_YOUNG_BOY, $e + 4, $b + 4, $ff, $ff, $b ; person
+	db SPRITE_BRUNETTE_GIRL, $c + 4, $16 + 4, $ff, $d2, $c ; person
+	db SPRITE_FOULARD_WOMAN, $c + 4, $14 + 4, $ff, $d3, $d ; 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
--- /dev/null
+++ b/data/mapObjects/tradecenterm.asm
@@ -1,0 +1,9 @@
+TradeCenterMObject: ; 0x4fd87 (size=10)
+	db $e ; border block
+
+	db $0 ; warps
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute5.asm
@@ -1,0 +1,17 @@
+UndergroundPathEntranceRoute5Object: ; 0x5d6c1 (size=34)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_LITTLE_GIRL, $3 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute6.asm
@@ -1,0 +1,17 @@
+UndergroundPathEntranceRoute6Object: ; 0x5d6fe (size=34)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GIRL, $3 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute7.asm
@@ -1,0 +1,17 @@
+UndergroundPathEntranceRoute7Object: ; 0x5d73b (size=34)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FAT_BALD_GUY, $4 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute7copy.asm
@@ -1,0 +1,18 @@
+UndergroundPathEntranceRoute7CopyObject: ; 5d787 (17:5787)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_GIRL, $2 + 4, $3 + 4, $ff, $ff, $1 ; person
+	db SPRITE_FAT_BALD_GUY, $4 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute8.asm
@@ -1,0 +1,17 @@
+UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
+	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 $0 ; signs
+
+	db $1 ; people
+	db SPRITE_GIRL, $4 + 4, $3 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/undergroundpathns.asm
@@ -1,0 +1,14 @@
+UndergroundPathNSObject: ; 0x61f2a (size=20)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $4, $5, $2, PATH_ENTRANCE_ROUTE_5
+	db $29, $2, $2, PATH_ENTRANCE_ROUTE_6
+
+	db $0 ; signs
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/undergroundpathwe.asm
@@ -1,0 +1,14 @@
+UndergroundPathWEObject: ; 0x61f4e (size=20)
+	db $1 ; border block
+
+	db $2 ; warps
+	db $5, $2, $2, PATH_ENTRANCE_ROUTE_7
+	db $2, $2f, $2, PATH_ENTRANCE_ROUTE_8
+
+	db $0 ; signs
+
+	db $0 ; people
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/unknowndungeon1.asm
@@ -1,0 +1,31 @@
+UnknownDungeon1Object: ; 0x74d15 (size=97)
+	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 $0 ; signs
+
+	db $3 ; people
+	db SPRITE_BALL, $d + 4, $7 + 4, $ff, $ff, $81, FULL_RESTORE ; item
+	db SPRITE_BALL, $3 + 4, $13 + 4, $ff, $ff, $82, MAX_ELIXER ; item
+	db SPRITE_BALL, $0 + 4, $5 + 4, $ff, $ff, $83, NUGGET ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/unknowndungeon2.asm
@@ -1,0 +1,25 @@
+UnknownDungeon2Object: ; 0x45e14 (size=73)
+	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 $0 ; signs
+
+	db $3 ; people
+	db SPRITE_BALL, $9 + 4, $1d + 4, $ff, $ff, $81, PP_UP ; item
+	db SPRITE_BALL, $f + 4, $4 + 4, $ff, $ff, $82, ULTRA_BALL ; item
+	db SPRITE_BALL, $6 + 4, $d + 4, $ff, $ff, $83, FULL_RESTORE ; item
+
+	; 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
--- /dev/null
+++ b/data/mapObjects/unknowndungeon3.asm
@@ -1,0 +1,15 @@
+UnknownDungeon3Object: ; 0x45f36 (size=34)
+	db $7d ; border block
+
+	db $1 ; warps
+	db $6, $3, $8, UNKNOWN_DUNGEON_1
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_SLOWBRO, $d + 4, $1b + 4, $ff, $d0, $41, MEWTWO, 70 ; trainer
+	db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $82, ULTRA_BALL ; item
+	db SPRITE_BALL, $1 + 4, $12 + 4, $ff, $ff, $83, MAX_REVIVE ; item
+
+	; warp-to
+	EVENT_DISP UNKNOWN_DUNGEON_3_WIDTH, $6, $3 ; UNKNOWN_DUNGEON_1
--- /dev/null
+++ b/data/mapObjects/vermilioncity.asm
@@ -1,0 +1,41 @@
+VermilionCityObject: ; 0x189ba (size=133)
+	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 $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 $6 ; people
+	db SPRITE_FOULARD_WOMAN, $7 + 4, $13 + 4, $fe, $2, $1 ; person
+	db SPRITE_GAMBLER, $6 + 4, $e + 4, $ff, $ff, $2 ; person
+	db SPRITE_SAILOR, $1e + 4, $13 + 4, $ff, $d1, $3 ; person
+	db SPRITE_GAMBLER, $7 + 4, $1e + 4, $ff, $ff, $4 ; person
+	db SPRITE_SLOWBRO, $9 + 4, $1d + 4, $fe, $1, $5 ; person
+	db SPRITE_SAILOR, $1b + 4, $19 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/vermiliondock.asm
@@ -1,0 +1,14 @@
+VermilionDockObject: ; 0x1dcc6 (size=20)
+	db $f ; border block
+
+	db $2 ; warps
+	db $0, $e, $5, $ff
+	db $2, $e, $1, SS_ANNE_1
+
+	db $0 ; signs
+
+	db $0 ; people
+
+	; warp-to
+	EVENT_DISP VERMILION_DOCK_WIDTH, $0, $e
+	EVENT_DISP VERMILION_DOCK_WIDTH, $2, $e ; SS_ANNE_1
--- /dev/null
+++ b/data/mapObjects/vermiliongym.asm
@@ -1,0 +1,19 @@
+VermilionGymObject: ; 0x5cbfe (size=58)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $11, $4, $3, $ff
+	db $11, $5, $3, $ff
+
+	db $0 ; signs
+
+	db $5 ; people
+	db SPRITE_ROCKER, $1 + 4, $5 + 4, $ff, $d0, $41, LT__SURGE + $C8, $1 ; trainer
+	db SPRITE_GENTLEMAN, $6 + 4, $9 + 4, $ff, $d2, $42, GENTLEMAN + $C8, $3 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d2, $43, ROCKER + $C8, $1 ; trainer
+	db SPRITE_SAILOR, $a + 4, $0 + 4, $ff, $d3, $44, SAILOR + $C8, $8 ; trainer
+	db SPRITE_GYM_HELPER, $e + 4, $4 + 4, $ff, $d0, $5 ; person
+
+	; warp-to
+	EVENT_DISP VERMILION_GYM_WIDTH, $11, $4
+	EVENT_DISP VERMILION_GYM_WIDTH, $11, $5
--- /dev/null
+++ b/data/mapObjects/vermilionhouse1.asm
@@ -1,0 +1,17 @@
+VermilionHouse1Object: ; 0x1db20 (size=38)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $4, $ff
+	db $7, $3, $4, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_BUG_CATCHER, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
+	db SPRITE_BIRD, $5 + 4, $3 + 4, $fe, $2, $2 ; person
+	db SPRITE_PAPER_SHEET, $3 + 4, $4 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $2
+	EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/vermilionhouse2.asm
@@ -1,0 +1,15 @@
+VermilionHouse2Object: ; 0x560cf (size=26)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $8, $ff
+	db $7, $3, $8, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_FISHER, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
+
+	; warp-to
+	EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $2
+	EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/vermilionhouse3.asm
@@ -1,0 +1,15 @@
+VermilionHouse3Object: ; 0x19c25 (size=26)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $7, $ff
+	db $7, $3, $7, $ff
+
+	db $0 ; signs
+
+	db $1 ; people
+	db SPRITE_LITTLE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
+
+	; warp-to
+	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $2
+	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/vermilionmart.asm
@@ -1,0 +1,17 @@
+VermilionMartObject: ; 0x5c9f4 (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $2, $ff
+	db $7, $4, $2, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $5 + 4, $ff, $ff, $2 ; person
+	db SPRITE_LASS, $3 + 4, $3 + 4, $fe, $2, $3 ; person
+
+	; warp-to
+	EVENT_DISP VERMILION_MART_WIDTH, $7, $3
+	EVENT_DISP VERMILION_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/vermilionpokecenter.asm
@@ -1,0 +1,18 @@
+VermilionPokecenterObject: ; 0x5c9a9 (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $0, $ff
+	db $7, $4, $0, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_FISHER, $5 + 4, $a + 4, $ff, $ff, $2 ; person
+	db SPRITE_SAILOR, $4 + 4, $5 + 4, $ff, $ff, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/victoryroad1.asm
@@ -1,0 +1,23 @@
+VictoryRoad1Object: ; 0x5dab8 (size=76)
+	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 $0 ; signs
+
+	db $7 ; people
+	db SPRITE_LASS, $5 + 4, $7 + 4, $ff, $d3, $41, COOLTRAINER_F + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $3 + 4, $ff, $d0, $42, COOLTRAINER_M + $C8, $5 ; trainer
+	db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $83, TM_43 ; item
+	db SPRITE_BALL, $2 + 4, $9 + 4, $ff, $ff, $84, RARE_CANDY ; item
+	db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $10, $5 ; person
+	db SPRITE_BOULDER, $2 + 4, $e + 4, $ff, $10, $6 ; person
+	db SPRITE_BOULDER, $a + 4, $2 + 4, $ff, $10, $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
--- /dev/null
+++ b/data/mapObjects/victoryroad2.asm
@@ -1,0 +1,37 @@
+VictoryRoad2Object: ; 0x51915 (size=154)
+	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 $0 ; signs
+
+	db $d ; people
+	db SPRITE_HIKER, $9 + 4, $c + 4, $ff, $d2, $41, BLACKBELT + $C8, $9 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $15 + 4, $ff, $d2, $42, JUGGLER + $C8, $2 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $8 + 4, $13 + 4, $ff, $d0, $43, TAMER + $C8, $5 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $d0, $44, POKEMANIAC + $C8, $6 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_2, $3 + 4, $1a + 4, $ff, $d2, $45, JUGGLER + $C8, $5 ; trainer
+	db SPRITE_BIRD, $5 + 4, $b + 4, $ff, $d1, $46, MOLTRES, 50 ; trainer
+	db SPRITE_BALL, $5 + 4, $1b + 4, $ff, $ff, $87, TM_17 ; item
+	db SPRITE_BALL, $9 + 4, $12 + 4, $ff, $ff, $88, FULL_HEAL ; item
+	db SPRITE_BALL, $b + 4, $9 + 4, $ff, $ff, $89, TM_05 ; item
+	db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $8a, GUARD_SPEC_ ; item
+	db SPRITE_BOULDER, $e + 4, $4 + 4, $ff, $10, $b ; person
+	db SPRITE_BOULDER, $5 + 4, $5 + 4, $ff, $10, $c ; person
+	db SPRITE_BOULDER, $10 + 4, $17 + 4, $ff, $10, $d ; 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
--- /dev/null
+++ b/data/mapObjects/victoryroad3.asm
@@ -1,0 +1,28 @@
+VictoryRoad3Object: ; 0x44acd (size=106)
+	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 $0 ; signs
+
+	db $a ; people
+	db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $1c + 4, $ff, $d2, $41, COOLTRAINER_M + $C8, $2 ; trainer
+	db SPRITE_LASS, $d + 4, $7 + 4, $ff, $d3, $42, COOLTRAINER_F + $C8, $2 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $e + 4, $6 + 4, $ff, $d2, $43, COOLTRAINER_M + $C8, $3 ; trainer
+	db SPRITE_LASS, $3 + 4, $d + 4, $ff, $d3, $44, COOLTRAINER_F + $C8, $3 ; trainer
+	db SPRITE_BALL, $5 + 4, $1a + 4, $ff, $ff, $85, MAX_REVIVE ; item
+	db SPRITE_BALL, $7 + 4, $7 + 4, $ff, $ff, $86, TM_47 ; item
+	db SPRITE_BOULDER, $3 + 4, $16 + 4, $ff, $10, $7 ; person
+	db SPRITE_BOULDER, $c + 4, $d + 4, $ff, $10, $8 ; person
+	db SPRITE_BOULDER, $a + 4, $18 + 4, $ff, $10, $9 ; person
+	db SPRITE_BOULDER, $f + 4, $16 + 4, $ff, $10, $a ; 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
--- /dev/null
+++ b/data/mapObjects/viridiancity.asm
@@ -1,0 +1,33 @@
+ViridianCityObject: ; 0x18384 (size=104)
+	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 $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 $7 ; people
+	db SPRITE_BUG_CATCHER, $14 + 4, $d + 4, $fe, $0, $1 ; person
+	db SPRITE_GAMBLER, $8 + 4, $1e + 4, $ff, $ff, $2 ; person
+	db SPRITE_BUG_CATCHER, $19 + 4, $1e + 4, $fe, $0, $3 ; person
+	db SPRITE_GIRL, $9 + 4, $11 + 4, $ff, $d3, $4 ; person
+	db SPRITE_LYING_OLD_MAN, $9 + 4, $12 + 4, $ff, $ff, $5 ; person
+	db SPRITE_FISHER2, $17 + 4, $6 + 4, $ff, $d0, $6 ; person
+	db SPRITE_GAMBLER, $5 + 4, $11 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/viridianforest.asm
@@ -1,0 +1,36 @@
+ViridianForestObject: ; 0x611da (size=127)
+	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 ; 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 $8 ; people
+	db SPRITE_BUG_CATCHER, $2b + 4, $10 + 4, $ff, $ff, $1 ; person
+	db SPRITE_BUG_CATCHER, $21 + 4, $1e + 4, $ff, $d2, $42, BUG_CATCHER + $C8, $1 ; trainer
+	db SPRITE_BUG_CATCHER, $13 + 4, $1e + 4, $ff, $d2, $43, BUG_CATCHER + $C8, $2 ; trainer
+	db SPRITE_BUG_CATCHER, $12 + 4, $2 + 4, $ff, $d2, $44, BUG_CATCHER + $C8, $3 ; trainer
+	db SPRITE_BALL, $b + 4, $19 + 4, $ff, $ff, $85, ANTIDOTE ; item
+	db SPRITE_BALL, $1d + 4, $c + 4, $ff, $ff, $86, POTION ; item
+	db SPRITE_BALL, $1f + 4, $1 + 4, $ff, $ff, $87, POKE_BALL ; item
+	db SPRITE_BUG_CATCHER, $28 + 4, $1b + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/viridianforestentrance.asm
@@ -1,0 +1,20 @@
+ViridianForestEntranceObject: ; 0x5d66d (size=48)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_GIRL, $4 + 4, $8 + 4, $ff, $d2, $1 ; person
+	db SPRITE_LITTLE_GIRL, $4 + 4, $2 + 4, $fe, $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
--- /dev/null
+++ b/data/mapObjects/viridianforestexit.asm
@@ -1,0 +1,20 @@
+ViridianForestExitObject: ; 0x5d598 (size=48)
+	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 $0 ; signs
+
+	db $2 ; people
+	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $3 + 4, $ff, $ff, $1 ; person
+	db SPRITE_OLD_PERSON, $5 + 4, $2 + 4, $ff, $ff, $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
--- /dev/null
+++ b/data/mapObjects/viridiangym.asm
@@ -1,0 +1,25 @@
+ViridianGymObject: ; 0x74bde (size=105)
+	db $3 ; border block
+
+	db $2 ; warps
+	db $11, $10, $4, $ff
+	db $11, $11, $4, $ff
+
+	db $0 ; signs
+
+	db $b ; people
+	db SPRITE_GIOVANNI, $1 + 4, $2 + 4, $ff, $d0, $41, GIOVANNI + $C8, $3 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $c + 4, $ff, $d0, $42, COOLTRAINER_M + $C8, $9 ; trainer
+	db SPRITE_HIKER, $b + 4, $b + 4, $ff, $d1, $43, BLACKBELT + $C8, $6 ; trainer
+	db SPRITE_ROCKER, $7 + 4, $a + 4, $ff, $d0, $44, TAMER + $C8, $3 ; trainer
+	db SPRITE_HIKER, $7 + 4, $3 + 4, $ff, $d2, $45, BLACKBELT + $C8, $7 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $d + 4, $ff, $d3, $46, COOLTRAINER_M + $C8, $a ; trainer
+	db SPRITE_HIKER, $1 + 4, $a + 4, $ff, $d0, $47, BLACKBELT + $C8, $8 ; trainer
+	db SPRITE_ROCKER, $10 + 4, $2 + 4, $ff, $d3, $48, TAMER + $C8, $4 ; trainer
+	db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $6 + 4, $ff, $d0, $49, COOLTRAINER_M + $C8, $1 ; trainer
+	db SPRITE_GYM_HELPER, $f + 4, $10 + 4, $ff, $d0, $a ; person
+	db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $8b, REVIVE ; item
+
+	; warp-to
+	EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $10
+	EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $11
--- /dev/null
+++ b/data/mapObjects/viridianhouse.asm
@@ -1,0 +1,18 @@
+ViridianHouseObject: ; 0x1d5bb (size=44)
+	db $a ; border block
+
+	db $2 ; warps
+	db $7, $2, $3, $ff
+	db $7, $3, $3, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_BALDING_GUY, $3 + 4, $5 + 4, $ff, $ff, $1 ; person
+	db SPRITE_LITTLE_GIRL, $4 + 4, $1 + 4, $fe, $1, $2 ; person
+	db SPRITE_BIRD, $5 + 4, $5 + 4, $fe, $2, $3 ; person
+	db SPRITE_CLIPBOARD, $0 + 4, $4 + 4, $ff, $ff, $4 ; person
+
+	; warp-to
+	EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $2
+	EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $3
--- /dev/null
+++ b/data/mapObjects/viridianmart.asm
@@ -1,0 +1,17 @@
+ViridianMartObject: ; 0x1d50a (size=38)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $1, $ff
+	db $7, $4, $1, $ff
+
+	db $0 ; signs
+
+	db $3 ; people
+	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
+	db SPRITE_BUG_CATCHER, $5 + 4, $5 + 4, $fe, $1, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $3 + 4, $3 + 4, $ff, $ff, $3 ; person
+
+	; warp-to
+	EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $3
+	EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $4
--- /dev/null
+++ b/data/mapObjects/viridianpokecenter.asm
@@ -1,0 +1,18 @@
+ViridianPokecenterObject: ; 0x44277 (size=44)
+	db $0 ; border block
+
+	db $2 ; warps
+	db $7, $3, $0, $ff
+	db $7, $4, $0, $ff
+
+	db $0 ; signs
+
+	db $4 ; people
+	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
+	db SPRITE_GENTLEMAN, $5 + 4, $a + 4, $fe, $1, $2 ; person
+	db SPRITE_BLACK_HAIR_BOY_1, $3 + 4, $4 + 4, $ff, $ff, $3 ; person
+	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
+
+	; warp-to
+	EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $3
+	EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $4
--- a/main.asm
+++ b/main.asm
@@ -254,11 +254,11 @@
 	dw MtMoonPokecenter_h
 	dw CeruleanHouseTrashed_h ; copy
 	dw Route5Gate_h
-	dw UndergroundTunnelEntranceRoute5_h
+	dw UndergroundPathEntranceRoute5_h
 	dw DayCareM_h
 	dw Route6Gate_h
-	dw UndergroundTunnelEntranceRoute6_h
-	dw UndergroundTunnelEntranceRoute6_h ; unused
+	dw UndergroundPathEntranceRoute6_h
+	dw UndergroundPathEntranceRoute6_h ; unused
 	dw Route7Gate_h
 	dw UndergroundPathEntranceRoute7_h
 	dw UndergroundPathEntranceRoute7Copy_h
@@ -18067,11 +18067,11 @@
 	db BANK(MtMoonPokecenter_h)
 	db BANK(CeruleanHouseTrashed_h)
 	db BANK(Route5Gate_h)
-	db BANK(UndergroundTunnelEntranceRoute5_h)
+	db BANK(UndergroundPathEntranceRoute5_h)
 	db BANK(DayCareM_h)
 	db BANK(Route6Gate_h)
-	db BANK(UndergroundTunnelEntranceRoute6_h)
-	db BANK(UndergroundTunnelEntranceRoute6_h) ;FREEZE
+	db BANK(UndergroundPathEntranceRoute6_h)
+	db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE
 	db BANK(Route7Gate_h)
 	db BANK(UndergroundPathEntranceRoute7_h)
 	db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE
@@ -28900,61 +28900,8 @@
 	EAST_MAP_CONNECTION ROUTE_7, ROUTE_7_WIDTH, 4, 0, ROUTE_7_HEIGHT, Route7Blocks, CELADON_CITY_WIDTH
 	dw CeladonCityObject ; objects
 
-CeladonCityObject: ; 0x18022 (size=189)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadoncity.asm"
 
-	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 $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 ; people
-	db SPRITE_LITTLE_GIRL, $11 + 4, $8 + 4, $fe, $0, $1 ; person
-	db SPRITE_OLD_PERSON, $1c + 4, $b + 4, $ff, $d1, $2 ; person
-	db SPRITE_GIRL, $13 + 4, $e + 4, $fe, $1, $3 ; person
-	db SPRITE_OLD_PERSON, $16 + 4, $19 + 4, $ff, $d0, $4 ; person
-	db SPRITE_OLD_PERSON, $10 + 4, $16 + 4, $ff, $d0, $5 ; person
-	db SPRITE_FISHER2, $c + 4, $20 + 4, $ff, $d2, $6 ; person
-	db SPRITE_SLOWBRO, $c + 4, $1e + 4, $ff, $d3, $7 ; person
-	db SPRITE_ROCKET, $1d + 4, $20 + 4, $fe, $2, $8 ; person
-	db SPRITE_ROCKET, $e + 4, $2a + 4, $fe, $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
-
 CeladonCityBlocks: ; 180df (6:40df)
 	INCBIN "maps/celadoncity.blk"
 
@@ -28967,30 +28914,8 @@
 	SOUTH_MAP_CONNECTION ROUTE_21, ROUTE_21_WIDTH, 0, 0, ROUTE_21_WIDTH, Route21Blocks, PALLET_TOWN_WIDTH, PALLET_TOWN_HEIGHT
 	dw PalletTownObject
 
-PalletTownObject: ; 0x182c3 (size=58)
-	db $b ; border tile
+INCLUDE "data/mapObjects/pallettown.asm"
 
-	db $3 ; warps
-	db $5, $5, $0, REDS_HOUSE_1F
-	db $5, $d, $0, BLUES_HOUSE
-	db $b, $c, $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 $3 ; people
-	db SPRITE_OAK, $5 + 4, $8 + 4, $ff, $ff, $1 ; person
-	db SPRITE_GIRL, $8 + 4, $3 + 4, $fe, $0, $2 ; person
-	db SPRITE_FISHER2, $e + 4, $b + 4, $fe, $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
-
 PalletTownBlocks: ; 182fd (6:42fd)
 	INCBIN "maps/pallettown.blk"
 
@@ -29004,40 +28929,8 @@
 	WEST_MAP_CONNECTION ROUTE_22, ROUTE_22_WIDTH, 4, 0, ROUTE_22_HEIGHT, Route22Blocks, VIRIDIAN_CITY_WIDTH
 	dw ViridianCityObject ; objects
 
-ViridianCityObject: ; 0x18384 (size=104)
-	db $f ; border tile
+INCLUDE "data/mapObjects/viridiancity.asm"
 
-	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 $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 $7 ; people
-	db SPRITE_BUG_CATCHER, $14 + 4, $d + 4, $fe, $0, $1 ; person
-	db SPRITE_GAMBLER, $8 + 4, $1e + 4, $ff, $ff, $2 ; person
-	db SPRITE_BUG_CATCHER, $19 + 4, $1e + 4, $fe, $0, $3 ; person
-	db SPRITE_GIRL, $9 + 4, $11 + 4, $ff, $d3, $4 ; person
-	db SPRITE_LYING_OLD_MAN, $9 + 4, $12 + 4, $ff, $ff, $5 ; person
-	db SPRITE_FISHER2, $17 + 4, $6 + 4, $ff, $d0, $6 ; person
-	db SPRITE_GAMBLER, $5 + 4, $11 + 4, $fe, $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
-
 ViridianCityBlocks: ; 183ec (6:43ec)
 	INCBIN "maps/viridiancity.blk"
 
@@ -29052,43 +28945,8 @@
 
 	db $0
 
-PewterCityObject: ; 0x18577 (size=111)
-	db $a ; border tile
+INCLUDE "data/mapObjects/pewtercity.asm"
 
-	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 ; 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 $5 ; people
-	db SPRITE_LASS, $f + 4, $8 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $19 + 4, $11 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $1b + 4, $ff, $ff, $3 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $19 + 4, $1a + 4, $fe, $2, $4 ; person
-	db SPRITE_BUG_CATCHER, $10 + 4, $23 + 4, $ff, $d0, $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
-
 PewterCityBlocks: ; 185e6 (6:45e6)
 	INCBIN "maps/pewtercity.blk"
 
@@ -29103,54 +28961,8 @@
 	EAST_MAP_CONNECTION ROUTE_9, ROUTE_9_WIDTH, 4, 0, ROUTE_9_HEIGHT, Route9Blocks, CERULEAN_CITY_WIDTH
 	dw CeruleanCityObject ; objects
 
-CeruleanCityObject: ; 0x18786 (size=170)
-	db $f ; border tile
+INCLUDE "data/mapObjects/ceruleancity.asm"
 
-	db $a ; warps
-	db $b, $1b, $0, TRASHED_HOUSE
-	db $f, $d, $0, CERULEAN_HOUSE
-	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_3
-	db $9, $9, $0, CERULEAN_HOUSE_3
-
-	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 $b ; people
-	db SPRITE_BLUE, $2 + 4, $14 + 4, $ff, $d0, $1 ; person
-	db SPRITE_ROCKET, $8 + 4, $1e + 4, $ff, $ff, $42, ROCKET + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $1f + 4, $ff, $d0, $3 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $12 + 4, $f + 4, $fe, $1, $4 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $9 + 4, $fe, $2, $5 ; person
-	db SPRITE_GUARD, $c + 4, $1c + 4, $ff, $d0, $6 ; person
-	db SPRITE_LASS, $1a + 4, $1d + 4, $ff, $d2, $7 ; person
-	db SPRITE_SLOWBRO, $1a + 4, $1c + 4, $ff, $d0, $8 ; person
-	db SPRITE_LASS, $1b + 4, $9 + 4, $fe, $2, $9 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $c + 4, $4 + 4, $ff, $d0, $a ; person
-	db SPRITE_GUARD, $c + 4, $1b + 4, $ff, $d0, $b ; person
-
-	; warp-to
-	EVENT_DISP CERULEAN_CITY_WIDTH, $b, $1b ; TRASHED_HOUSE
-	EVENT_DISP CERULEAN_CITY_WIDTH, $f, $d ; CERULEAN_HOUSE
-	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_3
-	EVENT_DISP CERULEAN_CITY_WIDTH, $9, $9 ; CERULEAN_HOUSE_3
-
 CeruleanCityBlocks: ; 18830 (6:4830)
 	INCBIN "maps/ceruleancity.blk"
 
@@ -29163,48 +28975,8 @@
 	EAST_MAP_CONNECTION ROUTE_11, ROUTE_11_WIDTH, 4, 0, ROUTE_11_HEIGHT, Route11Blocks, VERMILION_CITY_WIDTH
 	dw VermilionCityObject ; objects
 
-VermilionCityObject: ; 0x189ba (size=133)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/vermilioncity.asm"
 
-	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 $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 $6 ; people
-	db SPRITE_FOULARD_WOMAN, $7 + 4, $13 + 4, $fe, $2, $1 ; person
-	db SPRITE_GAMBLER, $6 + 4, $e + 4, $ff, $ff, $2 ; person
-	db SPRITE_SAILOR, $1e + 4, $13 + 4, $ff, $d1, $3 ; person
-	db SPRITE_GAMBLER, $7 + 4, $1e + 4, $ff, $ff, $4 ; person
-	db SPRITE_SLOWBRO, $9 + 4, $1d + 4, $fe, $1, $5 ; person
-	db SPRITE_SAILOR, $1b + 4, $19 + 4, $fe, $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
-
 VermilionCityBlocks: ; 18a3f (6:4a3f)
 	INCBIN "maps/vermilioncity.blk"
 
@@ -29218,59 +28990,8 @@
 	EAST_MAP_CONNECTION ROUTE_15, ROUTE_15_WIDTH, 4, 0, ROUTE_15_HEIGHT, Route15Blocks, FUCHSIA_CITY_WIDTH
 	dw FuchsiaCityObject ; objects
 
-FuchsiaCityObject: ; 0x18bd4 (size=178)
-	db $f ; border tile
+INCLUDE "data/mapObjects/fuchsiacity.asm"
 
-	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 $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 $a ; people
-	db SPRITE_BUG_CATCHER, $c + 4, $a + 4, $fe, $2, $1 ; person
-	db SPRITE_GAMBLER, $11 + 4, $1c + 4, $fe, $2, $2 ; person
-	db SPRITE_FISHER2, $e + 4, $1e + 4, $ff, $d0, $3 ; person
-	db SPRITE_BUG_CATCHER, $8 + 4, $18 + 4, $ff, $d1, $4 ; person
-	db SPRITE_CLEFAIRY, $5 + 4, $1f + 4, $fe, $0, $5 ; person
-	db SPRITE_BALL, $6 + 4, $19 + 4, $ff, $ff, $6 ; person
-	db SPRITE_SLOWBRO, $6 + 4, $c + 4, $fe, $2, $7 ; person
-	db SPRITE_SLOWBRO, $c + 4, $1e + 4, $fe, $2, $8 ; person
-	db SPRITE_SEEL, $11 + 4, $8 + 4, $fe, $0, $9 ; person
-	db SPRITE_OMANYTE, $5 + 4, $6 + 4, $ff, $ff, $a ; 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
-
 FuchsiaCityBlocks: ; 18c86 (6:4c86)
 	INCBIN "maps/fuchsiacity.blk"
 
@@ -31340,24 +31061,8 @@
 	TX_FAR _BluesHouseText3
 	db "@"
 
-BluesHouseObject: ; 19bce (6:5bce)
-	db $0A ; border tile
+INCLUDE "data/mapObjects/blueshouse.asm"
 
-	db 2 ; warps
-	db 7,2,1,$FF
-	db 7,3,1,$FF
-
-	db 0 ; signs
-
-	db 3 ; people
-	db $11,4+3,4+2,$FF,$D3,1 ; Daisy, sitting by map
-	db $11,4+4,4+6,$FE,1,ITEM|2,0 ; map on table
-	db $41,4+3,4+3,$FF,$FF,ITEM|3,0 ; Daisy, walking around
-
-	; warp-to
-	EVENT_DISP BLUES_HOUSE_WIDTH, 7, 2
-	EVENT_DISP BLUES_HOUSE_WIDTH, 7, 3
-
 BluesHouseBlocks: ; 19bf6 (6:5bf6)
 	INCBIN "maps/blueshouse.blk"
 
@@ -31382,22 +31087,8 @@
 	call Predef
 	jp TextScriptEnd
 
-VermilionHouse3Object: ; 0x19c25 (size=26)
-	db $a ; border tile
+INCLUDE "data/mapObjects/vermilionhouse3.asm"
 
-	db $2 ; warps
-	db $7, $2, $7, $ff
-	db $7, $3, $7, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_LITTLE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
-
-	; warp-to
-	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $2
-	EVENT_DISP VERMILION_HOUSE_3_WIDTH, $7, $3
-
 VermilionHouse3Blocks: ; 19c3f (6:5c3f)
 	INCBIN "maps/vermilionhouse3.blk"
 
@@ -31450,28 +31141,8 @@
 IndigoPlateauLobbyText5: ; 19c94 (6:5c94)
 	db $f6
 
-IndigoPlateauLobbyObject: ; 0x19c95 (size=58)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/indigoplateaulobby.asm"
 
-	db $3 ; warps
-	db $b, $7, $0, $ff
-	db $b, $8, $1, $ff
-	db $0, $8, $0, LORELEIS_ROOM
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_NURSE, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GYM_HELPER, $9 + 4, $4 + 4, $ff, $d3, $2 ; person
-	db SPRITE_LASS, $1 + 4, $5 + 4, $ff, $d0, $3 ; person
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $4 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $6 + 4, $d + 4, $ff, $d0, $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
-
 IndigoPlateauLobbyBlocks: ; 19ccf (6:5ccf)
 	INCBIN "maps/indigoplateaulobby.blk"
 
@@ -31684,38 +31355,8 @@
 	TX_FAR _SilphCo4AfterBattleText4
 	db "@"
 
-SilphCo4Object: ; 0x19e35 (size=111)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco4.asm"
 
-	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 $0 ; signs
-
-	db $7 ; people
-	db SPRITE_LAPRAS_GIVER, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
-	db SPRITE_ROCKET, $e + 4, $9 + 4, $ff, $d3, $42, ROCKET + $C8, $1a ; trainer
-	db SPRITE_OAK_AIDE, $6 + 4, $e + 4, $ff, $d2, $43, SCIENTIST + $C8, $5 ; trainer
-	db SPRITE_ROCKET, $a + 4, $1a + 4, $ff, $d1, $44, ROCKET + $C8, $1b ; trainer
-	db SPRITE_BALL, $9 + 4, $3 + 4, $ff, $ff, $85, FULL_HEAL ; item
-	db SPRITE_BALL, $7 + 4, $4 + 4, $ff, $ff, $86, MAX_REVIVE ; item
-	db SPRITE_BALL, $8 + 4, $5 + 4, $ff, $ff, $87, ESCAPE_ROPE ; item
-
-	; 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
-
 SilphCo4Blocks: ; 19ea4 (6:5ea4)
 	INCBIN "maps/silphco4.blk"
 
@@ -31950,42 +31591,8 @@
 	TX_FAR _SilphCo5Text11
 	db "@"
 
-SilphCo5Object: ; 0x1a08d (size=137)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco5.asm"
 
-	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 $0 ; signs
-
-	db $b ; people
-	db SPRITE_LAPRAS_GIVER, $9 + 4, $d + 4, $ff, $ff, $1 ; person
-	db SPRITE_ROCKET, $10 + 4, $8 + 4, $ff, $d3, $42, ROCKET + $C8, $1c ; trainer
-	db SPRITE_OAK_AIDE, $3 + 4, $8 + 4, $ff, $d3, $43, SCIENTIST + $C8, $6 ; trainer
-	db SPRITE_ROCKER, $a + 4, $12 + 4, $ff, $d1, $44, JUGGLER + $C8, $1 ; trainer
-	db SPRITE_ROCKET, $4 + 4, $1c + 4, $ff, $d1, $45, ROCKET + $C8, $1d ; trainer
-	db SPRITE_BALL, $d + 4, $2 + 4, $ff, $ff, $86, TM_09 ; item
-	db SPRITE_BALL, $6 + 4, $4 + 4, $ff, $ff, $87, PROTEIN ; item
-	db SPRITE_BALL, $10 + 4, $15 + 4, $ff, $ff, $88, CARD_KEY ; item
-	db SPRITE_CLIPBOARD, $c + 4, $16 + 4, $ff, $ff, $9 ; person
-	db SPRITE_CLIPBOARD, $a + 4, $19 + 4, $ff, $ff, $a ; person
-	db SPRITE_CLIPBOARD, $6 + 4, $18 + 4, $ff, $ff, $b ; 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
-
 SilphCo5Blocks: ; 1a116 (6:6116)
 	INCBIN "maps/silphco5.blk"
 
@@ -32222,37 +31829,8 @@
 	TX_FAR _SilphCo6AfterBattleText4
 	db "@"
 
-SilphCo6Object: ; 0x1a2fb (size=112)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco6.asm"
 
-	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 $0 ; signs
-
-	db $a ; people
-	db SPRITE_LAPRAS_GIVER, $6 + 4, $a + 4, $ff, $ff, $1 ; person
-	db SPRITE_LAPRAS_GIVER, $6 + 4, $14 + 4, $ff, $ff, $2 ; person
-	db SPRITE_ERIKA, $6 + 4, $15 + 4, $ff, $d0, $3 ; person
-	db SPRITE_ERIKA, $a + 4, $b + 4, $ff, $d3, $4 ; person
-	db SPRITE_LAPRAS_GIVER, $d + 4, $12 + 4, $ff, $d1, $5 ; person
-	db SPRITE_ROCKET, $3 + 4, $11 + 4, $ff, $d3, $46, ROCKET + $C8, $1e ; trainer
-	db SPRITE_OAK_AIDE, $8 + 4, $7 + 4, $ff, $d0, $47, SCIENTIST + $C8, $7 ; trainer
-	db SPRITE_ROCKET, $f + 4, $e + 4, $ff, $d2, $48, ROCKET + $C8, $1f ; trainer
-	db SPRITE_BALL, $c + 4, $3 + 4, $ff, $ff, $89, HP_UP ; item
-	db SPRITE_BALL, $f + 4, $2 + 4, $ff, $ff, $8a, X_ACCURACY ; item
-
-	; 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
-
 SilphCo6Blocks: ; 1a36b (6:636b)
 	INCBIN "maps/silphco6.blk"
 
@@ -32736,34 +32314,8 @@
 	EAST_MAP_CONNECTION ROUTE_20, ROUTE_20_WIDTH, 0, 0, ROUTE_20_HEIGHT, Route20Blocks, CINNABAR_ISLAND_WIDTH
 	dw CinnabarIslandObject ; objects
 
-CinnabarIslandObject: ; 0x1c022 (size=71)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/cinnabarisland.asm"
 
-	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 ; 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 $2 ; people
-	db SPRITE_GIRL, $5 + 4, $c + 4, $fe, $2, $1 ; person
-	db SPRITE_GAMBLER, $6 + 4, $e + 4, $ff, $ff, $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
-
 CinnabarIslandBlocks: ; 1c069 (7:4069)
 	INCBIN "maps/cinnabarisland.blk"
 
@@ -32776,21 +32328,8 @@
 	SOUTH_MAP_CONNECTION PALLET_TOWN, PALLET_TOWN_WIDTH, 0, 0, PALLET_TOWN_WIDTH, PalletTownBlocks, ROUTE_1_WIDTH, ROUTE_1_HEIGHT
 	dw Route1Object ; objects
 
-Route1Object: ; 0x1c0e5 (size=19)
-	db $b ; border tile
+INCLUDE "data/mapObjects/route1.asm"
 
-	db $0 ; warps
-
-	db $1 ; signs
-	db $1b, $9, $3 ; Route1Text3
-
-	db $2 ; people
-	db SPRITE_BUG_CATCHER, $18 + 4, $5 + 4, $fe, $1, $1 ; person
-	db SPRITE_BUG_CATCHER, $d + 4, $f + 4, $fe, $2, $2 ; person
-
-	; warp-to (unused)
-	EVENT_DISP $4, $7, $2
-
 Route1Blocks: ; 1c0fc (7:40fc)
 	INCBIN "maps/route1.blk"
 
@@ -34297,32 +33836,8 @@
 	TX_FAR _UnnamedText_1d405
 	db "@"
 
-OaksLabObject: ; 0x1d40a (size=88)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/oakslab.asm"
 
-	db $2 ; warps
-	db $b, $4, $2, $ff
-	db $b, $5, $2, $ff
-
-	db $0 ; signs
-
-	db $b ; people
-	db SPRITE_BLUE, $3 + 4, $4 + 4, $ff, $ff, $41, SONY1 + $C8, $1 ; trainer
-	db SPRITE_BALL, $3 + 4, $6 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BALL, $3 + 4, $7 + 4, $ff, $ff, $3 ; person
-	db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $4 ; person
-	db SPRITE_OAK, $2 + 4, $5 + 4, $ff, $d0, $5 ; person
-	db SPRITE_BOOK_MAP_DEX, $1 + 4, $2 + 4, $ff, $ff, $6 ; person
-	db SPRITE_BOOK_MAP_DEX, $1 + 4, $3 + 4, $ff, $ff, $7 ; person
-	db SPRITE_OAK, $a + 4, $5 + 4, $ff, $d1, $8 ; person
-	db SPRITE_GIRL, $9 + 4, $1 + 4, $fe, $1, $9 ; person
-	db SPRITE_OAK_AIDE, $a + 4, $2 + 4, $ff, $ff, $a ; person
-	db SPRITE_OAK_AIDE, $a + 4, $8 + 4, $ff, $ff, $b ; person
-
-	; warp-to
-	EVENT_DISP OAKS_LAB_WIDTH, $b, $4
-	EVENT_DISP OAKS_LAB_WIDTH, $b, $5
-
 ViridianMart_h: ; 0x1d462 to 0x1d46e (12 bytes) (bank=7) (id=42)
 	db MART ; tileset
 	db VIRIDIAN_MART_HEIGHT, VIRIDIAN_MART_WIDTH ; dimensions (y, x)
@@ -34426,24 +33941,8 @@
 	TX_FAR _ViridianMartText3
 	db "@"
 
-ViridianMartObject: ; 0x1d50a (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/viridianmart.asm"
 
-	db $2 ; warps
-	db $7, $3, $1, $ff
-	db $7, $4, $1, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BUG_CATCHER, $5 + 4, $5 + 4, $fe, $1, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $3 + 4, $3 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $3
-	EVENT_DISP VIRIDIAN_MART_WIDTH, $7, $4
-
 ViridianMartBlocks: ; 1d530 (7:5530)
 	INCBIN "maps/viridianmart.blk"
 
@@ -34469,23 +33968,8 @@
 	TX_FAR _SchoolText2
 	db "@"
 
-SchoolObject: ; 0x1d55d (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/school.asm"
 
-	db $2 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BRUNETTE_GIRL, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
-	db SPRITE_LASS, $1 + 4, $4 + 4, $ff, $d0, $2 ; person
-
-	; warp-to
-	EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $2
-	EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $3
-
 ViridianHouse_h: ; 0x1d57d to 0x1d589 (12 bytes) (bank=7) (id=44)
 	db HOUSE ; tileset
 	db VIRIDIAN_HOUSE_HEIGHT, VIRIDIAN_HOUSE_WIDTH ; dimensions (y, x)
@@ -34529,25 +34013,8 @@
 	TX_FAR _ViridianHouseText4
 	db "@"
 
-ViridianHouseObject: ; 0x1d5bb (size=44)
-	db $a ; border tile
+INCLUDE "data/mapObjects/viridianhouse.asm"
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_BALDING_GUY, $3 + 4, $5 + 4, $ff, $ff, $1 ; person
-	db SPRITE_LITTLE_GIRL, $4 + 4, $1 + 4, $fe, $1, $2 ; person
-	db SPRITE_BIRD, $5 + 4, $5 + 4, $fe, $2, $3 ; person
-	db SPRITE_CLIPBOARD, $0 + 4, $4 + 4, $ff, $ff, $4 ; person
-
-	; warp-to
-	EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $2
-	EVENT_DISP VIRIDIAN_HOUSE_WIDTH, $7, $3
-
 PewterHouse1_h: ; 0x1d5e7 to 0x1d5f3 (12 bytes) (bank=7) (id=55)
 	db HOUSE ; tileset
 	db PEWTER_HOUSE_1_HEIGHT, PEWTER_HOUSE_1_WIDTH ; dimensions (y, x)
@@ -34579,24 +34046,8 @@
 	TX_FAR _PewterHouse1Text3
 	db "@"
 
-PewterHouse1Object: ; 0x1d616 (size=38)
-	db $a ; border tile
+INCLUDE "data/mapObjects/pewterhouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_SLOWBRO, $5 + 4, $4 + 4, $ff, $d2, $1 ; person
-	db SPRITE_YOUNG_BOY, $5 + 4, $3 + 4, $ff, $d3, $2 ; person
-	db SPRITE_FAT_BALD_GUY, $2 + 4, $1 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP PEWTER_HOUSE_1_WIDTH, $7, $3
-
 PewterHouse2_h: ; 0x1d63c to 0x1d648 (12 bytes) (bank=7) (id=57)
 	db HOUSE ; tileset
 	db PEWTER_HOUSE_2_HEIGHT, PEWTER_HOUSE_2_WIDTH ; dimensions (y, x)
@@ -34619,23 +34070,8 @@
 	TX_FAR _PewterHouse2Text2
 	db "@"
 
-PewterHouse2Object: ; 0x1d659 (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/pewterhouse2.asm"
 
-	db $2 ; warps
-	db $7, $2, $5, $ff
-	db $7, $3, $5, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_GAMBLER, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BUG_CATCHER, $5 + 4, $4 + 4, $ff, $ff, $2 ; person
-
-	; warp-to
-	EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP PEWTER_HOUSE_2_WIDTH, $7, $3
-
 CeruleanHouseTrashed_h: ; 0x1d679 to 0x1d685 (12 bytes) (bank=7) (id=62)
 	db HOUSE ; tileset
 	db TRASHED_HOUSE_HEIGHT, TRASHED_HOUSE_WIDTH ; dimensions (y, x)
@@ -34684,26 +34120,8 @@
 	TX_FAR _CeruleanHouseTrashedText3
 	db "@"
 
-CeruleanHouseTrashedObject: ; 0x1d6bf (size=43)
-	db $a ; border tile
+INCLUDE "data/mapObjects/ceruleanhousetrashed.asm"
 
-	db $3 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $0, $3, $7, $ff
-
-	db $1 ; signs
-	db $0, $3, $3 ; CeruleanHouseTrashedText3
-
-	db $2 ; people
-	db SPRITE_FISHER, $1 + 4, $2 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GIRL, $6 + 4, $5 + 4, $fe, $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
-
 CeruleanHouse1_h: ; 0x1d6ea to 0x1d6f6 (12 bytes) (bank=7) (id=63)
 	db HOUSE ; tileset
 	db CERULEAN_HOUSE_1_HEIGHT, CERULEAN_HOUSE_1_WIDTH ; dimensions (y, x)
@@ -34730,23 +34148,8 @@
 	call Predef
 	jp TextScriptEnd
 
-CeruleanHouse1Object: ; 0x1d710 (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/ceruleanhouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $1, $ff
-	db $7, $3, $1, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_OLD_MEDIUM_WOMAN, $4 + 4, $5 + 4, $ff, $d2, $1 ; person
-	db SPRITE_GAMBLER, $2 + 4, $1 + 4, $ff, $ff, $2 ; person
-
-	; warp-to
-	EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $3
-
 BikeShop_h: ; 0x1d730 to 0x1d73c (12 bytes) (bank=7) (id=66)
 	db CLUB ; tileset
 	db BIKE_SHOP_HEIGHT, BIKE_SHOP_WIDTH ; dimensions (y, x)
@@ -34908,24 +34311,8 @@
 	TX_FAR _UnnamedText_1d861
 	db "@"
 
-BikeShopObject: ; 0x1d866 (size=38)
-	db $e ; border tile
+INCLUDE "data/mapObjects/bikeshop.asm"
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_BIKE_SHOP_GUY, $2 + 4, $6 + 4, $ff, $ff, $1 ; person
-	db SPRITE_MOM_GEISHA, $6 + 4, $5 + 4, $fe, $1, $2 ; person
-	db SPRITE_BUG_CATCHER, $3 + 4, $1 + 4, $ff, $d1, $3 ; person
-
-	; warp-to
-	EVENT_DISP BIKE_SHOP_WIDTH, $7, $2
-	EVENT_DISP BIKE_SHOP_WIDTH, $7, $3
-
 BikeShopBlocks: ; 1d88c (7:588c)
 	INCBIN "maps/bikeshop.blk"
 
@@ -35053,27 +34440,8 @@
 	TX_FAR _LavenderHouse1Text6
 	db "@"
 
-LavenderHouse1Object: ; 0x1d96a (size=56)
-	db $a ; border tile
+INCLUDE "data/mapObjects/lavenderhouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
-
-	db $0 ; signs
-
-	db $6 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $ff, $1 ; person
-	db SPRITE_LITTLE_GIRL, $3 + 4, $6 + 4, $ff, $d0, $2 ; person
-	db SPRITE_SLOWBRO, $4 + 4, $6 + 4, $ff, $d1, $3 ; person
-	db SPRITE_SLOWBRO, $3 + 4, $1 + 4, $ff, $ff, $4 ; person
-	db SPRITE_MR_FUJI, $1 + 4, $3 + 4, $ff, $ff, $5 ; person
-	db SPRITE_BOOK_MAP_DEX, $3 + 4, $3 + 4, $ff, $ff, $6 ; person
-
-	; warp-to
-	EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP LAVENDER_HOUSE_1_WIDTH, $7, $3
-
 LavenderHouse2_h: ; 0x1d9a2 to 0x1d9ae (12 bytes) (bank=7) (id=151)
 	db HOUSE ; tileset
 	db LAVENDER_HOUSE_2_HEIGHT, LAVENDER_HOUSE_2_WIDTH ; dimensions (y, x)
@@ -35118,23 +34486,8 @@
 	TX_FAR _UnnamedText_1d9e1
 	db "@"
 
-LavenderHouse2Object: ; 0x1d9e6 (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/lavenderhouse2.asm"
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_SLOWBRO, $5 + 4, $3 + 4, $ff, $d1, $1 ; person
-	db SPRITE_BRUNETTE_GIRL, $4 + 4, $2 + 4, $ff, $d3, $2 ; person
-
-	; warp-to
-	EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP LAVENDER_HOUSE_2_WIDTH, $7, $3
-
 NameRater_h: ; 0x1da06 to 0x1da12 (12 bytes) (bank=7) (id=229)
 	db HOUSE ; tileset
 	db NAME_RATERS_HOUSE_HEIGHT, NAME_RATERS_HOUSE_WIDTH ; dimensions (y, x)
@@ -35252,22 +34605,8 @@
 	TX_FAR _UnnamedText_1dad1
 	db "@"
 
-NameRaterObject: ; 0x1dad6 (size=26)
-	db $a ; border tile
+INCLUDE "data/mapObjects/namerater.asm"
 
-	db $2 ; warps
-	db $7, $2, $5, $ff
-	db $7, $3, $5, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_MR_MASTERBALL, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
-
-	; warp-to
-	EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $2
-	EVENT_DISP NAME_RATERS_HOUSE_WIDTH, $7, $3
-
 VermilionHouse1_h: ; 0x1daf0 to 0x1dafc (12 bytes) (bank=7) (id=93)
 	db HOUSE ; tileset
 	db VERMILION_HOUSE_1_HEIGHT, VERMILION_HOUSE_1_WIDTH ; dimensions (y, x)
@@ -35300,24 +34639,8 @@
 	TX_FAR _VermilionHouse1Text3
 	db "@"
 
-VermilionHouse1Object: ; 0x1db20 (size=38)
-	db $a ; border tile
+INCLUDE "data/mapObjects/vermilionhouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_BUG_CATCHER, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
-	db SPRITE_BIRD, $5 + 4, $3 + 4, $fe, $2, $2 ; person
-	db SPRITE_PAPER_SHEET, $3 + 4, $4 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP VERMILION_HOUSE_1_WIDTH, $7, $3
-
 VermilionDock_h: ; 0x1db46 to 0x1db52 (12 bytes) (bank=7) (id=94)
 	db SHIP_PORT ; tileset
 	db VERMILION_DOCK_HEIGHT, VERMILION_DOCK_WIDTH ; dimensions (y, x)
@@ -35536,21 +34859,8 @@
 	TX_FAR _VermilionDockText1
 	db "@"
 
-VermilionDockObject: ; 0x1dcc6 (size=20)
-	db $f ; border tile
+INCLUDE "data/mapObjects/vermiliondock.asm"
 
-	db $2 ; warps
-	db $0, $e, $5, $ff
-	db $2, $e, $1, SS_ANNE_1
-
-	db $0 ; signs
-
-	db $0 ; people
-
-	; warp-to
-	EVENT_DISP VERMILION_DOCK_WIDTH, $0, $e
-	EVENT_DISP VERMILION_DOCK_WIDTH, $2, $e ; SS_ANNE_1
-
 VermilionDockBlocks: ; 1dcda (7:5cda)
 	INCBIN "maps/vermiliondock.blk"
 
@@ -35584,23 +34894,8 @@
 .asm_24365 ; 0x1dd59
 	jp TextScriptEnd
 
-CeladonMansion5Object: ; 0x1dd5c (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/celadonmansion5.asm"
 
-	db $2 ; warps
-	db $7, $2, $2, CELADON_MANSION_4
-	db $7, $3, $2, CELADON_MANSION_4
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_HIKER, $2 + 4, $2 + 4, $ff, $d0, $1 ; person
-	db SPRITE_BALL, $3 + 4, $4 + 4, $ff, $ff, $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
-
 FuchsiaMart_h: ; 0x1dd7c to 0x1dd88 (12 bytes) (bank=7) (id=152)
 	db MART ; tileset
 	db FUCHSIA_MART_HEIGHT, FUCHSIA_MART_WIDTH ; dimensions (y, x)
@@ -35624,24 +34919,8 @@
 	TX_FAR _FuchsiaMartText3
 	db "@"
 
-FuchsiaMartObject: ; 0x1dd9b (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/fuchsiamart.asm"
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_FAT_BALD_GUY, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
-	db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $1, $3 ; person
-
-	; warp-to
-	EVENT_DISP FUCHSIA_MART_WIDTH, $7, $3
-	EVENT_DISP FUCHSIA_MART_WIDTH, $7, $4
-
 FuchsiaMartBlocks: ; 1ddc1 (7:5dc1)
 	INCBIN "maps/fuchsiamart.blk"
 
@@ -35680,25 +34959,8 @@
 	TX_FAR _SaffronHouse1Text4
 	db "@"
 
-SaffronHouse1Object: ; 0x1de04 (size=44)
-	db $a ; border tile
+INCLUDE "data/mapObjects/saffronhouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_BRUNETTE_GIRL, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BIRD, $4 + 4, $0 + 4, $fe, $1, $2 ; person
-	db SPRITE_BUG_CATCHER, $1 + 4, $4 + 4, $ff, $d0, $3 ; person
-	db SPRITE_PAPER_SHEET, $3 + 4, $3 + 4, $ff, $ff, $4 ; person
-
-	; warp-to
-	EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP SAFFRON_HOUSE_1_WIDTH, $7, $3
-
 SaffronHouse2_h: ; 0x1de30 to 0x1de3c (12 bytes) (bank=7) (id=183)
 	db HOUSE ; tileset
 	db SAFFRON_HOUSE_2_HEIGHT, SAFFRON_HOUSE_2_WIDTH ; dimensions (y, x)
@@ -35753,22 +35015,8 @@
 	TX_FAR _TM29NoRoomText
 	db "@"
 
-SaffronHouse2Object: ; 0x1de8a (size=26)
-	db $a ; border tile
+INCLUDE "data/mapObjects/saffronhouse2.asm"
 
-	db $2 ; warps
-	db $7, $2, $7, $ff
-	db $7, $3, $7, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FISHER, $3 + 4, $5 + 4, $ff, $d2, $1 ; person
-
-	; warp-to
-	EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP SAFFRON_HOUSE_2_WIDTH, $7, $3
-
 DiglettsCaveRoute2_h: ; 0x1dea4 to 0x1deb0 (12 bytes) (bank=7) (id=46)
 	db CAVERN ; tileset
 	db DIGLETTS_CAVE_EXIT_HEIGHT, DIGLETTS_CAVE_EXIT_WIDTH ; dimensions (y, x)
@@ -35788,24 +35036,8 @@
 	TX_FAR _DiglettsCaveRoute2Text1
 	db "@"
 
-DiglettsCaveRoute2Object: ; 0x1debf (size=34)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/diglettscaveroute2.asm"
 
-	db $3 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $4, $4, $0, DIGLETTS_CAVE
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FISHER, $3 + 4, $3 + 4, $ff, $ff, $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
-
 Route2House_h: ; 0x1dee1 to 0x1deed (12 bytes) (bank=7) (id=48)
 	db HOUSE ; tileset
 	db ROUTE_2_HOUSE_HEIGHT, ROUTE_2_HOUSE_WIDTH ; dimensions (y, x)
@@ -35832,23 +35064,8 @@
 	call Predef
 	jp TextScriptEnd
 
-Route2HouseObject: ; 0x1df07 (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route2house.asm"
 
-	db $2 ; warps
-	db $7, $2, $2, $ff
-	db $7, $3, $2, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_OAK_AIDE, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
-	db SPRITE_GAMEBOY_KID_COPY, $1 + 4, $4 + 4, $ff, $d0, $2 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $2
-	EVENT_DISP ROUTE_2_HOUSE_WIDTH, $7, $3
-
 Route5Gate_h: ; 0x1df27 to 0x1df33 (12 bytes) (bank=7) (id=70)
 	db GATE ; tileset
 	db ROUTE_5_GATE_HEIGHT, ROUTE_5_GATE_WIDTH ; dimensions (y, x)
@@ -35978,26 +35195,8 @@
 	TX_FAR _UnnamedText_1dff6
 	db "@"
 
-Route5GateObject: ; 0x1dffb (size=42)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route5gate.asm"
 
-	db $4 ; warps
-	db $5, $3, $2, $ff
-	db $5, $4, $2, $ff
-	db $0, $3, $1, $ff
-	db $0, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $3 + 4, $1 + 4, $ff, $d3, $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
-
 Route5GateBlocks: ; 1e025 (7:6025)
 	INCBIN "maps/route5gate.blk"
 
@@ -36081,26 +35280,8 @@
 	dw Route6GateText2
 	dw Route6GateText3
 
-Route6GateObject: ; 0x1e0be (size=42)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route6gate.asm"
 
-	db $4 ; warps
-	db $5, $3, $2, $ff
-	db $5, $4, $2, $ff
-	db $0, $3, $1, $ff
-	db $0, $4, $1, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $2 + 4, $6 + 4, $ff, $d2, $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
-
 Route6GateBlocks: ; 1e0e8 (7:60e8)
 	INCBIN "maps/route6gate.blk"
 
@@ -36187,26 +35368,8 @@
 	dw Route7GateText2
 	dw Route7GateText3
 
-Route7GateObject: ; 0x1e185 (size=42)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route7gate.asm"
 
-	db $4 ; warps
-	db $3, $0, $3, $ff
-	db $4, $0, $3, $ff
-	db $3, $5, $0, $ff
-	db $4, $5, $1, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $1 + 4, $3 + 4, $ff, $d0, $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
-
 Route7GateBlocks: ; 1e1af (7:61af)
 	INCBIN "maps/route7gate.blk"
 
@@ -36290,26 +35453,8 @@
 	dw Route8GateText2
 	dw Route8GateText3
 
-Route8GateObject: ; 0x1e247 (size=42)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route8gate.asm"
 
-	db $4 ; warps
-	db $3, $0, $0, $ff
-	db $4, $0, $1, $ff
-	db $3, $5, $2, $ff
-	db $4, $5, $3, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $1 + 4, $2 + 4, $ff, $d0, $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
-
 Route8GateBlocks: ; 1e271 (7:6271)
 	INCBIN "maps/route8gate.blk"
 
@@ -36332,24 +35477,8 @@
 	TX_FAR _UndergroundPathEntRoute8Text1
 	db "@"
 
-UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
-	db $a ; border tile
+INCLUDE "data/mapObjects/undergroundpathentranceroute8.asm"
 
-	db $3 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-	db $4, $4, $1, UNDERGROUND_PATH_WE
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GIRL, $4 + 4, $3 + 4, $ff, $ff, $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
-
 PowerPlant_h: ; 0x1e2ba to 0x1e2c6 (12 bytes) (bank=7) (id=83)
 	db FACILITY ; tileset
 	db POWER_PLANT_HEIGHT, POWER_PLANT_WIDTH ; dimensions (y, x)
@@ -36534,37 +35663,8 @@
 	call WaitForSoundToFinish
 	jp TextScriptEnd
 
-PowerPlantObject: ; 0x1e3bf (size=135)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/powerplant.asm"
 
-	db $3 ; warps
-	db $23, $4, $3, $ff
-	db $23, $5, $3, $ff
-	db $b, $0, $3, $ff
-
-	db $0 ; signs
-
-	db $e ; people
-	db SPRITE_BALL, $14 + 4, $9 + 4, $ff, $ff, $41, VOLTORB, 40 ; trainer
-	db SPRITE_BALL, $12 + 4, $20 + 4, $ff, $ff, $42, VOLTORB, 40 ; trainer
-	db SPRITE_BALL, $19 + 4, $15 + 4, $ff, $ff, $43, VOLTORB, 40 ; trainer
-	db SPRITE_BALL, $12 + 4, $19 + 4, $ff, $ff, $44, ELECTRODE, 43 ; trainer
-	db SPRITE_BALL, $22 + 4, $17 + 4, $ff, $ff, $45, VOLTORB, 40 ; trainer
-	db SPRITE_BALL, $1c + 4, $1a + 4, $ff, $ff, $46, VOLTORB, 40 ; trainer
-	db SPRITE_BALL, $e + 4, $15 + 4, $ff, $ff, $47, ELECTRODE, 43 ; trainer
-	db SPRITE_BALL, $20 + 4, $25 + 4, $ff, $ff, $48, VOLTORB, 40 ; trainer
-	db SPRITE_BIRD, $9 + 4, $4 + 4, $ff, $d1, $49, ZAPDOS, 50 ; trainer
-	db SPRITE_BALL, $19 + 4, $7 + 4, $ff, $ff, $8a, CARBOS ; item
-	db SPRITE_BALL, $3 + 4, $1c + 4, $ff, $ff, $8b, HP_UP ; item
-	db SPRITE_BALL, $3 + 4, $22 + 4, $ff, $ff, $8c, RARE_CANDY ; item
-	db SPRITE_BALL, $20 + 4, $1a + 4, $ff, $ff, $8d, TM_25 ; item
-	db SPRITE_BALL, $20 + 4, $14 + 4, $ff, $ff, $8e, TM_33 ; item
-
-	; warp-to
-	EVENT_DISP POWER_PLANT_WIDTH, $23, $4
-	EVENT_DISP POWER_PLANT_WIDTH, $23, $5
-	EVENT_DISP POWER_PLANT_WIDTH, $b, $0
-
 PowerPlantBlocks: ; 1e446 (7:6446)
 	INCBIN "maps/powerplant.blk"
 
@@ -36588,24 +35688,8 @@
 	TX_FAR _DiglettsCaveEntRoute11Text1
 	db "@"
 
-DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/diglettscaveroute11.asm"
 
-	db $3 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
-	db $4, $4, $1, DIGLETTS_CAVE
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GAMBLER, $3 + 4, $2 + 4, $ff, $ff, $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
-
 Route16House_h: ; 0x1e5ec to 0x1e5f8 (12 bytes) (bank=7) (id=188)
 	db HOUSE ; tileset
 	db ROUTE_16_HOUSE_HEIGHT, ROUTE_16_HOUSE_WIDTH ; dimensions (y, x)
@@ -36670,23 +35754,8 @@
 	TX_FAR _UnnamedText_1e652
 	db "@"
 
-Route16HouseObject: ; 0x1e657 (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route16house.asm"
 
-	db $2 ; warps
-	db $7, $2, $8, $ff
-	db $7, $3, $8, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BRUNETTE_GIRL, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BIRD, $4 + 4, $6 + 4, $fe, $0, $2 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $2
-	EVENT_DISP ROUTE_16_HOUSE_WIDTH, $7, $3
-
 Route22Gate_h: ; 0x1e677 to 0x1e683 (12 bytes) (bank=7) (id=193)
 	db GATE ; tileset
 	db ROUTE_22_GATE_HEIGHT, ROUTE_22_GATE_WIDTH ; dimensions (y, x)
@@ -36787,26 +35856,8 @@
 	TX_FAR _UnnamedText_1e71a ; 0x8d03e
 	db $0B, "@"
 
-Route22GateObject: ; 0x1e720 (size=42)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route22gate.asm"
 
-	db $4 ; warps
-	db $7, $4, $0, $ff
-	db $7, $5, $0, $ff
-	db $0, $4, $0, $ff
-	db $0, $5, $1, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $2 + 4, $6 + 4, $ff, $d2, $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
-
 Route22GateBlocks: ; 1e74a (7:674a)
 	INCBIN "maps/route22gate.blk"
 
@@ -37026,24 +36077,8 @@
 	TX_FAR _UnnamedText_1e8da
 	db "@"
 
-BillsHouseObject: ; 0x1e8df (size=38)
-	db $d ; border tile
+INCLUDE "data/mapObjects/billshouse.asm"
 
-	db $2 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_SLOWBRO, $5 + 4, $6 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $4 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $6 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP BILLS_HOUSE_WIDTH, $7, $2
-	EVENT_DISP BILLS_HOUSE_WIDTH, $7, $3
-
 BillsHouseBlocks: ; 1e905 (7:6905)
 	INCBIN "maps/billshouse.blk"
 
@@ -52973,38 +52008,8 @@
 	WEST_MAP_CONNECTION ROUTE_8, ROUTE_8_WIDTH, 0, 0, ROUTE_8_HEIGHT, Route8Blocks, LAVENDER_TOWN_WIDTH
 	dw LavenderTownObject ; objects
 
-LavenderTownObject: ; 0x4402d (size=88)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/lavendertown.asm"
 
-	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 ; 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 $3 ; people
-	db SPRITE_LITTLE_GIRL, $9 + 4, $f + 4, $fe, $0, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $9 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $7 + 4, $8 + 4, $fe, $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
-
 LavenderTownBlocks: ; 44085 (11:4085)
 	INCBIN "maps/lavendertown.blk"
 
@@ -53272,25 +52277,8 @@
 ViridianPokeCenterText4: ; 44276 (11:4276)
 	db $f6
 
-ViridianPokecenterObject: ; 0x44277 (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/viridianpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GENTLEMAN, $5 + 4, $a + 4, $fe, $1, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $3 + 4, $4 + 4, $ff, $ff, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $4
-
 Mansion1_h: ; 0x442a3 to 0x442af (12 bytes) (bank=11) (id=165)
 	db FACILITY ; tileset
 	db MANSION_1_HEIGHT, MANSION_1_WIDTH ; dimensions (y, x)
@@ -53438,36 +52426,8 @@
 	TX_FAR _MansionSwitchNotPressedText
 	db "@"
 
-Mansion1Object: ; 0x443a4 (size=90)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/mansion1.asm"
 
-	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 $0 ; signs
-
-	db $3 ; people
-	db SPRITE_OAK_AIDE, $11 + 4, $11 + 4, $ff, $d2, $41, SCIENTIST + $C8, $4 ; trainer
-	db SPRITE_BALL, $3 + 4, $e + 4, $ff, $ff, $82, ESCAPE_ROPE ; item
-	db SPRITE_BALL, $15 + 4, $12 + 4, $ff, $ff, $83, CARBOS ; item
-
-	; 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
-
 Mansion1Blocks: ; 443fe (11:43fe)
 	INCBIN "maps/mansion1.blk"
 
@@ -53693,41 +52653,8 @@
 	TX_FAR _RockTunnel1Text8
 	db "@"
 
-RockTunnel1Object: ; 0x445f6 (size=127)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/rocktunnel1.asm"
 
-	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 $1 ; signs
-	db $1d, $b, $8 ; RockTunnel1Text8
-
-	db $7 ; people
-	db SPRITE_HIKER, $5 + 4, $7 + 4, $ff, $d0, $41, HIKER + $C8, $c ; trainer
-	db SPRITE_HIKER, $10 + 4, $5 + 4, $ff, $d0, $42, HIKER + $C8, $d ; trainer
-	db SPRITE_HIKER, $f + 4, $11 + 4, $ff, $d2, $43, HIKER + $C8, $e ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $17 + 4, $ff, $d2, $44, POKEMANIAC + $C8, $7 ; trainer
-	db SPRITE_LASS, $15 + 4, $25 + 4, $ff, $d2, $45, JR__TRAINER_F + $C8, $11 ; trainer
-	db SPRITE_LASS, $18 + 4, $16 + 4, $ff, $d0, $46, JR__TRAINER_F + $C8, $12 ; trainer
-	db SPRITE_LASS, $18 + 4, $20 + 4, $ff, $d3, $47, JR__TRAINER_F + $C8, $13 ; trainer
-
-	; 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
-
 RockTunnel1Blocks: ; 44675 (11:4675)
 	INCBIN "maps/rocktunnel1.blk"
 
@@ -53789,37 +52716,8 @@
 	dw BoulderText
 	dw BoulderText
 
-SeafoamIslands1Object: ; 0x4484f (size=72)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/seafoamislands1.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BOULDER, $a + 4, $12 + 4, $ff, $10, $1 ; person
-	db SPRITE_BOULDER, $7 + 4, $1a + 4, $ff, $10, $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
-
-	; holes
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $6, $11
-	EVENT_DISP SEAFOAM_ISLANDS_1_WIDTH, $6, $18
-
 SeafoamIslands1Blocks: ; 4489f (11:489f)
 	INCBIN "maps/seafoamislands1.blk"
 
@@ -53840,22 +52738,8 @@
 	TX_FAR _SSAnne3Text1
 	db "@"
 
-SSAnne3Object: ; 0x4493c (size=26)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne3.asm"
 
-	db $2 ; warps
-	db $3, $0, $0, SS_ANNE_5
-	db $3, $13, $7, SS_ANNE_2
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_SAILOR, $3 + 4, $9 + 4, $fe, $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
-
 SSAnne3Blocks: ; 44956 (11:4956)
 	INCBIN "maps/ssanne3.blk"
 
@@ -54072,35 +52956,8 @@
 	TX_FAR _VictoryRoad3AfterBattleText5
 	db "@"
 
-VictoryRoad3Object: ; 0x44acd (size=106)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/victoryroad3.asm"
 
-	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 $0 ; signs
-
-	db $a ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $1c + 4, $ff, $d2, $41, COOLTRAINER_M + $C8, $2 ; trainer
-	db SPRITE_LASS, $d + 4, $7 + 4, $ff, $d3, $42, COOLTRAINER_F + $C8, $2 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $e + 4, $6 + 4, $ff, $d2, $43, COOLTRAINER_M + $C8, $3 ; trainer
-	db SPRITE_LASS, $3 + 4, $d + 4, $ff, $d3, $44, COOLTRAINER_F + $C8, $3 ; trainer
-	db SPRITE_BALL, $5 + 4, $1a + 4, $ff, $ff, $85, MAX_REVIVE ; item
-	db SPRITE_BALL, $7 + 4, $7 + 4, $ff, $ff, $86, TM_47 ; item
-	db SPRITE_BOULDER, $3 + 4, $16 + 4, $ff, $10, $7 ; person
-	db SPRITE_BOULDER, $c + 4, $d + 4, $ff, $10, $8 ; person
-	db SPRITE_BOULDER, $a + 4, $18 + 4, $ff, $10, $9 ; person
-	db SPRITE_BOULDER, $f + 4, $16 + 4, $ff, $10, $a ; 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
-
 VictoryRoad3Blocks: ; 44b37 (11:4b37)
 	INCBIN "maps/victoryroad3.blk"
 
@@ -54305,34 +53162,8 @@
 	TX_FAR _RocketHideout1AfterBattleTxt6
 	db "@"
 
-RocketHideout1Object: ; 0x44ce7 (size=98)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/rockethideout1.asm"
 
-	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 $0 ; signs
-
-	db $7 ; people
-	db SPRITE_ROCKET, $8 + 4, $1a + 4, $ff, $d2, $41, ROCKET + $C8, $8 ; trainer
-	db SPRITE_ROCKET, $6 + 4, $c + 4, $ff, $d3, $42, ROCKET + $C8, $9 ; trainer
-	db SPRITE_ROCKET, $11 + 4, $12 + 4, $ff, $d0, $43, ROCKET + $C8, $a ; trainer
-	db SPRITE_ROCKET, $19 + 4, $f + 4, $ff, $d3, $44, ROCKET + $C8, $b ; trainer
-	db SPRITE_ROCKET, $12 + 4, $1c + 4, $ff, $d2, $45, ROCKET + $C8, $c ; trainer
-	db SPRITE_BALL, $e + 4, $b + 4, $ff, $ff, $86, ESCAPE_ROPE ; item
-	db SPRITE_BALL, $11 + 4, $9 + 4, $ff, $ff, $87, HYPER_POTION ; item
-
-	; 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
-
 RocketHideout1Blocks: ; 44d49 (11:4d49)
 	INCBIN "maps/rockethideout1.blk"
 
@@ -54845,32 +53676,8 @@
 	TX_FAR _RocketHideout2AfterBattleTxt2
 	db "@"
 
-RocketHideout2Object: ; 0x450f7 (size=80)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/rockethideout2.asm"
 
-	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 $0 ; signs
-
-	db $5 ; people
-	db SPRITE_ROCKET, $c + 4, $14 + 4, $ff, $d0, $41, ROCKET + $C8, $d ; trainer
-	db SPRITE_BALL, $b + 4, $1 + 4, $ff, $ff, $82, MOON_STONE ; item
-	db SPRITE_BALL, $8 + 4, $10 + 4, $ff, $ff, $83, NUGGET ; item
-	db SPRITE_BALL, $c + 4, $6 + 4, $ff, $ff, $84, TM_07 ; item
-	db SPRITE_BALL, $15 + 4, $3 + 4, $ff, $ff, $85, SUPER_POTION ; item
-
-	; 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
-
 RocketHideout2Blocks: ; 45147 (11:5147)
 	INCBIN "maps/rockethideout2.blk"
 
@@ -55093,25 +53900,8 @@
 	TX_FAR _RocketHide3AfterBattleText3
 	db "@"
 
-RocketHideout3Object: ; 0x4534d (size=50)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/rockethideout3.asm"
 
-	db $2 ; warps
-	db $6, $19, $1, ROCKET_HIDEOUT_2
-	db $12, $13, $0, ROCKET_HIDEOUT_4
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_ROCKET, $16 + 4, $a + 4, $ff, $d3, $41, ROCKET + $C8, $e ; trainer
-	db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d1, $42, ROCKET + $C8, $f ; trainer
-	db SPRITE_BALL, $11 + 4, $1a + 4, $ff, $ff, $83, TM_10 ; item
-	db SPRITE_BALL, $e + 4, $14 + 4, $ff, $ff, $84, RARE_CANDY ; item
-
-	; warp-to
-	EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $6, $19 ; ROCKET_HIDEOUT_2
-	EVENT_DISP ROCKET_HIDEOUT_3_WIDTH, $12, $13 ; ROCKET_HIDEOUT_4
-
 RocketHideout3Blocks: ; 4537f (11:537f)
 	INCBIN "maps/rockethideout3.blk"
 
@@ -55355,32 +54145,8 @@
 	TX_FAR _UnnamedText_455ec
 	db "@"
 
-RocketHideout4Object: ; 0x455f1 (size=95)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/rockethideout4.asm"
 
-	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 $0 ; signs
-
-	db $9 ; people
-	db SPRITE_GIOVANNI, $3 + 4, $19 + 4, $ff, $d0, $41, GIOVANNI + $C8, $1 ; trainer
-	db SPRITE_ROCKET, $c + 4, $17 + 4, $ff, $d0, $42, ROCKET + $C8, $10 ; trainer
-	db SPRITE_ROCKET, $c + 4, $1a + 4, $ff, $d0, $43, ROCKET + $C8, $11 ; trainer
-	db SPRITE_ROCKET, $2 + 4, $b + 4, $ff, $d0, $44, ROCKET + $C8, $12 ; trainer
-	db SPRITE_BALL, $c + 4, $a + 4, $ff, $ff, $85, HP_UP ; item
-	db SPRITE_BALL, $4 + 4, $9 + 4, $ff, $ff, $86, TM_02 ; item
-	db SPRITE_BALL, $14 + 4, $c + 4, $ff, $ff, $87, IRON ; item
-	db SPRITE_BALL, $2 + 4, $19 + 4, $ff, $ff, $88, SILPH_SCOPE ; item
-	db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $89, LIFT_KEY ; item
-
-	; 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
-
 RocketHideout4Blocks: ; 45650 (11:5650)
 	INCBIN "maps/rockethideout4.blk"
 
@@ -55476,22 +54242,8 @@
 	TX_FAR _UnnamedText_4578b ; 0x82438
 	db $d, "@"
 
-RocketHideoutElevatorObject: ; 0x45791 (size=23)
-	db $f ; border tile
+INCLUDE "data/mapObjects/rockethideoutelevator.asm"
 
-	db $2 ; warps
-	db $1, $2, $2, ROCKET_HIDEOUT_1
-	db $1, $3, $4, ROCKET_HIDEOUT_1
-
-	db $1 ; signs
-	db $1, $1, $1 ; RocketHideoutElevatorText1
-
-	db $0 ; people
-
-	; warp-to
-	EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $2 ; ROCKET_HIDEOUT_1
-	EVENT_DISP ROCKET_HIDEOUT_ELEVATOR_WIDTH, $1, $3 ; ROCKET_HIDEOUT_1
-
 RocketHideoutElevatorBlocks: ; 457a8 (11:57a8)
 	INCBIN "maps/rockethideoutelevator.blk"
 
@@ -55583,22 +54335,8 @@
 	call Predef
 	jp TextScriptEnd
 
-SilphCoElevatorObject: ; 0x45844 (size=23)
-	db $f ; border tile
+INCLUDE "data/mapObjects/silphcoelevator.asm"
 
-	db $2 ; warps
-	db $3, $1, $0, $ed
-	db $3, $2, $0, $ed
-
-	db $1 ; signs
-	db $0, $3, $1 ; SilphCoElevatorText1
-
-	db $0 ; people
-
-	; warp-to
-	EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $1
-	EVENT_DISP SILPH_CO_ELEVATOR_WIDTH, $3, $2
-
 SilphCoElevatorBlocks: ; 4585b (11:585b)
 	INCBIN "maps/silphcoelevator.blk"
 
@@ -55633,34 +54371,8 @@
 	TX_FAR _SafariZoneEastText7
 	db "@"
 
-SafariZoneEastObject: ; 0x4588b (size=81)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/safarizoneeast.asm"
 
-	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 $3 ; signs
-	db $a, $1a, $5 ; SafariZoneEastText5
-	db $4, $6, $6 ; SafariZoneEastText6
-	db $17, $5, $7 ; SafariZoneEastText7
-
-	db $4 ; people
-	db SPRITE_BALL, $a + 4, $15 + 4, $ff, $ff, $81, FULL_RESTORE ; item
-	db SPRITE_BALL, $7 + 4, $3 + 4, $ff, $ff, $82, MAX_POTION ; item
-	db SPRITE_BALL, $d + 4, $14 + 4, $ff, $ff, $83, CARBOS ; item
-	db SPRITE_BALL, $c + 4, $f + 4, $ff, $ff, $84, TM_37 ; item
-
-	; 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
-
 SafariZoneEastBlocks: ; 458dc (11:58dc)
 	INCBIN "maps/safarizoneeast.blk"
 
@@ -55703,42 +54415,8 @@
 	TX_FAR _SafariZoneNorthText7
 	db "@"
 
-SafariZoneNorthObject: ; 0x459d5 (size=105)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/safarizonenorth.asm"
 
-	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 $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 $2 ; people
-	db SPRITE_BALL, $1 + 4, $19 + 4, $ff, $ff, $81, PROTEIN ; item
-	db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $82, TM_40 ; item
-
-	; 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
-
 SafariZoneNorthBlocks: ; 45a3e (11:5a3e)
 	INCBIN "maps/safarizonenorth.blk"
 
@@ -55765,38 +54443,8 @@
 	TX_FAR _SafariZoneCenterText3
 	db "@"
 
-SafariZoneCenterObject: ; 0x45bc5 (size=89)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/safarizonecenter.asm"
 
-	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 $2 ; signs
-	db $14, $12, $2 ; SafariZoneCenterText2
-	db $16, $e, $3 ; SafariZoneCenterText3
-
-	db $1 ; people
-	db SPRITE_BALL, $a + 4, $e + 4, $ff, $ff, $81, NUGGET ; item
-
-	; 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
-
 SafariZoneCenterBlocks: ; 45c1e (11:5c1e)
 	INCBIN "maps/safarizonecenter.blk"
 
@@ -55822,23 +54470,8 @@
 	TX_FAR _SafariZoneRestHouse1Text2
 	db "@"
 
-SafariZoneRestHouse1Object: ; 0x45cfe (size=32)
-	db $a ; border tile
+INCLUDE "data/mapObjects/safarizoneresthouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $8, SAFARI_ZONE_CENTER
-	db $7, $3, $8, SAFARI_ZONE_CENTER
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_GIRL, $2 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_OAK_AIDE, $4 + 4, $1 + 4, $fe, $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
-
 SafariZoneRestHouse2_h: ; 0x45d1e to 0x45d2a (12 bytes) (bank=11) (id=223)
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_2_HEIGHT, SAFARI_ZONE_REST_HOUSE_2_WIDTH ; dimensions (y, x)
@@ -55867,24 +54500,8 @@
 	TX_FAR _SafariZoneRestHouse2Text3
 	db "@"
 
-SafariZoneRestHouse2Object: ; 0x45d43 (size=38)
-	db $a ; border tile
+INCLUDE "data/mapObjects/safarizoneresthouse2.asm"
 
-	db $2 ; warps
-	db $7, $2, $7, SAFARI_ZONE_WEST
-	db $7, $3, $7, SAFARI_ZONE_WEST
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_OAK_AIDE, $4 + 4, $4 + 4, $fe, $0, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $0 + 4, $ff, $d3, $2 ; person
-	db SPRITE_ERIKA, $2 + 4, $6 + 4, $ff, $d0, $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
-
 SafariZoneRestHouse3_h: ; 0x45d69 to 0x45d75 (12 bytes) (bank=11) (id=224)
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_3_HEIGHT, SAFARI_ZONE_REST_HOUSE_3_WIDTH ; dimensions (y, x)
@@ -55913,24 +54530,8 @@
 	TX_FAR _SafariZoneRestHouse3Text3
 	db "@"
 
-SafariZoneRestHouse3Object: ; 0x45d8e (size=38)
-	db $a ; border tile
+INCLUDE "data/mapObjects/safarizoneresthouse3.asm"
 
-	db $2 ; warps
-	db $7, $2, $4, SAFARI_ZONE_EAST
-	db $7, $3, $4, SAFARI_ZONE_EAST
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_OAK_AIDE, $3 + 4, $1 + 4, $fe, $1, $1 ; person
-	db SPRITE_ROCKER, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
-	db SPRITE_LAPRAS_GIVER, $2 + 4, $5 + 4, $ff, $ff, $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
-
 SafariZoneRestHouse4_h: ; 0x45db4 to 0x45dc0 (12 bytes) (bank=11) (id=225)
 	db GATE ; tileset
 	db SAFARI_ZONE_REST_HOUSE_4_HEIGHT, SAFARI_ZONE_REST_HOUSE_4_WIDTH ; dimensions (y, x)
@@ -55959,24 +54560,8 @@
 	TX_FAR _SafariZoneRestHouse4Text3
 	db "@"
 
-SafariZoneRestHouse4Object: ; 0x45dd9 (size=38)
-	db $a ; border tile
+INCLUDE "data/mapObjects/safarizoneresthouse4.asm"
 
-	db $2 ; warps
-	db $7, $2, $8, SAFARI_ZONE_NORTH
-	db $7, $3, $8, SAFARI_ZONE_NORTH
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_OAK_AIDE, $3 + 4, $6 + 4, $fe, $2, $1 ; person
-	db SPRITE_WHITE_PLAYER, $4 + 4, $3 + 4, $ff, $ff, $2 ; person
-	db SPRITE_GENTLEMAN, $5 + 4, $1 + 4, $fe, $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
-
 UnknownDungeon2_h: ; 0x45dff to 0x45e0b (12 bytes) (bank=11) (id=226)
 	db CAVERN ; tileset
 	db UNKNOWN_DUNGEON_2_HEIGHT, UNKNOWN_DUNGEON_2_WIDTH ; dimensions (y, x)
@@ -55992,32 +54577,8 @@
 	dw Predef5CText
 	dw Predef5CText
 
-UnknownDungeon2Object: ; 0x45e14 (size=73)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/unknowndungeon2.asm"
 
-	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 $0 ; signs
-
-	db $3 ; people
-	db SPRITE_BALL, $9 + 4, $1d + 4, $ff, $ff, $81, PP_UP ; item
-	db SPRITE_BALL, $f + 4, $4 + 4, $ff, $ff, $82, ULTRA_BALL ; item
-	db SPRITE_BALL, $6 + 4, $d + 4, $ff, $ff, $83, FULL_RESTORE ; item
-
-	; 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
-
 UnknownDungeon2Blocks: ; 45e5d (11:5e5d)
 	INCBIN "maps/unknowndungeon2.blk"
 
@@ -56073,22 +54634,8 @@
 	call WaitForSoundToFinish
 	jp TextScriptEnd
 
-UnknownDungeon3Object: ; 0x45f36 (size=34)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/unknowndungeon3.asm"
 
-	db $1 ; warps
-	db $6, $3, $8, UNKNOWN_DUNGEON_1
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_SLOWBRO, $d + 4, $1b + 4, $ff, $d0, $41, MEWTWO, 70 ; trainer
-	db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $82, ULTRA_BALL ; item
-	db SPRITE_BALL, $1 + 4, $12 + 4, $ff, $ff, $83, MAX_REVIVE ; item
-
-	; warp-to
-	EVENT_DISP UNKNOWN_DUNGEON_3_WIDTH, $6, $3 ; UNKNOWN_DUNGEON_1
-
 UnknownDungeon3Blocks: ; 45f58 (11:5f58)
 	INCBIN "maps/unknowndungeon3.blk"
 
@@ -56342,33 +54889,8 @@
 	TX_FAR _RockTunnel2AfterBattleText9
 	db "@"
 
-RockTunnel2Object: ; 0x4613d (size=100)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/rocktunnel2.asm"
 
-	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 $0 ; signs
-
-	db $8 ; people
-	db SPRITE_LASS, $d + 4, $b + 4, $ff, $d0, $41, JR__TRAINER_F + $C8, $9 ; trainer
-	db SPRITE_HIKER, $a + 4, $6 + 4, $ff, $d0, $42, HIKER + $C8, $9 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $3 + 4, $ff, $d0, $43, POKEMANIAC + $C8, $3 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $15 + 4, $14 + 4, $ff, $d3, $44, POKEMANIAC + $C8, $4 ; trainer
-	db SPRITE_HIKER, $a + 4, $1e + 4, $ff, $d0, $45, HIKER + $C8, $a ; trainer
-	db SPRITE_LASS, $1c + 4, $e + 4, $ff, $d3, $46, JR__TRAINER_F + $C8, $a ; trainer
-	db SPRITE_HIKER, $5 + 4, $21 + 4, $ff, $d3, $47, HIKER + $C8, $b ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $1e + 4, $1a + 4, $ff, $d0, $48, POKEMANIAC + $C8, $5 ; trainer
-
-	; 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
-
 RockTunnel2Blocks: ; 461a1 (11:61a1)
 	INCBIN "maps/rocktunnel2.blk"
 
@@ -56428,33 +54950,8 @@
 	dw BoulderText
 	dw BoulderText
 
-SeafoamIslands2Object: ; 0x46376 (size=72)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/seafoamislands2.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BOULDER, $6 + 4, $11 + 4, $ff, $10, $1 ; person
-	db SPRITE_BOULDER, $6 + 4, $16 + 4, $ff, $10, $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
-
 SeafoamIslands2Blocks: ; 463be (11:63be)
 	INCBIN "maps/seafoamislands2.blk"
 
@@ -56514,33 +55011,8 @@
 	dw BoulderText
 	dw BoulderText
 
-SeafoamIslands3Object: ; 0x464b2 (size=72)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/seafoamislands3.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BOULDER, $6 + 4, $12 + 4, $ff, $10, $1 ; person
-	db SPRITE_BOULDER, $6 + 4, $17 + 4, $ff, $10, $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
-
 SeafoamIslands3Blocks: ; 464fa (11:64fa)
 	INCBIN "maps/seafoamislands3.blk"
 
@@ -56700,37 +55172,8 @@
 	dw BoulderText
 	dw BoulderText
 
-SeafoamIslands4Object: ; 0x466a6 (size=96)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/seafoamislands4.asm"
 
-	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 $0 ; signs
-
-	db $6 ; people
-	db SPRITE_BOULDER, $e + 4, $5 + 4, $ff, $10, $1 ; person
-	db SPRITE_BOULDER, $f + 4, $3 + 4, $ff, $10, $2 ; person
-	db SPRITE_BOULDER, $e + 4, $8 + 4, $ff, $10, $3 ; person
-	db SPRITE_BOULDER, $e + 4, $9 + 4, $ff, $10, $4 ; person
-	db SPRITE_BOULDER, $6 + 4, $12 + 4, $ff, $ff, $5 ; person
-	db SPRITE_BOULDER, $6 + 4, $13 + 4, $ff, $ff, $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
-
 SeafoamIslands4Blocks: ; 46706 (11:6706)
 	INCBIN "maps/seafoamislands4.blk"
 
@@ -56920,30 +55363,8 @@
 	TX_FAR _SeafoamIslands5Text5
 	db "@"
 
-SeafoamIslands5Object: ; 0x468bc (size=62)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/seafoamislands5.asm"
 
-	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 $2 ; signs
-	db $f, $9, $4 ; SeafoamIslands5Text4
-	db $1, $17, $5 ; SeafoamIslands5Text5
-
-	db $3 ; people
-	db SPRITE_BOULDER, $f + 4, $4 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BIRD, $1 + 4, $6 + 4, $ff, $d0, $43, ARTICUNO, 50 ; trainer
-
-	; 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
-
 SeafoamIslands5Blocks: ; 468fa (11:68fa)
 	INCBIN "maps/seafoamislands5.blk"
 
@@ -57088,28 +55509,8 @@
 	EAST_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 1, SAFFRON_CITY_HEIGHT - 3, SaffronCityBlocks, ROUTE_7_WIDTH
 	dw Route7Object ; objects
 
-Route7Object: ; 0x48022 (size=47)
-	db $f ; border tile
+INCLUDE "data/mapObjects/route7.asm"
 
-	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 $1 ; signs
-	db $d, $3, $1 ; Route7Text1
-
-	db $0 ; people
-
-	; 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
-
 Route7Blocks: ; 48051 (12:4051)
 	INCBIN "maps/route7.blk"
 
@@ -57282,25 +55683,8 @@
 	TX_FAR _TVWrongSideText
 	db "@"
 
-RedsHouse1FObject: ; 481e4 (12:41e4)
-	db $0A ; border tile
+INCLUDE "data/mapObjects/redshouse1f.asm"
 
-	db 3 ; warps
-	db 7,2,0,$FF ; exit1
-	db 7,3,0,$FF ; exit2
-	db 1,7,0,$26 ; staircase
-
-	db 1 ; signs
-	db 1,3,2 ; TV
-
-	db 1 ; people
-	db $33,4+4,5+4,$FF,$D2,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
-
 RedsHouse1FBlocks: ; 48209 (12:4209)
 	INCBIN "maps/redshouse1f.blk"
 
@@ -57421,40 +55805,8 @@
 	TX_FAR _CeladonMart3Text15
 	db "@"
 
-CeladonMart3Object: ; 0x482c4 (size=94)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmart3.asm"
 
-	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 $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 $5 ; people
-	db SPRITE_MART_GUY, $5 + 4, $10 + 4, $ff, $ff, $1 ; person
-	db SPRITE_GAMEBOY_KID_COPY, $6 + 4, $b + 4, $ff, $d3, $2 ; person
-	db SPRITE_GAMEBOY_KID_COPY, $2 + 4, $7 + 4, $ff, $d0, $3 ; person
-	db SPRITE_GAMEBOY_KID_COPY, $2 + 4, $8 + 4, $ff, $d0, $4 ; person
-	db SPRITE_YOUNG_BOY, $5 + 4, $2 + 4, $ff, $d1, $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
-
 CeladonMart3Blocks: ; 48322 (12:4322)
 	INCBIN "maps/celadonmart3.blk"
 
@@ -57486,27 +55838,8 @@
 	TX_FAR _CeladonMart4Text4
 	db "@"
 
-CeladonMart4Object: ; 0x48370 (size=49)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmart4.asm"
 
-	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 $1 ; signs
-	db $1, $e, $4 ; CeladonMart4Text4
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $7 + 4, $5 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $f + 4, $fe, $2, $2 ; person
-	db SPRITE_BUG_CATCHER, $2 + 4, $5 + 4, $fe, $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
-
 CeladonMart4Blocks: ; 483a1 (12:43a1)
 	INCBIN "maps/celadonmart4.blk"
 
@@ -57781,25 +56114,8 @@
 	TX_FAR _CeladonMartRoofText6
 	db "@"
 
-CeladonMartRoofObject: ; 0x485a8 (size=36)
-	db $42 ; border tile
+INCLUDE "data/mapObjects/celadonmartroof.asm"
 
-	db $1 ; warps
-	db $2, $f, $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 $2 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $a + 4, $ff, $d2, $1 ; person
-	db SPRITE_LITTLE_GIRL, $5 + 4, $5 + 4, $fe, $0, $2 ; person
-
-	; warp-to
-	EVENT_DISP CELADON_MART_ROOF_WIDTH, $2, $f ; CELADON_MART_5
-
 CeladonMartRoofBlocks: ; 485cc (12:45cc)
 	INCBIN "maps/celadonmartroof.blk"
 
@@ -57882,22 +56198,8 @@
 	call Predef
 	jp TextScriptEnd
 
-CeladonMartElevatorObject: ; 0x4866d (size=23)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmartelevator.asm"
 
-	db $2 ; warps
-	db $3, $1, $5, CELADON_MART_1
-	db $3, $2, $5, CELADON_MART_1
-
-	db $1 ; signs
-	db $0, $3, $1 ; CeladonMartElevatorText1
-
-	db $0 ; people
-
-	; warp-to
-	EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $1 ; CELADON_MART_1
-	EVENT_DISP CELADON_MART_ELEVATOR_WIDTH, $3, $2 ; CELADON_MART_1
-
 CeladonMartElevatorBlocks: ; 48684 (12:4684)
 	INCBIN "maps/celadonmartelevator.blk"
 
@@ -57948,32 +56250,8 @@
 	TX_FAR _CeladonMansion1Text5
 	db "@"
 
-CeladonMansion1Object: ; 0x486cf (size=71)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmansion1.asm"
 
-	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 $1 ; signs
-	db $9, $4, $5 ; CeladonMansion1Text5
-
-	db $4 ; people
-	db SPRITE_SLOWBRO, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_OLD_MEDIUM_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $2 ; person
-	db SPRITE_CLEFAIRY, $8 + 4, $1 + 4, $fe, $2, $3 ; person
-	db SPRITE_SLOWBRO, $4 + 4, $4 + 4, $fe, $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
-
 CeladonMansion1Blocks: ; 48716 (12:4716)
 	INCBIN "maps/celadonmansion1.blk"
 
@@ -57995,26 +56273,8 @@
 	TX_FAR _CeladonMansion2Text1
 	db "@"
 
-CeladonMansion2Object: ; 0x48745 (size=39)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmansion2.asm"
 
-	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 $1 ; signs
-	db $9, $4, $1 ; CeladonMansion2Text1
-
-	db $0 ; people
-
-	; 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
-
 CeladonMansion2Blocks: ; 4876c (12:476c)
 	INCBIN "maps/celadonmansion2.blk"
 
@@ -58099,33 +56359,8 @@
 	TX_FAR _CeladonMansion3Text8
 	db "@"
 
-CeladonMansion3Object: ; 0x487ff (size=72)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmansion3.asm"
 
-	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 ; signs
-	db $3, $1, $5 ; CeladonMansion3Text5
-	db $3, $4, $6 ; CeladonMansion3Text6
-	db $6, $1, $7 ; CeladonMansion3Text7
-	db $9, $4, $8 ; CeladonMansion3Text8
-
-	db $4 ; people
-	db SPRITE_BIKE_SHOP_GUY, $4 + 4, $0 + 4, $ff, $d1, $1 ; person
-	db SPRITE_MART_GUY, $4 + 4, $3 + 4, $ff, $d1, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $7 + 4, $0 + 4, $ff, $d1, $3 ; person
-	db SPRITE_LAPRAS_GIVER, $3 + 4, $2 + 4, $ff, $ff, $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
-
 CeladonMansion3Blocks: ; 48847 (12:4847)
 	INCBIN "maps/celadonmansion3.blk"
 
@@ -58146,24 +56381,8 @@
 	TX_FAR _CeladonMansion4Text1
 	db "@"
 
-CeladonMansion4Object: ; 0x48875 (size=31)
-	db $9 ; border tile
+INCLUDE "data/mapObjects/celadonmansion4.asm"
 
-	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 $1 ; signs
-	db $7, $3, $1 ; CeladonMansion4Text1
-
-	db $0 ; people
-
-	; 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
-
 CeladonMansion4Blocks: ; 48894 (12:4894)
 	INCBIN "maps/celadonmansion4.blk"
 
@@ -58198,25 +56417,8 @@
 	TX_FAR _CeladonPokecenterText3
 	db "@"
 
-CeladonPokecenterObject: ; 0x488d2 (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/celadonpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $5, $ff
-	db $7, $4, $5, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $fe, $2, $2 ; person
-	db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $fe, $0, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP CELADON_POKECENTER_WIDTH, $7, $4
-
 CeladonGym_h: ; 0x488fe to 0x4890a (12 bytes) (bank=12) (id=134)
 	db GYM ; tileset
 	db CELADON_GYM_HEIGHT, CELADON_GYM_WIDTH ; dimensions (y, x)
@@ -58569,29 +56771,8 @@
 	TX_FAR _CeladonGymAfterBattleText8
 	db "@"
 
-CeladonGymObject: ; 0x48b30 (size=84)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/celadongym.asm"
 
-	db $2 ; warps
-	db $11, $4, $6, $ff
-	db $11, $5, $6, $ff
-
-	db $0 ; signs
-
-	db $8 ; people
-	db SPRITE_ERIKA, $3 + 4, $4 + 4, $ff, $d0, $41, ERIKA + $C8, $1 ; trainer
-	db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d3, $42, LASS + $C8, $11 ; trainer
-	db SPRITE_FOULARD_WOMAN, $a + 4, $7 + 4, $ff, $d2, $43, BEAUTY + $C8, $1 ; trainer
-	db SPRITE_LASS, $5 + 4, $9 + 4, $ff, $d0, $44, JR__TRAINER_F + $C8, $b ; trainer
-	db SPRITE_FOULARD_WOMAN, $5 + 4, $1 + 4, $ff, $d0, $45, BEAUTY + $C8, $2 ; trainer
-	db SPRITE_LASS, $3 + 4, $6 + 4, $ff, $d0, $46, LASS + $C8, $12 ; trainer
-	db SPRITE_FOULARD_WOMAN, $3 + 4, $3 + 4, $ff, $d0, $47, BEAUTY + $C8, $3 ; trainer
-	db SPRITE_LASS, $3 + 4, $5 + 4, $ff, $d0, $48, COOLTRAINER_F + $C8, $1 ; trainer
-
-	; warp-to
-	EVENT_DISP CELADON_GYM_WIDTH, $11, $4
-	EVENT_DISP CELADON_GYM_WIDTH, $11, $5
-
 CeladonGymBlocks: ; 48b84 (12:4b84)
 	INCBIN "maps/celadongym.blk"
 
@@ -59139,35 +57320,8 @@
 	ld [$ffa1], a
 	jp HasEnoughCoins
 
-CeladonGameCornerObject: ; 0x48fa0 (size=99)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadongamecorner.asm"
 
-	db $3 ; warps
-	db $11, $f, $7, $ff
-	db $11, $10, $7, $ff
-	db $4, $11, $1, ROCKET_HIDEOUT_1
-
-	db $1 ; signs
-	db $4, $9, $c ; CeladonGameCornerText12
-
-	db $b ; people
-	db SPRITE_FOULARD_WOMAN, $6 + 4, $2 + 4, $ff, $d0, $1 ; person
-	db SPRITE_MART_GUY, $6 + 4, $5 + 4, $ff, $d0, $2 ; person
-	db SPRITE_FAT_BALD_GUY, $a + 4, $2 + 4, $ff, $d2, $3 ; person
-	db SPRITE_FOULARD_WOMAN, $d + 4, $2 + 4, $ff, $d2, $4 ; person
-	db SPRITE_FISHER, $b + 4, $5 + 4, $ff, $d3, $5 ; person
-	db SPRITE_MOM_GEISHA, $b + 4, $8 + 4, $ff, $d2, $6 ; person
-	db SPRITE_GYM_HELPER, $e + 4, $8 + 4, $ff, $d2, $7 ; person
-	db SPRITE_GAMBLER, $f + 4, $b + 4, $ff, $d3, $8 ; person
-	db SPRITE_MART_GUY, $b + 4, $e + 4, $ff, $d2, $9 ; person
-	db SPRITE_GENTLEMAN, $d + 4, $11 + 4, $ff, $d3, $a ; person
-	db SPRITE_ROCKET, $5 + 4, $9 + 4, $ff, $d1, $4b, ROCKET + $C8, $7 ; trainer
-
-	; 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
-
 CeladonGameCornerBlocks: ; 49003 (12:5003)
 	INCBIN "maps/celadongamecorner.blk"
 
@@ -59200,28 +57354,8 @@
 	TX_FAR _CeladonMart5Text5
 	db "@"
 
-CeladonMart5Object: ; 0x49085 (size=55)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmart5.asm"
 
-	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 $1 ; signs
-	db $1, $e, $5 ; CeladonMart5Text5
-
-	db $4 ; people
-	db SPRITE_GENTLEMAN, $5 + 4, $e + 4, $fe, $1, $1 ; person
-	db SPRITE_SAILOR, $6 + 4, $2 + 4, $ff, $ff, $2 ; person
-	db SPRITE_MART_GUY, $3 + 4, $5 + 4, $ff, $d0, $3 ; person
-	db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $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
-
 CeladonMart5Blocks: ; 490bc (12:50bc)
 	INCBIN "maps/celadonmart5.blk"
 
@@ -59253,26 +57387,8 @@
 CeladonPrizeRoomText3: ; 49107 (12:5107)
 	db $f7
 
-CeladonPrizeRoomObject: ; 0x49108 (size=41)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonprizeroom.asm"
 
-	db $2 ; warps
-	db $7, $4, $9, $ff
-	db $7, $5, $9, $ff
-
-	db $3 ; signs
-	db $2, $2, $3 ; CeladonPrizeRoomText3
-	db $2, $4, $4 ; CeladonPrizeRoomText4
-	db $2, $6, $5 ; CeladonPrizeRoomText5
-
-	db $2 ; people
-	db SPRITE_BALDING_GUY, $4 + 4, $1 + 4, $ff, $ff, $1 ; person
-	db SPRITE_GAMBLER, $3 + 4, $7 + 4, $fe, $2, $2 ; person
-
-	; warp-to
-	EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $4
-	EVENT_DISP CELADON_PRIZE_ROOM_WIDTH, $7, $5
-
 CeladonPrizeRoomBlocks: ; 49131 (12:5131)
 	INCBIN "maps/celadonprizeroom.blk"
 
@@ -59351,26 +57467,8 @@
 	TX_FAR _UnnamedText_491b7
 	db "@"
 
-CeladonDinerObject: ; 0x491bc (size=50)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadondiner.asm"
 
-	db $2 ; warps
-	db $7, $3, $a, $ff
-	db $7, $4, $a, $ff
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_COOK, $5 + 4, $8 + 4, $fe, $2, $1 ; person
-	db SPRITE_MOM_GEISHA, $2 + 4, $7 + 4, $ff, $ff, $2 ; person
-	db SPRITE_FAT_BALD_GUY, $4 + 4, $1 + 4, $ff, $d0, $3 ; person
-	db SPRITE_FISHER2, $3 + 4, $5 + 4, $ff, $d3, $4 ; person
-	db SPRITE_GYM_HELPER, $1 + 4, $0 + 4, $ff, $d0, $5 ; person
-
-	; warp-to
-	EVENT_DISP CELADON_DINER_WIDTH, $7, $3
-	EVENT_DISP CELADON_DINER_WIDTH, $7, $4
-
 CeladonDinerBlocks: ; 491ee (12:51ee)
 	INCBIN "maps/celadondiner.blk"
 
@@ -59402,24 +57500,8 @@
 	TX_FAR _CeladonHouseText3
 	db "@"
 
-CeladonHouseObject: ; 0x49227 (size=38)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonhouse.asm"
 
-	db $2 ; warps
-	db $7, $2, $b, $ff
-	db $7, $3, $b, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_OLD_PERSON, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
-	db SPRITE_ROCKET, $4 + 4, $1 + 4, $fe, $0, $2 ; person
-	db SPRITE_SAILOR, $6 + 4, $5 + 4, $ff, $d2, $3 ; person
-
-	; warp-to
-	EVENT_DISP CELADON_HOUSE_WIDTH, $7, $2
-	EVENT_DISP CELADON_HOUSE_WIDTH, $7, $3
-
 CeladonHouseBlocks: ; 4924d (12:524d)
 	INCBIN "maps/celadonhouse.blk"
 
@@ -59450,24 +57532,8 @@
 	TX_FAR _CeladonHotelText3
 	db "@"
 
-CeladonHotelObject: ; 0x49281 (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/celadonhotel.asm"
 
-	db $2 ; warps
-	db $7, $3, $c, $ff
-	db $7, $4, $c, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_OLD_MEDIUM_WOMAN, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_FOULARD_WOMAN, $4 + 4, $2 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $8 + 4, $fe, $2, $3 ; person
-
-	; warp-to
-	EVENT_DISP CELADON_HOTEL_WIDTH, $7, $3
-	EVENT_DISP CELADON_HOTEL_WIDTH, $7, $4
-
 CeladonHotelBlocks: ; 492a7 (12:52a7)
 	INCBIN "maps/celadonhotel.blk"
 
@@ -59576,27 +57642,8 @@
 MtMoonPokecenterText6: ; 49375 (12:5375)
 	db $f6
 
-MtMoonPokecenterObject: ; 0x49376 (size=56)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/mtmoonpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $6 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_BUG_CATCHER, $3 + 4, $4 + 4, $ff, $d1, $2 ; person
-	db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $ff, $d1, $3 ; person
-	db SPRITE_FAT_BALD_GUY, $6 + 4, $a + 4, $fe, $2, $4 ; person
-	db SPRITE_CLIPBOARD, $2 + 4, $7 + 4, $ff, $ff, $5 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $6 ; person
-
-	; warp-to
-	EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $4
-
 RockTunnelPokecenter_h: ; 0x493ae to 0x493ba (12 bytes) (id=81)
 	db POKECENTER ; tileset
 	db ROCK_TUNNEL_POKECENTER_HEIGHT, ROCK_TUNNEL_POKECENTER_WIDTH ; dimensions (y, x)
@@ -59628,25 +57675,8 @@
 RockTunnelPokecenterText4: ; 493d3 (12:53d3)
 	db $f6
 
-RockTunnelPokecenterObject: ; 0x493d4 (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/rocktunnelpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GENTLEMAN, $3 + 4, $7 + 4, $fe, $2, $2 ; person
-	db SPRITE_FISHER2, $5 + 4, $2 + 4, $ff, $ff, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $4
-
 Route11Gate_h: ; 0x49400 to 0x4940c (12 bytes) (id=84)
 	db GATE ; tileset
 	db ROUTE_11_GATE_1F_HEIGHT, ROUTE_11_GATE_1F_WIDTH ; dimensions (y, x)
@@ -59664,28 +57694,8 @@
 	TX_FAR _Route11GateText1
 	db "@"
 
-Route11GateObject: ; 0x49416 (size=50)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route11gate.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $ff, $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
-
 Route11GateUpstairs_h: ; 0x49448 to 0x49454 (12 bytes) (id=86)
 	db GATE ; tileset
 	db ROUTE_11_GATE_2F_HEIGHT, ROUTE_11_GATE_2F_WIDTH ; dimensions (y, x)
@@ -59775,23 +57785,8 @@
 	TX_FAR _UnnamedText_494d5
 	db "@"
 
-Route11GateUpstairsObject: ; 0x494da (size=30)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route11gateupstairs.asm"
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_11_GATE_1F
-
-	db $2 ; signs
-	db $2, $1, $3 ; Route11GateUpstairsText3
-	db $2, $6, $4 ; Route11GateUpstairsText4
-
-	db $2 ; people
-	db SPRITE_BUG_CATCHER, $2 + 4, $4 + 4, $fe, $2, $1 ; person
-	db SPRITE_OAK_AIDE, $6 + 4, $2 + 4, $ff, $ff, $2 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_11_GATE_2F_WIDTH, $7, $7 ; ROUTE_11_GATE_1F
-
 Route12Gate_h: ; 0x494f8 to 0x49504 (12 bytes) (id=87)
 	db GATE ; tileset
 	db ROUTE_12_GATE_1F_HEIGHT, ROUTE_12_GATE_1F_WIDTH ; dimensions (y, x)
@@ -59809,28 +57804,8 @@
 	TX_FAR _Route12GateText1
 	db "@"
 
-Route12GateObject: ; 0x4950e (size=50)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route12gate.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $3 + 4, $1 + 4, $ff, $ff, $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
-
 Route12GateBlocks: ; 49540 (12:5540)
 	INCBIN "maps/route12gate.blk"
 
@@ -59921,22 +57896,8 @@
 	ld [$cc3c], a
 	jp TextScriptEnd
 
-Route12GateUpstairsObject: ; 0x495de (size=24)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route12gateupstairs.asm"
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_12_GATE_1F
-
-	db $2 ; signs
-	db $2, $1, $2 ; Route12GateUpstairsText2
-	db $2, $6, $3 ; Route12GateUpstairsText3
-
-	db $1 ; people
-	db SPRITE_BRUNETTE_GIRL, $4 + 4, $3 + 4, $fe, $1, $1 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_12_GATE_2F_WIDTH, $7, $7 ; ROUTE_12_GATE_1F
-
 Route15Gate_h: ; 0x495f6 to 0x49602 (12 bytes) (id=184)
 	db GATE ; tileset
 	db ROUTE_15_GATE_1F_HEIGHT, ROUTE_15_GATE_1F_WIDTH ; dimensions (y, x)
@@ -59954,28 +57915,8 @@
 	TX_FAR _Route15GateText1
 	db "@"
 
-Route15GateObject: ; 0x4960c (size=50)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route15gate.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $ff, $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
-
 Route15GateUpstairs_h: ; 4963e (12:563e)
 	db GATE ; tileset
 	db ROUTE_15_GATE_2F_HEIGHT, ROUTE_15_GATE_2F_WIDTH ; dimensions (y, x)
@@ -60031,21 +57972,8 @@
 	TX_FAR _UnnamedText_49698
 	db "@"
 
-Route15GateUpstairsObject: ; 4969d (12:569d)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route15gateupstairs.asm"
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_15_GATE_1F
-
-	db $1 ; signs
-	db $2, $6, $2 ; Route15GateUpstairsText2
-
-	db $1 ; people
-	db SPRITE_OAK_AIDE, $2 + 4, $4 + 4, $ff, $d0, $1
-
-	; warp-to
-	EVENT_DISP ROUTE_15_GATE_2F_WIDTH, $7, $7 ; ROUTE_15_GATE_1F
-
 Route16Gate_h: ; 0x496b2 to 0x496be (12 bytes) (id=186)
 	db GATE ; tileset
 	db ROUTE_16_GATE_1F_HEIGHT, ROUTE_16_GATE_1F_WIDTH ; dimensions (y, x)
@@ -60175,37 +58103,8 @@
 	TX_FAR _Route16GateText2
 	db "@"
 
-Route16GateObject: ; 0x4978b (size=88)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route16gate.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_GUARD, $5 + 4, $4 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GAMBLER, $3 + 4, $4 + 4, $ff, $ff, $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
-
 Route16GateBlocks: ; 497e3 (12:57e3)
 	INCBIN "maps/route16gate.blk"
 
@@ -60263,23 +58162,8 @@
 	TX_FAR _UnnamedText_49847
 	db "@"
 
-Route16GateUpstairsObject: ; 0x4984c (size=30)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route16gateupstairs.asm"
 
-	db $1 ; warps
-	db $7, $7, $8, ROUTE_16_GATE_1F
-
-	db $2 ; signs
-	db $2, $1, $3 ; Route16GateUpstairsText3
-	db $2, $6, $4 ; Route16GateUpstairsText4
-
-	db $2 ; people
-	db SPRITE_YOUNG_BOY, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
-	db SPRITE_LITTLE_GIRL, $5 + 4, $2 + 4, $fe, $2, $2 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_16_GATE_2F_WIDTH, $7, $7 ; ROUTE_16_GATE_1F
-
 Route18Gate_h: ; 0x4986a to 0x49876 (12 bytes) (id=190)
 	db GATE ; tileset
 	db ROUTE_18_GATE_1F_HEIGHT, ROUTE_18_GATE_1F_WIDTH ; dimensions (y, x)
@@ -60400,28 +58284,8 @@
 	TX_FAR _UnnamedText_49932
 	db "@"
 
-Route18GateObject: ; 0x49937 (size=50)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route18gate.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GUARD, $1 + 4, $4 + 4, $ff, $d0, $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
-
 Route18GateUpstairs_h: ; 0x49969 to 0x49975 (12 bytes) (id=191)
 	db GATE ; tileset
 	db ROUTE_18_GATE_2F_HEIGHT, ROUTE_18_GATE_2F_WIDTH ; dimensions (y, x)
@@ -60463,22 +58327,8 @@
 	TX_FAR _UnnamedText_4999f
 	db "@"
 
-Route18GateUpstairsObject: ; 0x499a4 (size=24)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route18gateupstairs.asm"
 
-	db $1 ; warps
-	db $7, $7, $4, ROUTE_18_GATE_1F
-
-	db $2 ; signs
-	db $2, $1, $2 ; Route18GateUpstairsText2
-	db $2, $6, $3 ; Route18GateUpstairsText3
-
-	db $1 ; people
-	db SPRITE_BUG_CATCHER, $2 + 4, $4 + 4, $fe, $2, $1 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_18_GATE_2F_WIDTH, $7, $7 ; ROUTE_18_GATE_1F
-
 MtMoon1_h: ; 0x499bc to 0x499c8 (12 bytes) (id=59)
 	db CAVERN ; tileset
 	db MT_MOON_1_HEIGHT, MT_MOON_1_WIDTH ; dimensions (y, x)
@@ -60712,41 +58562,8 @@
 	TX_FAR _MtMoon1Text14
 	db "@"
 
-MtMoon1Object: ; 0x49b06 (size=145)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/mtmoon1.asm"
 
-	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 $1 ; signs
-	db $17, $f, $e ; MtMoon1Text14
-
-	db $d ; people
-	db SPRITE_HIKER, $6 + 4, $5 + 4, $ff, $d0, $41, HIKER + $C8, $1 ; trainer
-	db SPRITE_BUG_CATCHER, $10 + 4, $c + 4, $ff, $d3, $42, YOUNGSTER + $C8, $3 ; trainer
-	db SPRITE_LASS, $4 + 4, $1e + 4, $ff, $d0, $43, LASS + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $1f + 4, $18 + 4, $ff, $d1, $44, SUPER_NERD + $C8, $1 ; trainer
-	db SPRITE_LASS, $17 + 4, $10 + 4, $ff, $d0, $45, LASS + $C8, $6 ; trainer
-	db SPRITE_BUG_CATCHER, $16 + 4, $7 + 4, $ff, $d0, $46, BUG_CATCHER + $C8, $7 ; trainer
-	db SPRITE_BUG_CATCHER, $1b + 4, $1e + 4, $ff, $d3, $47, BUG_CATCHER + $C8, $8 ; trainer
-	db SPRITE_BALL, $14 + 4, $2 + 4, $ff, $ff, $88, POTION ; item
-	db SPRITE_BALL, $2 + 4, $2 + 4, $ff, $ff, $89, MOON_STONE ; item
-	db SPRITE_BALL, $1f + 4, $23 + 4, $ff, $ff, $8a, RARE_CANDY ; item
-	db SPRITE_BALL, $17 + 4, $24 + 4, $ff, $ff, $8b, ESCAPE_ROPE ; item
-	db SPRITE_BALL, $21 + 4, $14 + 4, $ff, $ff, $8c, POTION ; item
-	db SPRITE_BALL, $20 + 4, $5 + 4, $ff, $ff, $8d, TM_12 ; item
-
-	; 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
-
 MtMoon1Blocks: ; 49b97 (12:5b97)
 	INCBIN "maps/mtmoon1.blk"
 
@@ -61172,34 +58989,8 @@
 	TX_FAR _MtMoon3AfterBattleText5
 	db "@"
 
-MtMoon3Object: ; 0x49fdb (size=102)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/mtmoon3.asm"
 
-	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 $0 ; signs
-
-	db $9 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $c + 4, $ff, $d3, $41, SUPER_NERD + $C8, $2 ; trainer
-	db SPRITE_ROCKET, $10 + 4, $b + 4, $ff, $d0, $42, ROCKET + $C8, $1 ; trainer
-	db SPRITE_ROCKET, $16 + 4, $f + 4, $ff, $d0, $43, ROCKET + $C8, $2 ; trainer
-	db SPRITE_ROCKET, $b + 4, $1d + 4, $ff, $d1, $44, ROCKET + $C8, $3 ; trainer
-	db SPRITE_ROCKET, $11 + 4, $1d + 4, $ff, $d2, $45, ROCKET + $C8, $4 ; trainer
-	db SPRITE_OMANYTE, $6 + 4, $c + 4, $ff, $ff, $6 ; person
-	db SPRITE_OMANYTE, $6 + 4, $d + 4, $ff, $ff, $7 ; person
-	db SPRITE_BALL, $15 + 4, $19 + 4, $ff, $ff, $88, HP_UP ; item
-	db SPRITE_BALL, $5 + 4, $1d + 4, $ff, $ff, $89, TM_01 ; item
-
-	; 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
-
 MtMoon3Blocks: ; 4a041 (12:6041)
 	INCBIN "maps/mtmoon3.blk"
 
@@ -61239,41 +59030,8 @@
 	TX_FAR _SafariZoneWestText8
 	db "@"
 
-SafariZoneWestObject: ; 0x4a1dc (size=108)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/safarizonewest.asm"
 
-	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 $4 ; signs
-	db $c, $c, $5 ; SafariZoneWestText5
-	db $3, $11, $6 ; SafariZoneWestText6
-	db $4, $1a, $7 ; SafariZoneWestText7
-	db $16, $18, $8 ; SafariZoneWestText8
-
-	db $4 ; people
-	db SPRITE_BALL, $14 + 4, $8 + 4, $ff, $ff, $81, MAX_POTION ; item
-	db SPRITE_BALL, $7 + 4, $9 + 4, $ff, $ff, $82, TM_32 ; item
-	db SPRITE_BALL, $12 + 4, $12 + 4, $ff, $ff, $83, MAX_REVIVE ; item
-	db SPRITE_BALL, $7 + 4, $13 + 4, $ff, $ff, $84, GOLD_TEETH ; item
-
-	; 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
-
 SafariZoneWestBlocks: ; 4a248 (12:6248)
 	INCBIN "maps/safarizonewest.blk"
 
@@ -61331,22 +59089,8 @@
 	TX_FAR _HM03NoRoomText
 	db "@"
 
-SafariZoneSecretHouseObject: ; 0x4a365 (size=26)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/safarizonesecrethouse.asm"
 
-	db $2 ; warps
-	db $7, $2, $6, SAFARI_ZONE_WEST
-	db $7, $3, $6, SAFARI_ZONE_WEST
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FISHER, $3 + 4, $3 + 4, $ff, $d0, $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
-
 SafariZoneSecretHouseBlocks: ; 4a37f (12:637f)
 	INCBIN "maps/safarizonesecrethouse.blk"
 
@@ -61492,16 +59236,8 @@
 	TX_FAR _BattleCenterMText1
 	db "@"
 
-BattleCenterMObject: ; 0x4fd53 (size=10)
-	db $e ; border tile
+INCLUDE "data/mapObjects/battlecenterm.asm"
 
-	db $0 ; warps
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
-
 BattleCenterMBlocks: ; 4fd5d (13:7d5d)
 	INCBIN "maps/battlecenterm.blk"
 
@@ -61522,16 +59258,8 @@
 	TX_FAR _TradeCenterMText1
 	db "@"
 
-TradeCenterMObject: ; 0x4fd87 (size=10)
-	db $e ; border tile
+INCLUDE "data/mapObjects/tradecenterm.asm"
 
-	db $0 ; warps
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_RED, $2 + 4, $2 + 4, $ff, $0, $1 ; person
-
 TradeCenterMBlocks: ; 4fd91 (13:7d91)
 	INCBIN "maps/tradecenterm.blk"
 
@@ -61812,22 +59540,8 @@
 	EAST_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, -3, 1, VIRIDIAN_CITY_HEIGHT - 3, ViridianCityBlocks, ROUTE_22_WIDTH
 	dw Route22Object ; objects
 
-Route22Object: ; 0x50022 (size=27)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route22.asm"
 
-	db $1 ; warps
-	db $5, $8, $0, ROUTE_22_GATE
-
-	db $1 ; signs
-	db $b, $7, $3 ; Route22Text3
-
-	db $2 ; people
-	db SPRITE_BLUE, $5 + 4, $19 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BLUE, $5 + 4, $19 + 4, $ff, $ff, $2 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_22_WIDTH, $5, $8 ; ROUTE_22_GATE
-
 Route22Blocks: ; 5003d (14:403d)
 	INCBIN "maps/route22.blk"
 
@@ -61840,33 +59554,8 @@
 	EAST_MAP_CONNECTION ROUTE_19, ROUTE_19_WIDTH, -3, 15, ROUTE_19_HEIGHT - 15, Route19Blocks, ROUTE_20_WIDTH
 	dw Route20Object ; objects
 
-Route20Object: ; 0x50113 (size=106)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route20.asm"
 
-	db $2 ; warps
-	db $5, $30, $0, SEAFOAM_ISLANDS_1
-	db $9, $3a, $2, SEAFOAM_ISLANDS_1
-
-	db $2 ; signs
-	db $7, $33, $b ; Route20Text11
-	db $b, $39, $c ; Route20Text12
-
-	db $a ; people
-	db SPRITE_SWIMMER, $8 + 4, $57 + 4, $ff, $d1, $41, SWIMMER + $C8, $9 ; trainer
-	db SPRITE_SWIMMER, $b + 4, $44 + 4, $ff, $d1, $42, BEAUTY + $C8, $f ; trainer
-	db SPRITE_SWIMMER, $a + 4, $2d + 4, $ff, $d0, $43, BEAUTY + $C8, $6 ; trainer
-	db SPRITE_SWIMMER, $e + 4, $37 + 4, $ff, $d3, $44, JR__TRAINER_F + $C8, $18 ; trainer
-	db SPRITE_SWIMMER, $d + 4, $26 + 4, $ff, $d0, $45, SWIMMER + $C8, $a ; trainer
-	db SPRITE_SWIMMER, $d + 4, $57 + 4, $ff, $d1, $46, SWIMMER + $C8, $b ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $9 + 4, $22 + 4, $ff, $d1, $47, BIRD_KEEPER + $C8, $b ; trainer
-	db SPRITE_SWIMMER, $7 + 4, $19 + 4, $ff, $d1, $48, BEAUTY + $C8, $7 ; trainer
-	db SPRITE_SWIMMER, $c + 4, $18 + 4, $ff, $d0, $49, JR__TRAINER_F + $C8, $10 ; trainer
-	db SPRITE_SWIMMER, $8 + 4, $f + 4, $ff, $d1, $4a, BEAUTY + $C8, $8 ; trainer
-
-	; warp-to
-	EVENT_DISP ROUTE_20_WIDTH, $5, $30 ; SEAFOAM_ISLANDS_1
-	EVENT_DISP ROUTE_20_WIDTH, $9, $3a ; SEAFOAM_ISLANDS_1
-
 Route20Blocks: ; 5017d (14:417d)
 	INCBIN "maps/route20.blk"
 
@@ -61879,33 +59568,8 @@
 	SOUTH_MAP_CONNECTION ROUTE_22, ROUTE_22_WIDTH, 0, 0, ROUTE_22_WIDTH - 7, Route22Blocks, ROUTE_23_WIDTH, ROUTE_23_HEIGHT
 	dw Route23Object ; objects
 
-Route23Object: ; 0x50361 (size=81)
-	db $f ; border tile
+INCLUDE "data/mapObjects/route23.asm"
 
-	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 $1 ; signs
-	db $21, $3, $8 ; Route23Text8
-
-	db $7 ; people
-	db SPRITE_GUARD, $23 + 4, $4 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GUARD, $38 + 4, $a + 4, $ff, $d0, $2 ; person
-	db SPRITE_SWIMMER, $55 + 4, $8 + 4, $ff, $d0, $3 ; person
-	db SPRITE_SWIMMER, $60 + 4, $b + 4, $ff, $d0, $4 ; person
-	db SPRITE_GUARD, $69 + 4, $c + 4, $ff, $d0, $5 ; person
-	db SPRITE_GUARD, $77 + 4, $8 + 4, $ff, $d0, $6 ; person
-	db SPRITE_GUARD, $88 + 4, $8 + 4, $ff, $d0, $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
-
 Route23Blocks: ; 503b2 (14:43b2)
 	INCBIN "maps/route23.blk"
 
@@ -61918,23 +59582,8 @@
 	EAST_MAP_CONNECTION ROUTE_25, ROUTE_25_WIDTH, 0, 0, ROUTE_25_HEIGHT, Route25Blocks, ROUTE_24_WIDTH
 	dw Route24Object ; objects
 
-Route24Object: ; 0x506a4 (size=67)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route24.asm"
 
-	db $0 ; warps
-
-	db $0 ; signs
-
-	db $8 ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $b + 4, $ff, $d2, $41, ROCKET + $C8, $6 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $14 + 4, $5 + 4, $ff, $d1, $42, JR__TRAINER_M + $C8, $2 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $13 + 4, $b + 4, $ff, $d2, $43, JR__TRAINER_M + $C8, $3 ; trainer
-	db SPRITE_LASS, $16 + 4, $a + 4, $ff, $d3, $44, LASS + $C8, $7 ; trainer
-	db SPRITE_BUG_CATCHER, $19 + 4, $b + 4, $ff, $d2, $45, YOUNGSTER + $C8, $4 ; trainer
-	db SPRITE_LASS, $1c + 4, $a + 4, $ff, $d3, $46, LASS + $C8, $8 ; trainer
-	db SPRITE_BUG_CATCHER, $1f + 4, $b + 4, $ff, $d2, $47, BUG_CATCHER + $C8, $9 ; trainer
-	db SPRITE_BALL, $5 + 4, $a + 4, $ff, $ff, $88, TM_45 ; item
-
 Route24Blocks: ; 506e7 (14:46e7)
 	INCBIN "maps/route24.blk"
 
@@ -61946,30 +59595,8 @@
 	WEST_MAP_CONNECTION ROUTE_24, ROUTE_24_WIDTH, 0, 0, ROUTE_24_HEIGHT - 6, Route24Blocks, ROUTE_25_WIDTH
 	dw Route25Object ; objects
 
-Route25Object: ; 0x507b2 (size=94)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route25.asm"
 
-	db $1 ; warps
-	db $3, $2d, $0, BILLS_HOUSE
-
-	db $1 ; signs
-	db $3, $2b, $b ; Route25Text11
-
-	db $a ; people
-	db SPRITE_BUG_CATCHER, $2 + 4, $e + 4, $ff, $d0, $41, YOUNGSTER + $C8, $5 ; trainer
-	db SPRITE_BUG_CATCHER, $5 + 4, $12 + 4, $ff, $d1, $42, YOUNGSTER + $C8, $6 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $18 + 4, $ff, $d0, $43, JR__TRAINER_M + $C8, $2 ; trainer
-	db SPRITE_LASS, $8 + 4, $12 + 4, $ff, $d3, $44, LASS + $C8, $9 ; trainer
-	db SPRITE_BUG_CATCHER, $3 + 4, $20 + 4, $ff, $d2, $45, YOUNGSTER + $C8, $7 ; trainer
-	db SPRITE_LASS, $4 + 4, $25 + 4, $ff, $d0, $46, LASS + $C8, $a ; trainer
-	db SPRITE_HIKER, $4 + 4, $8 + 4, $ff, $d3, $47, HIKER + $C8, $2 ; trainer
-	db SPRITE_HIKER, $9 + 4, $17 + 4, $ff, $d1, $48, HIKER + $C8, $3 ; trainer
-	db SPRITE_HIKER, $7 + 4, $d + 4, $ff, $d3, $49, HIKER + $C8, $4 ; trainer
-	db SPRITE_BALL, $2 + 4, $16 + 4, $ff, $ff, $8a, TM_19 ; item
-
-	; warp-to
-	EVENT_DISP ROUTE_25_WIDTH, $3, $2d ; BILLS_HOUSE
-
 Route25Blocks: ; 50810 (14:4810)
 	INCBIN "maps/route25.blk"
 
@@ -61985,21 +59612,8 @@
 	ret
 
 IndigoPlateauTextPointers: ; 50936 (14:4936)
-IndigoPlateauObject: ; 0x50936 (size=20)
-	db $e ; border tile
+INCLUDE "data/mapObjects/indigoplateau.asm"
 
-	db $2 ; warps
-	db $5, $9, $0, INDIGO_PLATEAU_LOBBY
-	db $5, $a, $0, INDIGO_PLATEAU_LOBBY
-
-	db $0 ; signs
-
-	db $0 ; people
-
-	; warp-to
-	EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $9 ; INDIGO_PLATEAU_LOBBY
-	EVENT_DISP INDIGO_PLATEAU_WIDTH, $5, $a ; INDIGO_PLATEAU_LOBBY
-
 IndigoPlateauBlocks: ; 5094a (14:494a)
 	INCBIN "maps/indigoplateau.blk"
 
@@ -62014,58 +59628,8 @@
 	EAST_MAP_CONNECTION ROUTE_8, ROUTE_8_WIDTH, 4, 0, ROUTE_8_HEIGHT, Route8Blocks, SAFFRON_CITY_WIDTH
 	dw SaffronCityObject ; objects
 
-SaffronCityObject: ; 0x509dc (size=188)
-	db $f ; border tile
+INCLUDE "data/mapObjects/saffroncity.asm"
 
-	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 $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 $f ; people
-	db SPRITE_ROCKET, $6 + 4, $7 + 4, $ff, $ff, $1 ; person
-	db SPRITE_ROCKET, $8 + 4, $14 + 4, $fe, $2, $2 ; person
-	db SPRITE_ROCKET, $4 + 4, $22 + 4, $ff, $ff, $3 ; person
-	db SPRITE_ROCKET, $c + 4, $d + 4, $ff, $ff, $4 ; person
-	db SPRITE_ROCKET, $19 + 4, $b + 4, $fe, $2, $5 ; person
-	db SPRITE_ROCKET, $d + 4, $20 + 4, $fe, $2, $6 ; person
-	db SPRITE_ROCKET, $1e + 4, $12 + 4, $fe, $2, $7 ; person
-	db SPRITE_OAK_AIDE, $e + 4, $8 + 4, $fe, $0, $8 ; person
-	db SPRITE_LAPRAS_GIVER, $17 + 4, $17 + 4, $ff, $ff, $9 ; person
-	db SPRITE_ERIKA, $1e + 4, $11 + 4, $fe, $2, $a ; person
-	db SPRITE_GENTLEMAN, $c + 4, $1e + 4, $ff, $d0, $b ; person
-	db SPRITE_BIRD, $c + 4, $1f + 4, $ff, $d0, $c ; person
-	db SPRITE_ROCKER, $8 + 4, $12 + 4, $ff, $d1, $d ; person
-	db SPRITE_ROCKET, $16 + 4, $12 + 4, $ff, $d0, $e ; person
-	db SPRITE_ROCKET, $16 + 4, $13 + 4, $ff, $d0, $f ; 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
-
 SaffronCityBlocks: ; 50a98 (14:4a98)
 	INCBIN "maps/saffroncity.blk"
 
@@ -64128,44 +61692,8 @@
 	TX_FAR _VictoryRoad2AfterBattleText5
 	db "@"
 
-VictoryRoad2Object: ; 0x51915 (size=154)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/victoryroad2.asm"
 
-	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 $0 ; signs
-
-	db $d ; people
-	db SPRITE_HIKER, $9 + 4, $c + 4, $ff, $d2, $41, BLACKBELT + $C8, $9 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $15 + 4, $ff, $d2, $42, JUGGLER + $C8, $2 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $8 + 4, $13 + 4, $ff, $d0, $43, TAMER + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $d0, $44, POKEMANIAC + $C8, $6 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $3 + 4, $1a + 4, $ff, $d2, $45, JUGGLER + $C8, $5 ; trainer
-	db SPRITE_BIRD, $5 + 4, $b + 4, $ff, $d1, $46, MOLTRES, 50 ; trainer
-	db SPRITE_BALL, $5 + 4, $1b + 4, $ff, $ff, $87, TM_17 ; item
-	db SPRITE_BALL, $9 + 4, $12 + 4, $ff, $ff, $88, FULL_HEAL ; item
-	db SPRITE_BALL, $b + 4, $9 + 4, $ff, $ff, $89, TM_05 ; item
-	db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $8a, GUARD_SPEC_ ; item
-	db SPRITE_BOULDER, $e + 4, $4 + 4, $ff, $10, $b ; person
-	db SPRITE_BOULDER, $5 + 4, $5 + 4, $ff, $10, $c ; person
-	db SPRITE_BOULDER, $10 + 4, $17 + 4, $ff, $10, $d ; 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
-
 VictoryRoad2Blocks: ; 519af (14:59af)
 	INCBIN "maps/victoryroad2.blk"
 
@@ -64187,33 +61715,8 @@
 	TX_FAR _UnnamedText_51a48
 	db "@"
 
-MtMoon2Object: ; 0x51a4d (size=68)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/mtmoon2.asm"
 
-	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 $0 ; signs
-
-	db $0 ; people
-
-	; 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
-
 MtMoon2Blocks: ; 51a91 (14:5a91)
 	INCBIN "maps/mtmoon2.blk"
 
@@ -64750,40 +62253,8 @@
 	TX_FAR _UnnamedText_51ed2
 	db "@"
 
-SilphCo7Object: ; 0x51ed7 (size=128)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco7.asm"
 
-	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 $0 ; signs
-
-	db $b ; people
-	db SPRITE_LAPRAS_GIVER, $5 + 4, $1 + 4, $ff, $ff, $1 ; person
-	db SPRITE_LAPRAS_GIVER, $d + 4, $d + 4, $ff, $d1, $2 ; person
-	db SPRITE_LAPRAS_GIVER, $a + 4, $7 + 4, $ff, $ff, $3 ; person
-	db SPRITE_ERIKA, $8 + 4, $a + 4, $ff, $ff, $4 ; person
-	db SPRITE_ROCKET, $1 + 4, $d + 4, $ff, $d0, $45, ROCKET + $C8, $20 ; trainer
-	db SPRITE_OAK_AIDE, $d + 4, $2 + 4, $ff, $d0, $46, SCIENTIST + $C8, $8 ; trainer
-	db SPRITE_ROCKET, $2 + 4, $14 + 4, $ff, $d2, $47, ROCKET + $C8, $21 ; trainer
-	db SPRITE_ROCKET, $e + 4, $13 + 4, $ff, $d3, $48, ROCKET + $C8, $22 ; trainer
-	db SPRITE_BLUE, $7 + 4, $3 + 4, $ff, $d1, $9 ; person
-	db SPRITE_BALL, $9 + 4, $1 + 4, $ff, $ff, $8a, CALCIUM ; item
-	db SPRITE_BALL, $b + 4, $18 + 4, $ff, $ff, $8b, TM_03 ; item
-
-	; 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
-
 SilphCo7Blocks: ; 51f57 (14:5f57)
 	INCBIN "maps/silphco7.blk"
 
@@ -64940,29 +62411,8 @@
 	TX_FAR _UnnamedText_520cc
 	db "@"
 
-Mansion2Object: ; 0x520d1 (size=63)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/mansion2.asm"
 
-	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 $0 ; signs
-
-	db $4 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $11 + 4, $3 + 4, $fe, $2, $41, BURGLAR + $C8, $7 ; trainer
-	db SPRITE_BALL, $7 + 4, $1c + 4, $ff, $ff, $82, CALCIUM ; item
-	db SPRITE_BOOK_MAP_DEX, $2 + 4, $12 + 4, $ff, $ff, $3 ; person
-	db SPRITE_BOOK_MAP_DEX, $16 + 4, $3 + 4, $ff, $ff, $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
-
 Mansion2Blocks: ; 52110 (14:6110)
 	INCBIN "maps/mansion2.blk"
 
@@ -65127,28 +62577,8 @@
 	TX_FAR _Mansion3Text5
 	db "@"
 
-Mansion3Object: ; 0x522e6 (size=64)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/mansion3.asm"
 
-	db $3 ; warps
-	db $a, $7, $1, MANSION_2
-	db $1, $6, $3, MANSION_2
-	db $e, $19, $2, MANSION_2
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $5 + 4, $fe, $2, $41, BURGLAR + $C8, $8 ; trainer
-	db SPRITE_OAK_AIDE, $b + 4, $14 + 4, $ff, $d2, $42, SCIENTIST + $C8, $c ; trainer
-	db SPRITE_BALL, $10 + 4, $1 + 4, $ff, $ff, $83, MAX_POTION ; item
-	db SPRITE_BALL, $5 + 4, $19 + 4, $ff, $ff, $84, IRON ; item
-	db SPRITE_BOOK_MAP_DEX, $c + 4, $6 + 4, $ff, $ff, $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
-
 Mansion3Blocks: ; 52326 (14:6326)
 	INCBIN "maps/mansion3.blk"
 
@@ -65292,27 +62722,8 @@
 	TX_FAR _Mansion4Text7
 	db "@"
 
-Mansion4Object: ; 0x52498 (size=69)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/mansion4.asm"
 
-	db $1 ; warps
-	db $16, $17, $5, MANSION_1
-
-	db $0 ; signs
-
-	db $8 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $17 + 4, $10 + 4, $ff, $ff, $41, BURGLAR + $C8, $9 ; trainer
-	db SPRITE_OAK_AIDE, $b + 4, $1b + 4, $ff, $d0, $42, SCIENTIST + $C8, $d ; trainer
-	db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $83, RARE_CANDY ; item
-	db SPRITE_BALL, $16 + 4, $1 + 4, $ff, $ff, $84, FULL_RESTORE ; item
-	db SPRITE_BALL, $19 + 4, $13 + 4, $ff, $ff, $85, TM_14 ; item
-	db SPRITE_BALL, $4 + 4, $5 + 4, $ff, $ff, $86, TM_22 ; item
-	db SPRITE_BOOK_MAP_DEX, $14 + 4, $10 + 4, $ff, $ff, $7 ; person
-	db SPRITE_BALL, $d + 4, $5 + 4, $ff, $ff, $88, SECRET_KEY ; item
-
-	; warp-to
-	EVENT_DISP MANSION_4_WIDTH, $16, $17 ; MANSION_1
-
 Mansion4Blocks: ; 524dd (14:64dd)
 	INCBIN "maps/mansion4.blk"
 
@@ -65977,40 +63388,8 @@
 	SOUTH_MAP_CONNECTION VIRIDIAN_CITY, VIRIDIAN_CITY_WIDTH, -3, 2, VIRIDIAN_CITY_WIDTH - 4, ViridianCityBlocks, ROUTE_2_WIDTH, ROUTE_2_HEIGHT
 	dw Route2Object ;Object Data Pointer
 
-Route2Object: ; 0x54022 (size=72)
-	db $f ; border tile
+INCLUDE "data/mapObjects/route2.asm"
 
-	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 $2 ; signs
-	db $41, $5, $3 ; Route2Text3
-	db $b, $b, $4 ; Route2Text4
-
-	db $2 ; people
-	db SPRITE_BALL, $36 + 4, $d + 4, $ff, $ff, $81, MOON_STONE ; item
-	db SPRITE_BALL, $2d + 4, $d + 4, $ff, $ff, $82, HP_UP ; item
-
-	; 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
-
-	; 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
-
 Route2Blocks: ; 5407e (15:407e)
 	INCBIN "maps/route2.blk"
 
@@ -66023,25 +63402,8 @@
 	WEST_MAP_CONNECTION PEWTER_CITY, PEWTER_CITY_WIDTH, -3, 1, PEWTER_CITY_HEIGHT - 3, PewterCityBlocks, ROUTE_3_WIDTH
 	dw Route3Object ; objects
 
-Route3Object: ; 0x54208 (size=77)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route3.asm"
 
-	db $0 ; warps
-
-	db $1 ; signs
-	db $9, $3b, $a ; Route3Text10
-
-	db $9 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $39 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BUG_CATCHER, $6 + 4, $a + 4, $ff, $d3, $42, BUG_CATCHER + $C8, $4 ; trainer
-	db SPRITE_BUG_CATCHER, $4 + 4, $e + 4, $ff, $d0, $43, YOUNGSTER + $C8, $1 ; trainer
-	db SPRITE_LASS, $9 + 4, $10 + 4, $ff, $d2, $44, LASS + $C8, $1 ; trainer
-	db SPRITE_BUG_CATCHER, $5 + 4, $13 + 4, $ff, $d0, $45, BUG_CATCHER + $C8, $5 ; trainer
-	db SPRITE_LASS, $4 + 4, $17 + 4, $ff, $d2, $46, LASS + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $9 + 4, $16 + 4, $ff, $d2, $47, YOUNGSTER + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $6 + 4, $18 + 4, $ff, $d3, $48, BUG_CATCHER + $C8, $6 ; trainer
-	db SPRITE_LASS, $a + 4, $21 + 4, $ff, $d1, $49, LASS + $C8, $3 ; trainer
-
 Route3Blocks: ; 54255 (15:4255)
 	INCBIN "maps/route3.blk"
 
@@ -66054,29 +63416,8 @@
 	EAST_MAP_CONNECTION CERULEAN_CITY, CERULEAN_CITY_WIDTH, -3, 1, CERULEAN_CITY_HEIGHT - 3, CeruleanCityBlocks, ROUTE_4_WIDTH
 	dw Route4Object ; objects
 
-Route4Object: ; 0x543b2 (size=58)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route4.asm"
 
-	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 ; signs
-	db $5, $c, $4 ; PokeCenterSignText
-	db $7, $11, $5 ; Route4Text5
-	db $7, $1b, $6 ; Route4Text6
-
-	db $3 ; people
-	db SPRITE_LASS, $8 + 4, $9 + 4, $fe, $0, $1 ; person
-	db SPRITE_LASS, $3 + 4, $3f + 4, $ff, $d3, $42, LASS + $C8, $4 ; trainer
-	db SPRITE_BALL, $3 + 4, $39 + 4, $ff, $ff, $83, TM_04 ; item
-
-	; 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
-
 Route4Blocks: ; 543ec (15:43ec)
 	INCBIN "maps/route4.blk"
 
@@ -66089,28 +63430,8 @@
 	SOUTH_MAP_CONNECTION SAFFRON_CITY, SAFFRON_CITY_WIDTH, -3, 2, SAFFRON_CITY_WIDTH - 4, SaffronCityBlocks, ROUTE_5_WIDTH, ROUTE_5_HEIGHT
 	dw Route5Object ; objects
 
-Route5Object: ; 0x545a3 (size=47)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route5.asm"
 
-	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 $1 ; signs
-	db $1d, $11, $1 ; Route5Text1
-
-	db $0 ; people
-
-	; 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
-
 Route5Blocks: ; 545d2 (15:45d2)
 	INCBIN "maps/route5.blk"
 
@@ -66123,26 +63444,8 @@
 	EAST_MAP_CONNECTION ROUTE_10, ROUTE_10_WIDTH, 0, 0, ROUTE_10_HEIGHT - 24, Route10Blocks, ROUTE_9_WIDTH
 	dw Route9Object ; objects
 
-Route9Object: ; 0x546a8 (size=86)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route9.asm"
 
-	db $0 ; warps
-
-	db $1 ; signs
-	db $7, $19, $b ; Route9Text11
-
-	db $a ; people
-	db SPRITE_LASS, $a + 4, $d + 4, $ff, $d2, $41, JR__TRAINER_F + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $18 + 4, $ff, $d2, $42, JR__TRAINER_M + $C8, $7 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $1f + 4, $ff, $d3, $43, JR__TRAINER_M + $C8, $8 ; trainer
-	db SPRITE_LASS, $8 + 4, $30 + 4, $ff, $d3, $44, JR__TRAINER_F + $C8, $6 ; trainer
-	db SPRITE_HIKER, $f + 4, $10 + 4, $ff, $d2, $45, HIKER + $C8, $b ; trainer
-	db SPRITE_HIKER, $3 + 4, $2b + 4, $ff, $d2, $46, HIKER + $C8, $6 ; trainer
-	db SPRITE_BUG_CATCHER, $2 + 4, $16 + 4, $ff, $d0, $47, BUG_CATCHER + $C8, $d ; trainer
-	db SPRITE_HIKER, $f + 4, $2d + 4, $ff, $d3, $48, HIKER + $C8, $5 ; trainer
-	db SPRITE_BUG_CATCHER, $8 + 4, $28 + 4, $ff, $d3, $49, BUG_CATCHER + $C8, $e ; trainer
-	db SPRITE_BALL, $f + 4, $a + 4, $ff, $ff, $8a, TM_30 ; item
-
 Route9Blocks: ; 546fe (15:46fe)
 	INCBIN "maps/route9.blk"
 
@@ -66155,28 +63458,8 @@
 	WEST_MAP_CONNECTION ROUTE_14, ROUTE_14_WIDTH, 0, 0, ROUTE_14_HEIGHT - 15, Route14Blocks, ROUTE_13_WIDTH
 	dw Route13Object ; objects
 
-Route13Object: ; 0x5482e (size=93)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route13.asm"
 
-	db $0 ; warps
-
-	db $3 ; signs
-	db $d, $f, $b ; Route13Text11
-	db $5, $21, $c ; Route13Text12
-	db $b, $1f, $d ; Route13Text13
-
-	db $a ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $a + 4, $31 + 4, $ff, $d3, $41, BIRD_KEEPER + $C8, $1 ; trainer
-	db SPRITE_LASS, $a + 4, $30 + 4, $ff, $d0, $42, JR__TRAINER_F + $C8, $c ; trainer
-	db SPRITE_LASS, $9 + 4, $1b + 4, $ff, $d0, $43, JR__TRAINER_F + $C8, $d ; trainer
-	db SPRITE_LASS, $a + 4, $17 + 4, $ff, $d2, $44, JR__TRAINER_F + $C8, $e ; trainer
-	db SPRITE_LASS, $5 + 4, $32 + 4, $ff, $d0, $45, JR__TRAINER_F + $C8, $f ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $c + 4, $ff, $d3, $46, BIRD_KEEPER + $C8, $2 ; trainer
-	db SPRITE_FOULARD_WOMAN, $6 + 4, $21 + 4, $ff, $d0, $47, BEAUTY + $C8, $4 ; trainer
-	db SPRITE_FOULARD_WOMAN, $6 + 4, $20 + 4, $ff, $d0, $48, BEAUTY + $C8, $5 ; trainer
-	db SPRITE_BIKER, $7 + 4, $a + 4, $ff, $d1, $49, BIKER + $C8, $1 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $7 + 4, $ff, $d1, $4a, BIRD_KEEPER + $C8, $3 ; trainer
-
 Route13Blocks: ; 5488b (15:488b)
 	INCBIN "maps/route13.blk"
 
@@ -66189,26 +63472,8 @@
 	EAST_MAP_CONNECTION ROUTE_13, ROUTE_13_WIDTH, 0, 0, ROUTE_13_HEIGHT, Route13Blocks, ROUTE_14_WIDTH
 	dw Route14Object ; objects
 
-Route14Object: ; 0x549bb (size=87)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route14.asm"
 
-	db $0 ; warps
-
-	db $1 ; signs
-	db $d, $11, $b ; Route14Text11
-
-	db $a ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $4 + 4, $ff, $d0, $41, BIRD_KEEPER + $C8, $e ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $f + 4, $ff, $d0, $42, BIRD_KEEPER + $C8, $f ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $c + 4, $ff, $d0, $43, BIRD_KEEPER + $C8, $10 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $e + 4, $ff, $d1, $44, BIRD_KEEPER + $C8, $11 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $f + 4, $ff, $d2, $45, BIRD_KEEPER + $C8, $4 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $31 + 4, $6 + 4, $ff, $d1, $46, BIRD_KEEPER + $C8, $5 ; trainer
-	db SPRITE_BIKER, $27 + 4, $5 + 4, $ff, $d0, $47, BIKER + $C8, $d ; trainer
-	db SPRITE_BIKER, $1e + 4, $4 + 4, $ff, $d3, $48, BIKER + $C8, $e ; trainer
-	db SPRITE_BIKER, $1e + 4, $f + 4, $ff, $d2, $49, BIKER + $C8, $f ; trainer
-	db SPRITE_BIKER, $1f + 4, $4 + 4, $ff, $d3, $4a, BIKER + $C8, $2 ; trainer
-
 Route14Blocks: ; 54a12 (15:4a12)
 	INCBIN "maps/route14.blk"
 
@@ -66221,31 +63486,8 @@
 	SOUTH_MAP_CONNECTION ROUTE_18, ROUTE_18_WIDTH, 0, 0, ROUTE_18_WIDTH - 12, Route18Blocks, ROUTE_17_WIDTH, ROUTE_17_HEIGHT
 	dw Route17Object ; objects
 
-Route17Object: ; 0x54b42 (size=102)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route17.asm"
 
-	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 $a ; people
-	db SPRITE_BIKER, $13 + 4, $c + 4, $ff, $d2, $41, CUE_BALL + $C8, $4 ; trainer
-	db SPRITE_BIKER, $10 + 4, $b + 4, $ff, $d3, $42, CUE_BALL + $C8, $5 ; trainer
-	db SPRITE_BIKER, $12 + 4, $4 + 4, $ff, $d1, $43, BIKER + $C8, $8 ; trainer
-	db SPRITE_BIKER, $20 + 4, $7 + 4, $ff, $d2, $44, BIKER + $C8, $9 ; trainer
-	db SPRITE_BIKER, $22 + 4, $e + 4, $ff, $d3, $45, BIKER + $C8, $a ; trainer
-	db SPRITE_BIKER, $3a + 4, $11 + 4, $ff, $d2, $46, CUE_BALL + $C8, $6 ; trainer
-	db SPRITE_BIKER, $44 + 4, $2 + 4, $ff, $d3, $47, CUE_BALL + $C8, $7 ; trainer
-	db SPRITE_BIKER, $62 + 4, $e + 4, $ff, $d3, $48, CUE_BALL + $C8, $8 ; trainer
-	db SPRITE_BIKER, $62 + 4, $5 + 4, $ff, $d2, $49, BIKER + $C8, $b ; trainer
-	db SPRITE_BIKER, $76 + 4, $a + 4, $ff, $d0, $4a, BIKER + $C8, $c ; trainer
-
 Route17Blocks: ; 54ba8 (15:4ba8)
 	INCBIN "maps/route17.blk"
 
@@ -66258,26 +63500,8 @@
 	WEST_MAP_CONNECTION ROUTE_20, ROUTE_20_WIDTH, 18, 0, ROUTE_20_HEIGHT, Route20Blocks, ROUTE_19_WIDTH
 	dw Route19Object ; objects
 
-Route19Object: ; 0x54e9a (size=87)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route19.asm"
 
-	db $0 ; warps
-
-	db $1 ; signs
-	db $9, $b, $b ; Route19Text11
-
-	db $a ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $8 + 4, $ff, $d2, $41, SWIMMER + $C8, $2 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $d + 4, $ff, $d2, $42, SWIMMER + $C8, $3 ; trainer
-	db SPRITE_SWIMMER, $19 + 4, $d + 4, $ff, $d2, $43, SWIMMER + $C8, $4 ; trainer
-	db SPRITE_SWIMMER, $1b + 4, $4 + 4, $ff, $d3, $44, SWIMMER + $C8, $5 ; trainer
-	db SPRITE_SWIMMER, $1f + 4, $10 + 4, $ff, $d1, $45, SWIMMER + $C8, $6 ; trainer
-	db SPRITE_SWIMMER, $b + 4, $9 + 4, $ff, $d0, $46, SWIMMER + $C8, $7 ; trainer
-	db SPRITE_SWIMMER, $2b + 4, $8 + 4, $ff, $d2, $47, BEAUTY + $C8, $c ; trainer
-	db SPRITE_SWIMMER, $2b + 4, $b + 4, $ff, $d3, $48, BEAUTY + $C8, $d ; trainer
-	db SPRITE_SWIMMER, $2a + 4, $9 + 4, $ff, $d1, $49, SWIMMER + $C8, $8 ; trainer
-	db SPRITE_SWIMMER, $2c + 4, $a + 4, $ff, $d0, $4a, BEAUTY + $C8, $e ; trainer
-
 Route19Blocks: ; 54ef1 (15:4ef1)
 	INCBIN "maps/route19.blk"
 
@@ -66290,24 +63514,8 @@
 	SOUTH_MAP_CONNECTION CINNABAR_ISLAND, CINNABAR_ISLAND_WIDTH, 0, 0, CINNABAR_ISLAND_WIDTH, CinnabarIslandBlocks, ROUTE_21_WIDTH, ROUTE_21_HEIGHT
 	dw Route21Object ; objects
 
-Route21Object: ; 0x55021 (size=76)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route21.asm"
 
-	db $0 ; warps
-
-	db $0 ; signs
-
-	db $9 ; people
-	db SPRITE_FISHER2, $18 + 4, $4 + 4, $ff, $d2, $41, FISHER + $C8, $7 ; trainer
-	db SPRITE_FISHER2, $19 + 4, $6 + 4, $ff, $d0, $42, FISHER + $C8, $9 ; trainer
-	db SPRITE_SWIMMER, $1f + 4, $a + 4, $ff, $d1, $43, SWIMMER + $C8, $c ; trainer
-	db SPRITE_SWIMMER, $1e + 4, $c + 4, $ff, $d3, $44, CUE_BALL + $C8, $9 ; trainer
-	db SPRITE_SWIMMER, $3f + 4, $10 + 4, $ff, $d0, $45, SWIMMER + $C8, $d ; trainer
-	db SPRITE_SWIMMER, $47 + 4, $5 + 4, $ff, $d3, $46, SWIMMER + $C8, $e ; trainer
-	db SPRITE_SWIMMER, $47 + 4, $f + 4, $ff, $d2, $47, SWIMMER + $C8, $f ; trainer
-	db SPRITE_FISHER2, $38 + 4, $e + 4, $ff, $d2, $48, FISHER + $C8, $8 ; trainer
-	db SPRITE_FISHER2, $39 + 4, $11 + 4, $ff, $d3, $49, FISHER + $C8, $a ; trainer
-
 Route21Blocks: ; 5506d (15:506d)
 	INCBIN "maps/route21.blk"
 
@@ -68903,22 +66111,8 @@
 	TX_FAR _UnnamedText_560ca
 	db "@"
 
-VermilionHouse2Object: ; 0x560cf (size=26)
-	db $a ; border tile
+INCLUDE "data/mapObjects/vermilionhouse2.asm"
 
-	db $2 ; warps
-	db $7, $2, $8, $ff
-	db $7, $3, $8, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FISHER, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
-
-	; warp-to
-	EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $2
-	EVENT_DISP VERMILION_HOUSE_2_WIDTH, $7, $3
-
 CeladonMart2_h: ; 0x560e9 to 0x560f5 (12 bytes) (id=123)
 	db LOBBY ; tileset
 	db CELADON_MART_2_HEIGHT, CELADON_MART_2_WIDTH ; dimensions (y, x)
@@ -68948,28 +66142,8 @@
 	TX_FAR _CeladonMart2Text5
 	db "@"
 
-CeladonMart2Object: ; 0x56111 (size=55)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmart2.asm"
 
-	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 $1 ; signs
-	db $1, $e, $5 ; CeladonMart2Text5
-
-	db $4 ; people
-	db SPRITE_MART_GUY, $3 + 4, $5 + 4, $ff, $d0, $1 ; person
-	db SPRITE_MART_GUY, $3 + 4, $6 + 4, $ff, $d0, $2 ; person
-	db SPRITE_FAT_BALD_GUY, $5 + 4, $13 + 4, $ff, $ff, $3 ; person
-	db SPRITE_GIRL, $4 + 4, $e + 4, $fe, $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
-
 CeladonMart2Blocks: ; 56148 (15:6148)
 	INCBIN "maps/celadonmart2.blk"
 
@@ -69056,24 +66230,8 @@
 	TX_FAR _UnnamedText_5621c
 	db "@"
 
-FuchsiaHouse3Object: ; 0x56221 (size=34)
-	db $c ; border tile
+INCLUDE "data/mapObjects/fuchsiahouse3.asm"
 
-	db $3 ; warps
-	db $0, $2, $8, $ff
-	db $7, $2, $7, $ff
-	db $7, $3, $7, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FISHER, $3 + 4, $5 + 4, $ff, $d3, $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
-
 DayCareM_h: ; 0x56243 to 0x5624f (12 bytes) (id=72)
 	db HOUSE ; tileset
 	db DAYCAREM_HEIGHT, DAYCAREM_WIDTH ; dimensions (y, x)
@@ -69356,22 +66514,8 @@
 	TX_FAR _UnnamedText_56454
 	db "@"
 
-DayCareMObject: ; 0x56459 (size=26)
-	db $a ; border tile
+INCLUDE "data/mapObjects/daycarem.asm"
 
-	db $2 ; warps
-	db $7, $2, $4, $ff
-	db $7, $3, $4, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
-
-	; warp-to
-	EVENT_DISP DAYCAREM_WIDTH, $7, $2
-	EVENT_DISP DAYCAREM_WIDTH, $7, $3
-
 Route12House_h: ; 0x56473 to 0x5647f (12 bytes) (id=189)
 	db HOUSE ; tileset
 	db ROUTE_12_HOUSE_HEIGHT, ROUTE_12_HOUSE_WIDTH ; dimensions (y, x)
@@ -69437,22 +66581,8 @@
 	TX_FAR _UnnamedText_564d9
 	db "@"
 
-Route12HouseObject: ; 0x564de (size=26)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route12house.asm"
 
-	db $2 ; warps
-	db $7, $2, $3, $ff
-	db $7, $3, $3, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FISHER, $4 + 4, $2 + 4, $ff, $d3, $1 ; person
-
-	; warp-to
-	EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $2
-	EVENT_DISP ROUTE_12_HOUSE_WIDTH, $7, $3
-
 SilphCo8_h: ; 0x564f8 to 0x56504 (12 bytes) (id=213)
 	db FACILITY ; tileset
 	db SILPH_CO_8F_HEIGHT, SILPH_CO_8F_WIDTH ; dimensions (y, x)
@@ -69648,35 +66778,8 @@
 	TX_FAR _SilphCo8AfterBattleText3
 	db "@"
 
-SilphCo8Object: ; 0x56613 (size=90)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco8.asm"
 
-	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 $0 ; signs
-
-	db $4 ; people
-	db SPRITE_LAPRAS_GIVER, $2 + 4, $4 + 4, $ff, $ff, $1 ; person
-	db SPRITE_ROCKET, $2 + 4, $13 + 4, $ff, $d2, $42, ROCKET + $C8, $23 ; trainer
-	db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d0, $43, SCIENTIST + $C8, $9 ; trainer
-	db SPRITE_ROCKET, $f + 4, $c + 4, $ff, $d3, $44, ROCKET + $C8, $24 ; trainer
-
-	; 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
-
 SilphCo8Blocks: ; 5666d (15:666d)
 	INCBIN "maps/silphco8.blk"
 
@@ -70153,26 +67256,8 @@
 	SOUTH_MAP_CONNECTION VERMILION_CITY, VERMILION_CITY_WIDTH, -3, 2, VERMILION_CITY_WIDTH - 4, VermilionCityBlocks, ROUTE_6_WIDTH, ROUTE_6_HEIGHT
 	dw Route6Object ; objects
 
-Route6Object: ; 0x58022 (size=87)
-	db $f ; border tile
+INCLUDE "data/mapObjects/route6.asm"
 
-	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 $1 ; signs
-	db $f, $13, $7 ; Route6Text7
-
-	db $6 ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $15 + 4, $a + 4, $ff, $d3, $41, JR__TRAINER_M + $C8, $4 ; trainer
-	db SPRITE_LASS, $15 + 4, $b + 4, $ff, $d2, $42, JR__TRAINER_F + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $f + 4, $0 + 4, $ff, $d3, $43, BUG_CATCHER + $C8, $a ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $1f + 4, $b + 4, $ff, $d2, $44, JR__TRAINER_M + $C8, $5 ; trainer
-	db SPRITE_LASS, $1e + 4, $b + 4, $ff, $d2, $45, JR__TRAINER_F + $C8, $3 ; trainer
-	db SPRITE_BUG_CATCHER, $1a + 4, $13 + 4, $ff, $d2, $46, BUG_CATCHER + $C8, $b ; trainer
-
 	; warp-to
 	EVENT_DISP ROUTE_6_WIDTH, $1, $9 ; ROUTE_6_GATE
 	EVENT_DISP ROUTE_6_WIDTH, $1, $a ; ROUTE_6_GATE
@@ -70191,37 +67276,8 @@
 	EAST_MAP_CONNECTION LAVENDER_TOWN, LAVENDER_TOWN_WIDTH, 0, 0, LAVENDER_TOWN_HEIGHT, LavenderTownBlocks, ROUTE_8_WIDTH
 	dw Route8Object ; objects
 
-Route8Object: ; 0x5814f (size=119)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route8.asm"
 
-	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 $1 ; signs
-	db $3, $11, $a ; Route8Text10
-
-	db $9 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $8 + 4, $ff, $d3, $41, SUPER_NERD + $C8, $3 ; trainer
-	db SPRITE_GAMBLER, $9 + 4, $d + 4, $ff, $d1, $42, GAMBLER + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $6 + 4, $2a + 4, $ff, $d1, $43, SUPER_NERD + $C8, $4 ; trainer
-	db SPRITE_LASS, $3 + 4, $1a + 4, $ff, $d2, $44, LASS + $C8, $d ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $1a + 4, $ff, $d3, $45, SUPER_NERD + $C8, $5 ; trainer
-	db SPRITE_LASS, $5 + 4, $1a + 4, $ff, $d2, $46, LASS + $C8, $e ; trainer
-	db SPRITE_LASS, $6 + 4, $1a + 4, $ff, $d3, $47, LASS + $C8, $f ; trainer
-	db SPRITE_GAMBLER, $d + 4, $2e + 4, $ff, $d0, $48, GAMBLER + $C8, $7 ; trainer
-	db SPRITE_LASS, $c + 4, $33 + 4, $ff, $d2, $49, LASS + $C8, $10 ; trainer
-
-	; 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
-
 Route8Blocks: ; 581c6 (16:41c6)
 	INCBIN "maps/route8.blk"
 
@@ -70234,35 +67290,8 @@
 	WEST_MAP_CONNECTION ROUTE_9, ROUTE_9_WIDTH, 0, 0, ROUTE_9_HEIGHT, Route9Blocks, ROUTE_10_WIDTH
 	dw Route10Object ; objects
 
-Route10Object: ; 0x582f6 (size=96)
-	db $2c ; border tile
+INCLUDE "data/mapObjects/route10.asm"
 
-	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 ; signs
-	db $13, $7, $7 ; Route10Text7
-	db $13, $c, $8 ; PokeCenterSignText
-	db $37, $9, $9 ; Route10Text9
-	db $29, $5, $a ; Route10Text10
-
-	db $6 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $2c + 4, $a + 4, $ff, $d2, $41, POKEMANIAC + $C8, $1 ; trainer
-	db SPRITE_HIKER, $39 + 4, $3 + 4, $ff, $d1, $42, HIKER + $C8, $7 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $40 + 4, $e + 4, $ff, $d2, $43, POKEMANIAC + $C8, $2 ; trainer
-	db SPRITE_LASS, $19 + 4, $7 + 4, $ff, $d2, $44, JR__TRAINER_F + $C8, $7 ; trainer
-	db SPRITE_HIKER, $3d + 4, $3 + 4, $ff, $d0, $45, HIKER + $C8, $8 ; trainer
-	db SPRITE_LASS, $36 + 4, $7 + 4, $ff, $d0, $46, JR__TRAINER_F + $C8, $8 ; trainer
-
-	; 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
-
 Route10Blocks: ; 58356 (16:4356)
 	INCBIN "maps/route10.blk"
 
@@ -70275,38 +67304,8 @@
 	EAST_MAP_CONNECTION ROUTE_12, ROUTE_12_WIDTH, -3, 24, ROUTE_12_HEIGHT - 39, Route12Blocks, ROUTE_11_WIDTH
 	dw Route11Object ; objects
 
-Route11Object: ; 0x584e0 (size=127)
-	db $f ; border tile
+INCLUDE "data/mapObjects/route11.asm"
 
-	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 $1 ; signs
-	db $5, $1, $b ; Route11Text11
-
-	db $a ; people
-	db SPRITE_GAMBLER, $e + 4, $a + 4, $ff, $d0, $41, GAMBLER + $C8, $1 ; trainer
-	db SPRITE_GAMBLER, $9 + 4, $1a + 4, $ff, $d0, $42, GAMBLER + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $5 + 4, $d + 4, $ff, $d2, $43, YOUNGSTER + $C8, $9 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $b + 4, $24 + 4, $ff, $d0, $44, ENGINEER + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $4 + 4, $16 + 4, $ff, $d1, $45, YOUNGSTER + $C8, $a ; trainer
-	db SPRITE_GAMBLER, $7 + 4, $2d + 4, $ff, $d0, $46, GAMBLER + $C8, $3 ; trainer
-	db SPRITE_GAMBLER, $3 + 4, $21 + 4, $ff, $d1, $47, GAMBLER + $C8, $4 ; trainer
-	db SPRITE_BUG_CATCHER, $5 + 4, $2b + 4, $ff, $d3, $48, YOUNGSTER + $C8, $b ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $10 + 4, $2d + 4, $ff, $d2, $49, ENGINEER + $C8, $3 ; trainer
-	db SPRITE_BUG_CATCHER, $c + 4, $16 + 4, $ff, $d1, $4a, YOUNGSTER + $C8, $c ; trainer
-
-	; 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
-
 Route11Blocks: ; 5855f (16:455f)
 	INCBIN "maps/route11.blk"
 
@@ -70320,37 +67319,8 @@
 	WEST_MAP_CONNECTION ROUTE_11, ROUTE_11_WIDTH, 27, 0, ROUTE_11_HEIGHT, Route11Blocks, ROUTE_12_WIDTH
 	dw Route12Object ; objects
 
-Route12Object: ; 0x5869a (size=118)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route12.asm"
 
-	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 $2 ; signs
-	db $d, $d, $b ; Route12Text11
-	db $3f, $b, $c ; Route12Text12
-
-	db $a ; people
-	db SPRITE_SNORLAX, $3e + 4, $a + 4, $ff, $d0, $1 ; person
-	db SPRITE_FISHER2, $1f + 4, $e + 4, $ff, $d2, $42, FISHER + $C8, $3 ; trainer
-	db SPRITE_FISHER2, $27 + 4, $5 + 4, $ff, $d1, $43, FISHER + $C8, $4 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $5c + 4, $b + 4, $ff, $d2, $44, JR__TRAINER_M + $C8, $9 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $4c + 4, $e + 4, $ff, $d1, $45, ROCKER + $C8, $2 ; trainer
-	db SPRITE_FISHER2, $28 + 4, $c + 4, $ff, $d2, $46, FISHER + $C8, $5 ; trainer
-	db SPRITE_FISHER2, $34 + 4, $9 + 4, $ff, $d3, $47, FISHER + $C8, $6 ; trainer
-	db SPRITE_FISHER2, $57 + 4, $6 + 4, $ff, $d0, $48, FISHER + $C8, $b ; trainer
-	db SPRITE_BALL, $23 + 4, $e + 4, $ff, $ff, $89, TM_16 ; item
-	db SPRITE_BALL, $59 + 4, $5 + 4, $ff, $ff, $8a, IRON ; item
-
-	; 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
-
 Route12Blocks: ; 58710 (16:4710)
 	INCBIN "maps/route12.blk"
 
@@ -70363,37 +67333,8 @@
 	EAST_MAP_CONNECTION ROUTE_14, ROUTE_14_WIDTH, -3, 15, ROUTE_14_HEIGHT - 15, Route14Blocks, ROUTE_15_WIDTH
 	dw Route15Object ; objects
 
-Route15Object: ; 0x5894e (size=126)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route15.asm"
 
-	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 $1 ; signs
-	db $9, $27, $c ; Route15Text12
-
-	db $b ; people
-	db SPRITE_LASS, $b + 4, $29 + 4, $ff, $d0, $41, JR__TRAINER_F + $C8, $14 ; trainer
-	db SPRITE_LASS, $a + 4, $35 + 4, $ff, $d2, $42, JR__TRAINER_F + $C8, $15 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $1f + 4, $ff, $d1, $43, BIRD_KEEPER + $C8, $6 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $23 + 4, $ff, $d1, $44, BIRD_KEEPER + $C8, $7 ; trainer
-	db SPRITE_FOULARD_WOMAN, $b + 4, $35 + 4, $ff, $d0, $45, BEAUTY + $C8, $9 ; trainer
-	db SPRITE_FOULARD_WOMAN, $a + 4, $29 + 4, $ff, $d3, $46, BEAUTY + $C8, $a ; trainer
-	db SPRITE_BIKER, $a + 4, $30 + 4, $ff, $d0, $47, BIKER + $C8, $3 ; trainer
-	db SPRITE_BIKER, $a + 4, $2e + 4, $ff, $d0, $48, BIKER + $C8, $4 ; trainer
-	db SPRITE_LASS, $5 + 4, $25 + 4, $ff, $d3, $49, JR__TRAINER_F + $C8, $16 ; trainer
-	db SPRITE_LASS, $d + 4, $12 + 4, $ff, $d1, $4a, JR__TRAINER_F + $C8, $17 ; trainer
-	db SPRITE_BALL, $5 + 4, $12 + 4, $ff, $ff, $8b, TM_20 ; item
-
-	; 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
-
 Route15Blocks: ; 589cc (16:49cc)
 	INCBIN "maps/route15.blk"
 
@@ -70406,44 +67347,8 @@
 	EAST_MAP_CONNECTION CELADON_CITY, CELADON_CITY_WIDTH, -3, 1, CELADON_CITY_HEIGHT - 3, CeladonCityBlocks, ROUTE_16_WIDTH
 	dw Route16Object ; objects
 
-Route16Object: ; 0x58afc (size=136)
-	db $f ; border tile
+INCLUDE "data/mapObjects/route16.asm"
 
-	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 $2 ; signs
-	db $b, $1b, $8 ; Route16Text8
-	db $11, $5, $9 ; Route16Text9
-
-	db $7 ; people
-	db SPRITE_BIKER, $c + 4, $11 + 4, $ff, $d2, $41, BIKER + $C8, $5 ; trainer
-	db SPRITE_BIKER, $d + 4, $e + 4, $ff, $d3, $42, CUE_BALL + $C8, $1 ; trainer
-	db SPRITE_BIKER, $c + 4, $b + 4, $ff, $d1, $43, CUE_BALL + $C8, $2 ; trainer
-	db SPRITE_BIKER, $b + 4, $9 + 4, $ff, $d2, $44, BIKER + $C8, $6 ; trainer
-	db SPRITE_BIKER, $a + 4, $6 + 4, $ff, $d3, $45, CUE_BALL + $C8, $3 ; trainer
-	db SPRITE_BIKER, $c + 4, $3 + 4, $ff, $d3, $46, BIKER + $C8, $7 ; trainer
-	db SPRITE_SNORLAX, $a + 4, $1a + 4, $ff, $d0, $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
-
 Route16Blocks: ; 58b84 (16:4b84)
 	INCBIN "maps/route16.blk"
 
@@ -70456,30 +67361,8 @@
 	EAST_MAP_CONNECTION FUCHSIA_CITY, FUCHSIA_CITY_WIDTH, -3, 1, FUCHSIA_CITY_HEIGHT - 3, FuchsiaCityBlocks, ROUTE_18_WIDTH
 	dw Route18Object ; objects
 
-Route18Object: ; 0x58c5a (size=66)
-	db $43 ; border tile
+INCLUDE "data/mapObjects/route18.asm"
 
-	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 $2 ; signs
-	db $7, $2b, $4 ; Route18Text4
-	db $5, $21, $5 ; Route18Text5
-
-	db $3 ; people
-	db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $24 + 4, $ff, $d3, $41, BIRD_KEEPER + $C8, $8 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $f + 4, $28 + 4, $ff, $d2, $42, BIRD_KEEPER + $C8, $9 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $d + 4, $2a + 4, $ff, $d2, $43, BIRD_KEEPER + $C8, $a ; trainer
-
-	; 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
-
 Route18Blocks: ; 58c9c (16:4c9c)
 	INCBIN "maps/route18.blk"
 
@@ -73085,29 +69968,8 @@
 	TX_FAR _FanClubText8
 	db "@"
 
-FanClubObject: ; 0x59c97 (size=62)
-	db $d ; border tile
+INCLUDE "data/mapObjects/fanclub.asm"
 
-	db $2 ; warps
-	db $7, $2, $1, $ff
-	db $7, $3, $1, $ff
-
-	db $2 ; signs
-	db $0, $1, $7 ; FanClubText7
-	db $0, $6, $8 ; FanClubText8
-
-	db $6 ; people
-	db SPRITE_FISHER2, $3 + 4, $6 + 4, $ff, $d2, $1 ; person
-	db SPRITE_GIRL, $3 + 4, $1 + 4, $ff, $d3, $2 ; person
-	db SPRITE_CLEFAIRY, $4 + 4, $6 + 4, $ff, $d2, $3 ; person
-	db SPRITE_SEEL, $4 + 4, $1 + 4, $ff, $d3, $4 ; person
-	db SPRITE_GENTLEMAN, $1 + 4, $3 + 4, $ff, $d0, $5 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $1 + 4, $5 + 4, $ff, $d0, $6 ; person
-
-	; warp-to
-	EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $2
-	EVENT_DISP POKEMON_FAN_CLUB_WIDTH, $7, $3
-
 FanClubBlocks: ; 59cd5 (16:5cd5)
 	INCBIN "maps/fanclub.blk"
 
@@ -73367,36 +70229,8 @@
 	TX_FAR _SilphCo2AfterBattleText4
 	db "@"
 
-SilphCo2Object: ; 0x59e66 (size=98)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco2.asm"
 
-	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 $0 ; signs
-
-	db $5 ; people
-	db SPRITE_ERIKA, $1 + 4, $a + 4, $ff, $d1, $1 ; person
-	db SPRITE_OAK_AIDE, $c + 4, $5 + 4, $ff, $d0, $42, SCIENTIST + $C8, $2 ; trainer
-	db SPRITE_OAK_AIDE, $d + 4, $18 + 4, $ff, $d2, $43, SCIENTIST + $C8, $3 ; trainer
-	db SPRITE_ROCKET, $b + 4, $10 + 4, $ff, $d1, $44, ROCKET + $C8, $17 ; trainer
-	db SPRITE_ROCKET, $7 + 4, $18 + 4, $ff, $d1, $45, ROCKET + $C8, $18 ; trainer
-
-	; 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
-
 SilphCo2Blocks: ; 59ec8 (16:5ec8)
 	INCBIN "maps/silphco2.blk"
 
@@ -73547,41 +70381,8 @@
 	TX_FAR _SilphCo3AfterBattleText2
 	db "@"
 
-SilphCo3Object: ; 0x5a035 (size=113)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco3.asm"
 
-	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 $0 ; signs
-
-	db $4 ; people
-	db SPRITE_LAPRAS_GIVER, $8 + 4, $18 + 4, $ff, $ff, $1 ; person
-	db SPRITE_ROCKET, $7 + 4, $14 + 4, $ff, $d2, $42, ROCKET + $C8, $19 ; trainer
-	db SPRITE_OAK_AIDE, $9 + 4, $7 + 4, $ff, $d0, $43, SCIENTIST + $C8, $4 ; trainer
-	db SPRITE_BALL, $5 + 4, $8 + 4, $ff, $ff, $84, HYPER_POTION ; item
-
-	; 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
-
 SilphCo3Blocks: ; 5a0a6 (16:60a6)
 	INCBIN "maps/silphco3.blk"
 
@@ -73719,35 +70520,8 @@
 	TX_FAR _SilphCo10AfterBattleText2
 	db "@"
 
-SilphCo10Object: ; 0x5a1fb (size=95)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco10.asm"
 
-	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 $0 ; signs
-
-	db $6 ; people
-	db SPRITE_ROCKET, $9 + 4, $1 + 4, $ff, $d3, $41, ROCKET + $C8, $27 ; trainer
-	db SPRITE_OAK_AIDE, $2 + 4, $a + 4, $ff, $d2, $42, SCIENTIST + $C8, $b ; trainer
-	db SPRITE_ERIKA, $f + 4, $9 + 4, $fe, $0, $3 ; person
-	db SPRITE_BALL, $c + 4, $2 + 4, $ff, $ff, $84, TM_26 ; item
-	db SPRITE_BALL, $e + 4, $4 + 4, $ff, $ff, $85, RARE_CANDY ; item
-	db SPRITE_BALL, $b + 4, $5 + 4, $ff, $ff, $86, CARBOS ; item
-
-	; 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
-
 SilphCo10Blocks: ; 5a25a (16:625a)
 	INCBIN "maps/silphco10.blk"
 
@@ -73925,24 +70699,8 @@
 	set 6, [hl]
 	jp TextScriptEnd
 
-LanceObject: ; 0x5a3c5 (size=36)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/lance.asm"
 
-	db $3 ; warps
-	db $10, $18, $2, AGATHAS_ROOM
-	db $0, $5, $0, CHAMPIONS_ROOM
-	db $0, $6, $0, CHAMPIONS_ROOM
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_LANCE, $1 + 4, $6 + 4, $ff, $d0, $41, LANCE + $C8, $1 ; trainer
-
-	; 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
-
 LanceBlocks: ; 5a3e9 (16:63e9)
 	INCBIN "maps/lance.blk"
 
@@ -74071,22 +70829,8 @@
 	TX_FAR _HallofFameRoomText1
 	db "@"
 
-HallofFameRoomObject: ; 0x5a571 (size=26)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/halloffameroom.asm"
 
-	db $2 ; warps
-	db $7, $4, $2, CHAMPIONS_ROOM
-	db $7, $5, $3, CHAMPIONS_ROOM
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_OAK, $2 + 4, $5 + 4, $ff, $d0, $1 ; person
-
-	; warp-to
-	EVENT_DISP HALL_OF_FAME_WIDTH, $7, $4 ; CHAMPIONS_ROOM
-	EVENT_DISP HALL_OF_FAME_WIDTH, $7, $5 ; CHAMPIONS_ROOM
-
 HallofFameRoomBlocks: ; 5a58b (16:658b)
 	INCBIN "maps/halloffameroom.blk"
 
@@ -74133,11 +70877,11 @@
 PewterPokecenterBlocks: ; 5c064 (17:4064)
 	INCBIN "maps/pewterpokecenter.blk"
 
-UndergroundTunnelEntranceRoute7Blocks: ; 5c080 (17:4080)
-UndergroundTunnelEntranceRoute7CopyBlocks: ; 5c080 (17:4080)
-UndergroundTunnelEntranceRoute6Blocks: ; 5c080 (17:4080)
-UndergroundTunnelEntranceRoute5Blocks: ; 5c080 (17:4080)
-	INCBIN "maps/undergroundtunnelentranceroute5.blk"
+UndergroundPathEntranceRoute7Blocks: ; 5c080 (17:4080)
+UndergroundPathEntranceRoute7CopyBlocks: ; 5c080 (17:4080)
+UndergroundPathEntranceRoute6Blocks: ; 5c080 (17:4080)
+UndergroundPathEntranceRoute5Blocks: ; 5c080 (17:4080)
+	INCBIN "maps/undergroundpathentranceroute5.blk"
 
 Route2GateBlocks: ; 5c090 (17:4090)
 ViridianForestEntranceBlocks: ; 5c090 (17:4090)
@@ -74176,19 +70920,8 @@
 RedsHouse2FTextPointers: ; 5c0cf (17:40cf)
 	db "@"
 
-RedsHouse2FObject: ; 0x5c0d0 ?
-	db $0A ; border tile
+INCLUDE "data/mapObjects/redshouse2f.asm"
 
-	db 1 ; warps
-	db 1, 7, 2, REDS_HOUSE_1F
-
-	db 0 ; signs
-
-	db 0 ; people
-
-	; warp-to
-	EVENT_DISP REDS_HOUSE_2F_WIDTH, 1, 7
-
 Func_5c0dc: ; 5c0dc (17:40dc)
 	ld a, $4b
 	ld [wPokedexOwned], a ; $d2f7
@@ -74459,32 +71192,8 @@
 	TX_FAR _UnnamedText_5c2bc
 	db "@"
 
-Museum1FObject: ; 0x5c2c1 (size=74)
-	db $a ; border tile
+INCLUDE "data/mapObjects/museum1f.asm"
 
-	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 $0 ; signs
-
-	db $5 ; people
-	db SPRITE_OAK_AIDE, $4 + 4, $c + 4, $ff, $d2, $1 ; person
-	db SPRITE_GAMBLER, $4 + 4, $1 + 4, $ff, $ff, $2 ; person
-	db SPRITE_OAK_AIDE, $2 + 4, $f + 4, $ff, $d0, $3 ; person
-	db SPRITE_OAK_AIDE, $4 + 4, $11 + 4, $ff, $ff, $4 ; person
-	db SPRITE_OLD_AMBER, $2 + 4, $10 + 4, $ff, $ff, $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
-
 Museum2F_h: ; 0x5c30b to 0x5c317 (12 bytes) (id=53)
 	db MUSEUM ; tileset
 	db MUSEUM_2F_HEIGHT, MUSEUM_2F_WIDTH ; dimensions (y, x)
@@ -74532,26 +71241,8 @@
 	TX_FAR _Museum2FText7
 	db "@"
 
-Museum2FObject: ; 0x5c34b (size=48)
-	db $a ; border tile
+INCLUDE "data/mapObjects/museum2f.asm"
 
-	db $1 ; warps
-	db $7, $7, $4, MUSEUM_1F
-
-	db $2 ; signs
-	db $2, $b, $6 ; Museum2FText6
-	db $5, $2, $7 ; Museum2FText7
-
-	db $5 ; people
-	db SPRITE_BUG_CATCHER, $7 + 4, $1 + 4, $fe, $2, $1 ; person
-	db SPRITE_OLD_PERSON, $5 + 4, $0 + 4, $ff, $d0, $2 ; person
-	db SPRITE_OAK_AIDE, $5 + 4, $7 + 4, $ff, $d0, $3 ; person
-	db SPRITE_BRUNETTE_GIRL, $5 + 4, $b + 4, $ff, $ff, $4 ; person
-	db SPRITE_HIKER, $5 + 4, $c + 4, $ff, $d0, $5 ; person
-
-	; warp-to
-	EVENT_DISP MUSEUM_2F_WIDTH, $7, $7 ; MUSEUM_1F
-
 PewterGym_h: ; 0x5c37b to 0x5c387 (12 bytes) (id=54)
 	db GYM ; tileset
 	db PEWTER_GYM_HEIGHT, PEWTER_GYM_WIDTH ; dimensions (y, x)
@@ -74797,24 +71488,8 @@
 	TX_FAR _UnnamedText_5c529
 	db "@"
 
-PewterGymObject: ; 0x5c52e (size=42)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/pewtergym.asm"
 
-	db $2 ; warps
-	db $d, $4, $2, $ff
-	db $d, $5, $2, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $1 + 4, $4 + 4, $ff, $d0, $41, BROCK + $C8, $1 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $3 + 4, $ff, $d3, $42, JR__TRAINER_M + $C8, $1 ; trainer
-	db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $3 ; person
-
-	; warp-to
-	EVENT_DISP PEWTER_GYM_WIDTH, $d, $4
-	EVENT_DISP PEWTER_GYM_WIDTH, $d, $5
-
 PewterGymBlocks: ; 5c558 (17:4558)
 	INCBIN "maps/pewtergym.blk"
 
@@ -74901,25 +71576,8 @@
 PewterPokecenterText4: ; 5c60c (17:460c)
 	db $f6
 
-PewterPokecenterObject: ; 0x5c60d (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/pewterpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $6, $ff
-	db $7, $4, $6, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GENTLEMAN, $7 + 4, $b + 4, $ff, $d2, $2 ; person
-	db SPRITE_CLEFAIRY, $3 + 4, $1 + 4, $ff, $d0, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $4
-
 CeruleanPokecenter_h: ; 0x5c639 to 0x5c645 (12 bytes) (id=64)
 	db POKECENTER ; tileset
 	db CERULEAN_POKECENTER_HEIGHT, CERULEAN_POKECENTER_WIDTH ; dimensions (y, x)
@@ -74951,25 +71609,8 @@
 	TX_FAR _CeruleanPokecenterText3
 	db "@"
 
-CeruleanPokecenterObject: ; 0x5c65f (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/ceruleanpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $2, $ff
-	db $7, $4, $2, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $a + 4, $fe, $0, $2 ; person
-	db SPRITE_GENTLEMAN, $3 + 4, $4 + 4, $ff, $d0, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $4
-
 CeruleanPokecenterBlocks: ; 5c68b (17:468b)
 	INCBIN "maps/ceruleanpokecenter.blk"
 
@@ -75205,25 +71846,8 @@
 	TX_FAR _UnnamedText_5c82f
 	db "@"
 
-CeruleanGymObject: ; 0x5c834 (size=50)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/ceruleangym.asm"
 
-	db $2 ; warps
-	db $d, $4, $3, $ff
-	db $d, $5, $3, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_BRUNETTE_GIRL, $2 + 4, $4 + 4, $ff, $d0, $41, MISTY + $C8, $1 ; trainer
-	db SPRITE_LASS, $3 + 4, $2 + 4, $ff, $d3, $42, JR__TRAINER_F + $C8, $1 ; trainer
-	db SPRITE_SWIMMER, $7 + 4, $8 + 4, $ff, $d2, $43, SWIMMER + $C8, $1 ; trainer
-	db SPRITE_GYM_HELPER, $a + 4, $7 + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP CERULEAN_GYM_WIDTH, $d, $4
-	EVENT_DISP CERULEAN_GYM_WIDTH, $d, $5
-
 CeruleanGymBlocks: ; 5c866 (17:4866)
 	INCBIN "maps/ceruleangym.blk"
 
@@ -75250,24 +71874,8 @@
 	TX_FAR _CeruleanMartText3
 	db "@"
 
-CeruleanMartObject: ; 0x5c8a8 (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/ceruleanmart.asm"
 
-	db $2 ; warps
-	db $7, $3, $5, $ff
-	db $7, $4, $5, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $4 + 4, $3 + 4, $fe, $1, $2 ; person
-	db SPRITE_LASS, $2 + 4, $6 + 4, $fe, $2, $3 ; person
-
-	; warp-to
-	EVENT_DISP CERULEAN_MART_WIDTH, $7, $3
-	EVENT_DISP CERULEAN_MART_WIDTH, $7, $4
-
 LavenderPokecenter_h: ; 0x5c8ce to 0x5c8da (12 bytes) (id=141)
 	db POKECENTER ; tileset
 	db LAVENDER_POKECENTER_HEIGHT, LAVENDER_POKECENTER_WIDTH ; dimensions (y, x)
@@ -75299,25 +71907,8 @@
 	TX_FAR _LavenderPokecenterText3
 	db "@"
 
-LavenderPokecenterObject: ; 0x5c8f4 (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/lavenderpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_GENTLEMAN, $3 + 4, $5 + 4, $ff, $ff, $2 ; person
-	db SPRITE_LITTLE_GIRL, $6 + 4, $2 + 4, $fe, $1, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP LAVENDER_POKECENTER_WIDTH, $7, $4
-
 LavenderMart_h: ; 0x5c920 to 0x5c92c (12 bytes) (id=150)
 	db MART ; tileset
 	db LAVENDER_MART_HEIGHT, LAVENDER_MART_WIDTH ; dimensions (y, x)
@@ -75359,24 +71950,8 @@
 	TX_FAR _UnnamedText_5c958
 	db "@"
 
-LavenderMartObject: ; 0x5c95d (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/lavendermart.asm"
 
-	db $2 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BALDING_GUY, $4 + 4, $3 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $7 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP LAVENDER_MART_WIDTH, $7, $3
-	EVENT_DISP LAVENDER_MART_WIDTH, $7, $4
-
 VermilionPokecenter_h: ; 0x5c983 to 0x5c98f (12 bytes) (id=89)
 	db POKECENTER ; tileset
 	db VERMILION_POKECENTER_HEIGHT, VERMILION_POKECENTER_WIDTH ; dimensions (y, x)
@@ -75408,25 +71983,8 @@
 VermilionPokecenterText4: ; 5c9a8 (17:49a8)
 	db $f6
 
-VermilionPokecenterObject: ; 0x5c9a9 (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/vermilionpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $0, $ff
-	db $7, $4, $0, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_FISHER, $5 + 4, $a + 4, $ff, $ff, $2 ; person
-	db SPRITE_SAILOR, $4 + 4, $5 + 4, $ff, $ff, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP VERMILION_POKECENTER_WIDTH, $7, $4
-
 VermilionMart_h: ; 0x5c9d5 to 0x5c9e1 (12 bytes) (id=91)
 	db MART ; tileset
 	db VERMILION_MART_HEIGHT, VERMILION_MART_WIDTH ; dimensions (y, x)
@@ -75450,24 +72008,8 @@
 	TX_FAR _VermilionMartText3
 	db "@"
 
-VermilionMartObject: ; 0x5c9f4 (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/vermilionmart.asm"
 
-	db $2 ; warps
-	db $7, $3, $2, $ff
-	db $7, $4, $2, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $6 + 4, $5 + 4, $ff, $ff, $2 ; person
-	db SPRITE_LASS, $3 + 4, $3 + 4, $fe, $2, $3 ; person
-
-	; warp-to
-	EVENT_DISP VERMILION_MART_WIDTH, $7, $3
-	EVENT_DISP VERMILION_MART_WIDTH, $7, $4
-
 VermilionGym_h: ; 0x5ca1a to 0x5ca26 (12 bytes) (id=92)
 	db GYM ; tileset
 	db VERMILION_GYM_HEIGHT, VERMILION_GYM_WIDTH ; dimensions (y, x)
@@ -75751,26 +72293,8 @@
 	TX_FAR _UnnamedText_5cbf9
 	db "@"
 
-VermilionGymObject: ; 0x5cbfe (size=58)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/vermiliongym.asm"
 
-	db $2 ; warps
-	db $11, $4, $3, $ff
-	db $11, $5, $3, $ff
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_ROCKER, $1 + 4, $5 + 4, $ff, $d0, $41, LT__SURGE + $C8, $1 ; trainer
-	db SPRITE_GENTLEMAN, $6 + 4, $9 + 4, $ff, $d2, $42, GENTLEMAN + $C8, $3 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d2, $43, ROCKER + $C8, $1 ; trainer
-	db SPRITE_SAILOR, $a + 4, $0 + 4, $ff, $d3, $44, SAILOR + $C8, $8 ; trainer
-	db SPRITE_GYM_HELPER, $e + 4, $4 + 4, $ff, $d0, $5 ; person
-
-	; warp-to
-	EVENT_DISP VERMILION_GYM_WIDTH, $11, $4
-	EVENT_DISP VERMILION_GYM_WIDTH, $11, $5
-
 VermilionGymBlocks: ; 5cc38 (17:4c38)
 	INCBIN "maps/vermiliongym.blk"
 
@@ -75886,26 +72410,8 @@
 	TX_FAR _UnnamedText_5cd1c
 	db "@"
 
-CopycatsHouse2FObject: ; 0x5cd21 (size=48)
-	db $a ; border tile
+INCLUDE "data/mapObjects/copycatshouse2f.asm"
 
-	db $1 ; warps
-	db $1, $7, $2, COPYCATS_HOUSE_1F
-
-	db $2 ; signs
-	db $5, $3, $6 ; CopycatsHouse2FText6
-	db $1, $0, $7 ; CopycatsHouse2FText7
-
-	db $5 ; people
-	db SPRITE_BRUNETTE_GIRL, $3 + 4, $4 + 4, $fe, $0, $1 ; person
-	db SPRITE_BIRD, $6 + 4, $4 + 4, $fe, $2, $2 ; person
-	db SPRITE_SLOWBRO, $1 + 4, $5 + 4, $ff, $d0, $3 ; person
-	db SPRITE_BIRD, $0 + 4, $2 + 4, $ff, $d0, $4 ; person
-	db SPRITE_CLEFAIRY, $6 + 4, $1 + 4, $ff, $d3, $5 ; person
-
-	; warp-to
-	EVENT_DISP COPYCATS_HOUSE_2F_WIDTH, $1, $7 ; COPYCATS_HOUSE_1F
-
 FightingDojo_h: ; 0x5cd51 to 0x5cd5d (12 bytes) (id=177)
 	db DOJO ; tileset
 	db FIGHTING_DOJO_HEIGHT, FIGHTING_DOJO_WIDTH ; dimensions (y, x)
@@ -76251,28 +72757,8 @@
 	TX_FAR _OtherHitmonText
 	db "@"
 
-FightingDojoObject: ; 0x5cf9b (size=72)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/fightingdojo.asm"
 
-	db $2 ; warps
-	db $b, $4, $1, $ff
-	db $b, $5, $1, $ff
-
-	db $0 ; signs
-
-	db $7 ; people
-	db SPRITE_HIKER, $3 + 4, $5 + 4, $ff, $d0, $41, BLACKBELT + $C8, $1 ; trainer
-	db SPRITE_HIKER, $4 + 4, $3 + 4, $ff, $d3, $42, BLACKBELT + $C8, $2 ; trainer
-	db SPRITE_HIKER, $6 + 4, $3 + 4, $ff, $d3, $43, BLACKBELT + $C8, $3 ; trainer
-	db SPRITE_HIKER, $5 + 4, $5 + 4, $ff, $d2, $44, BLACKBELT + $C8, $4 ; trainer
-	db SPRITE_HIKER, $7 + 4, $5 + 4, $ff, $d2, $45, BLACKBELT + $C8, $5 ; trainer
-	db SPRITE_BALL, $1 + 4, $4 + 4, $ff, $ff, $6 ; person
-	db SPRITE_BALL, $1 + 4, $5 + 4, $ff, $ff, $7 ; person
-
-	; warp-to
-	EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $4
-	EVENT_DISP FIGHTING_DOJO_WIDTH, $b, $5
-
 FightingDojoBlocks: ; 5cfe3 (17:4fe3)
 	INCBIN "maps/fightingdojo.blk"
 
@@ -76651,90 +73137,8 @@
 	TX_FAR _SaffronGymAfterBattleText7
 	db "@"
 
-SaffronGymObject: ; 0x5d259 (size=330)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/saffrongym.asm"
 
-	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 $0 ; signs
-
-	db $9 ; people
-	db SPRITE_GIRL, $8 + 4, $9 + 4, $ff, $d0, $41, SABRINA + $C8, $1 ; trainer
-	db SPRITE_MEDIUM, $1 + 4, $a + 4, $ff, $d0, $42, CHANNELER + $C8, $16 ; trainer
-	db SPRITE_BUG_CATCHER, $1 + 4, $11 + 4, $ff, $d0, $43, PSYCHIC_TR + $C8, $1 ; trainer
-	db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d0, $44, CHANNELER + $C8, $17 ; trainer
-	db SPRITE_BUG_CATCHER, $7 + 4, $11 + 4, $ff, $d0, $45, PSYCHIC_TR + $C8, $2 ; trainer
-	db SPRITE_MEDIUM, $d + 4, $3 + 4, $ff, $d0, $46, CHANNELER + $C8, $18 ; trainer
-	db SPRITE_BUG_CATCHER, $d + 4, $11 + 4, $ff, $d0, $47, PSYCHIC_TR + $C8, $3 ; trainer
-	db SPRITE_BUG_CATCHER, $1 + 4, $3 + 4, $ff, $d0, $48, PSYCHIC_TR + $C8, $4 ; trainer
-	db SPRITE_GYM_HELPER, $f + 4, $a + 4, $ff, $d0, $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
-
 SaffronGymBlocks: ; 5d3a3 (17:53a3)
 	INCBIN "maps/saffrongym.blk"
 
@@ -76761,24 +73165,8 @@
 	TX_FAR _SaffronMartText3
 	db "@"
 
-SaffronMartObject: ; 0x5d41c (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/saffronmart.asm"
 
-	db $2 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $4 + 4, $ff, $ff, $2 ; person
-	db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $0, $3 ; person
-
-	; warp-to
-	EVENT_DISP SAFFRON_MART_WIDTH, $7, $3
-	EVENT_DISP SAFFRON_MART_WIDTH, $7, $4
-
 SilphCo1_h: ; 0x5d442 to 0x5d44e (12 bytes) (id=181)
 	db FACILITY ; tileset
 	db SILPH_CO_1F_HEIGHT, SILPH_CO_1F_WIDTH ; dimensions (y, x)
@@ -76807,28 +73195,8 @@
 	TX_FAR _SilphCo1Text1
 	db "@"
 
-SilphCo1Object: ; 0x5d470 (size=50)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco1.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $4 + 4, $ff, $d0, $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
-
 SilphCo1Blocks: ; 5d4a2 (17:54a2)
 	INCBIN "maps/silphco1.blk"
 
@@ -76863,25 +73231,8 @@
 SaffronPokecenterText4: ; 5d54e (17:554e)
 	db $f6
 
-SaffronPokecenterObject: ; 0x5d54f (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/saffronpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $6, $ff
-	db $7, $4, $6, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_FOULARD_WOMAN, $5 + 4, $5 + 4, $ff, $ff, $2 ; person
-	db SPRITE_GENTLEMAN, $3 + 4, $8 + 4, $ff, $d0, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP SAFFRON_POKECENTER_WIDTH, $7, $4
-
 ViridianForestExit_h: ; 0x5d57b to 0x5d587 (12 bytes) (id=47)
 	db FOREST_GATE ; tileset
 	db VIRIDIAN_FOREST_EXIT_HEIGHT, VIRIDIAN_FOREST_EXIT_WIDTH ; dimensions (y, x)
@@ -76904,27 +73255,8 @@
 	TX_FAR _ViridianForestExitText2
 	db "@"
 
-ViridianForestExitObject: ; 0x5d598 (size=48)
-	db $a ; border tile
+INCLUDE "data/mapObjects/viridianforestexit.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $3 + 4, $ff, $ff, $1 ; person
-	db SPRITE_OLD_PERSON, $5 + 4, $2 + 4, $ff, $ff, $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
-
 Route2Gate_h: ; 0x5d5c8 to 0x5d5d4 (12 bytes) (id=49)
 	db GATE ; tileset
 	db ROUTE_2_GATE_HEIGHT, ROUTE_2_GATE_WIDTH ; dimensions (y, x)
@@ -76975,27 +73307,8 @@
 	TX_FAR _Route2GateText2
 	db "@"
 
-Route2GateObject: ; 0x5d620 (size=48)
-	db $a ; border tile
+INCLUDE "data/mapObjects/route2gate.asm"
 
-	db $4 ; warps
-	db $0, $4, $3, $ff
-	db $0, $5, $3, $ff
-	db $7, $4, $4, $ff
-	db $7, $5, $4, $ff
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_OAK_AIDE, $4 + 4, $1 + 4, $ff, $d2, $1 ; person
-	db SPRITE_BUG_CATCHER, $4 + 4, $5 + 4, $fe, $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
-
 ViridianForestEntrance_h: ; 0x5d650 to 0x5d65c (12 bytes) (id=50)
 	db FOREST_GATE ; tileset
 	db VIRIDIAN_FOREST_ENTRANCE_HEIGHT, VIRIDIAN_FOREST_ENTRANCE_WIDTH ; dimensions (y, x)
@@ -77018,113 +73331,62 @@
 	TX_FAR _ViridianForestEntranceText2
 	db "@"
 
-ViridianForestEntranceObject: ; 0x5d66d (size=48)
-	db $a ; border tile
+INCLUDE "data/mapObjects/viridianforestentrance.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_GIRL, $4 + 4, $8 + 4, $ff, $d2, $1 ; person
-	db SPRITE_LITTLE_GIRL, $4 + 4, $2 + 4, $fe, $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
-
-UndergroundTunnelEntranceRoute5_h: ; 0x5d69d to 0x5d6a9 (12 bytes) (id=71)
+UndergroundPathEntranceRoute5_h: ; 0x5d69d to 0x5d6a9 (12 bytes) (id=71)
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_5_HEIGHT, PATH_ENTRANCE_ROUTE_5_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute5Blocks, UndergroundTunnelEntranceRoute5TextPointers, UndergroundTunnelEntranceRoute5Script ; blocks, texts, scripts
+	dw UndergroundPathEntranceRoute5Blocks, UndergroundPathEntranceRoute5TextPointers, UndergroundPathEntranceRoute5Script ; blocks, texts, scripts
 	db $00 ; connections
-	dw UndergroundTunnelEntranceRoute5Object ; objects
+	dw UndergroundPathEntranceRoute5Object ; objects
 
-UndergroundTunnelEntranceRoute5Script: ; 5d6a9 (17:56a9)
+UndergroundPathEntranceRoute5Script: ; 5d6a9 (17:56a9)
 	ld a, $10
 	ld [$d365], a
 	ret
 
-UndergroundTunnelEntranceRoute5_5d6af: ; 5d6af (17:56af)
+UndergroundPathEntranceRoute5_5d6af: ; 5d6af (17:56af)
 	db $50
 
-UndergroundTunnelEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
-	dw UndergroundTunnelEntranceRoute5Text1
+UndergroundPathEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
+	dw UndergroundPathEntranceRoute5Text1
 
-UndergroundTunnelEntranceRoute5Text1: ; 5d6b2 (17:56b2)
+UndergroundPathEntranceRoute5Text1: ; 5d6b2 (17:56b2)
 	db $08 ; asm
 	ld a, $9
 	ld [wWhichTrade], a
 	ld a, $54
 	call Predef
-	ld hl, UndergroundTunnelEntranceRoute5_5d6af
+	ld hl, UndergroundPathEntranceRoute5_5d6af
 	ret
 
-UndergroundTunnelEntranceRoute5Object: ; 0x5d6c1 (size=34)
-	db $a ; border tile
+INCLUDE "data/mapObjects/undergroundpathentranceroute5.asm"
 
-	db $3 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
-	db $4, $4, $0, UNDERGROUND_PATH_NS
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_LITTLE_GIRL, $3 + 4, $2 + 4, $ff, $ff, $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
-
-UndergroundTunnelEntranceRoute6_h: ; 0x5d6e3 to 0x5d6ef (12 bytes) (id=74)
+UndergroundPathEntranceRoute6_h: ; 0x5d6e3 to 0x5d6ef (12 bytes) (id=74)
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_6_HEIGHT, PATH_ENTRANCE_ROUTE_6_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute6Blocks, UndergroundTunnelEntranceRoute6TextPointers, UndergroundTunnelEntranceRoute6Script ; blocks, texts, scripts
+	dw UndergroundPathEntranceRoute6Blocks, UndergroundPathEntranceRoute6TextPointers, UndergroundPathEntranceRoute6Script ; blocks, texts, scripts
 	db $00 ; connections
-	dw UndergroundTunnelEntranceRoute6Object ; objects
+	dw UndergroundPathEntranceRoute6Object ; objects
 
-UndergroundTunnelEntranceRoute6Script: ; 5d6ef (17:56ef)
+UndergroundPathEntranceRoute6Script: ; 5d6ef (17:56ef)
 	ld a, $11
 	ld [$d365], a
 	jp EnableAutoTextBoxDrawing
 
-UndergroundTunnelEntranceRoute6TextPointers: ; 5d6f7 (17:56f7)
-	dw UndergroundTunnelEntranceRoute6Text1
+UndergroundPathEntranceRoute6TextPointers: ; 5d6f7 (17:56f7)
+	dw UndergroundPathEntranceRoute6Text1
 
-UndergroundTunnelEntranceRoute6Text1: ; 5d6f9 (17:56f9)
+UndergroundPathEntranceRoute6Text1: ; 5d6f9 (17:56f9)
 	TX_FAR _UndergrdTunnelEntRoute6Text1
 	db "@"
 
-UndergroundTunnelEntranceRoute6Object: ; 0x5d6fe (size=34)
-	db $a ; border tile
+INCLUDE "data/mapObjects/undergroundpathentranceroute6.asm"
 
-	db $3 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
-	db $4, $4, $1, UNDERGROUND_PATH_NS
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_GIRL, $3 + 4, $2 + 4, $ff, $ff, $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
-
 UndergroundPathEntranceRoute7_h: ; 0x5d720 to 0x5d72c (12 bytes) (id=77)
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute7Blocks, UndergroundPathEntranceRoute7TextPointers, UndergroundPathEntranceRoute7Script ; blocks, texts, scripts
+	dw UndergroundPathEntranceRoute7Blocks, UndergroundPathEntranceRoute7TextPointers, UndergroundPathEntranceRoute7Script ; blocks, texts, scripts
 	db $00 ; connections
 	dw UndergroundPathEntranceRoute7Object ; objects
 
@@ -77140,28 +73402,12 @@
 	TX_FAR _UndergroundPathEntRoute7Text1
 	db "@"
 
-UndergroundPathEntranceRoute7Object: ; 0x5d73b (size=34)
-	db $a ; border tile
+INCLUDE "data/mapObjects/undergroundpathentranceroute7.asm"
 
-	db $3 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-	db $4, $4, $0, UNDERGROUND_PATH_WE
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FAT_BALD_GUY, $4 + 4, $2 + 4, $ff, $ff, $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
-
 UndergroundPathEntranceRoute7Copy_h: ; 5d75d (17:575d)
 	db GATE ; tileset
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute7CopyBlocks, UndergroundPathEntranceRoute7CopyTextPointers, UndergroundPathEntranceRoute7CopyScript ; blocks, texts, scripts
+	dw UndergroundPathEntranceRoute7CopyBlocks, UndergroundPathEntranceRoute7CopyTextPointers, UndergroundPathEntranceRoute7CopyScript ; blocks, texts, scripts
 	db $00 ; connections
 	dw UndergroundPathEntranceRoute7CopyObject ; objects
 
@@ -77190,25 +73436,8 @@
 	TX_FAR _UnnamedText_5d782
 	db "@"
 
-UndergroundPathEntranceRoute7CopyObject: ; 5d787 (17:5787)
-	db $a ; border tile
+INCLUDE "data/mapObjects/undergroundpathentranceroute7copy.asm"
 
-	db $3 ; warps
-	db $7, $3, $5, $ff
-	db $7, $4, $5, $ff
-	db $4, $4, $0, UNDERGROUND_PATH_WE
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_GIRL, $2 + 4, $3 + 4, $ff, $ff, $1 ; person
-	db SPRITE_FAT_BALD_GUY, $4 + 4, $2 + 4, $ff, $ff, $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
-
 SilphCo9_h: ; 0x5d7af to 0x5d7bb (12 bytes) (id=233)
 	db FACILITY ; tileset
 	db SILPH_CO_9F_HEIGHT, SILPH_CO_9F_WIDTH ; dimensions (y, x)
@@ -77465,31 +73694,8 @@
 	TX_FAR _SilphCo9AfterBattleText3
 	db "@"
 
-SilphCo9Object: ; 0x5d93f (size=74)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/silphco9.asm"
 
-	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 $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $e + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_ROCKET, $4 + 4, $2 + 4, $ff, $d1, $42, ROCKET + $C8, $25 ; trainer
-	db SPRITE_OAK_AIDE, $d + 4, $15 + 4, $ff, $d0, $43, SCIENTIST + $C8, $a ; trainer
-	db SPRITE_ROCKET, $10 + 4, $d + 4, $ff, $d1, $44, ROCKET + $C8, $26 ; trainer
-
-	; 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
-
 SilphCo9Blocks: ; 5d989 (17:5989)
 	INCBIN "maps/silphco9.blk"
 
@@ -77609,30 +73815,8 @@
 	TX_FAR _VictoryRoad1AfterBattleText2
 	db "@"
 
-VictoryRoad1Object: ; 0x5dab8 (size=76)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/victoryroad1.asm"
 
-	db $3 ; warps
-	db $11, $8, $2, $ff
-	db $11, $9, $2, $ff
-	db $1, $1, $0, VICTORY_ROAD_2
-
-	db $0 ; signs
-
-	db $7 ; people
-	db SPRITE_LASS, $5 + 4, $7 + 4, $ff, $d3, $41, COOLTRAINER_F + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $2 + 4, $3 + 4, $ff, $d0, $42, COOLTRAINER_M + $C8, $5 ; trainer
-	db SPRITE_BALL, $0 + 4, $b + 4, $ff, $ff, $83, TM_43 ; item
-	db SPRITE_BALL, $2 + 4, $9 + 4, $ff, $ff, $84, RARE_CANDY ; item
-	db SPRITE_BOULDER, $f + 4, $5 + 4, $ff, $10, $5 ; person
-	db SPRITE_BOULDER, $2 + 4, $e + 4, $ff, $10, $6 ; person
-	db SPRITE_BOULDER, $a + 4, $2 + 4, $ff, $10, $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
-
 VictoryRoad1Blocks: ; 5db04 (17:5b04)
 	INCBIN "maps/victoryroad1.blk"
 
@@ -78174,28 +74358,8 @@
 	TX_FAR _PokemonTower1Text5
 	db "@"
 
-PokemonTower1Object: ; 0x60452 (size=58)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower1.asm"
 
-	db $3 ; warps
-	db $11, $a, $1, $ff
-	db $11, $b, $1, $ff
-	db $9, $12, $1, POKEMONTOWER_2
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_CABLE_CLUB_WOMAN, $d + 4, $f + 4, $ff, $d1, $1 ; person
-	db SPRITE_MOM_GEISHA, $8 + 4, $6 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BALDING_GUY, $c + 4, $8 + 4, $ff, $ff, $3 ; person
-	db SPRITE_GIRL, $7 + 4, $d + 4, $ff, $ff, $4 ; person
-	db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $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
-
 PokemonTower1Blocks: ; 6048c (18:448c)
 	INCBIN "maps/pokemontower1.blk"
 
@@ -78387,23 +74551,8 @@
 	TX_FAR _PokemonTower2Text2
 	db "@"
 
-PokemonTower2Object: ; 0x60646 (size=32)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower2.asm"
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_3
-	db $9, $12, $2, POKEMONTOWER_1
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BLUE, $5 + 4, $e + 4, $ff, $ff, $1 ; person
-	db SPRITE_MEDIUM, $7 + 4, $3 + 4, $ff, $d3, $2 ; person
-
-	; warp-to
-	EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $3 ; POKEMONTOWER_3
-	EVENT_DISP POKEMONTOWER_2_WIDTH, $9, $12 ; POKEMONTOWER_1
-
 PokemonTower2Blocks: ; 60666 (18:4666)
 	INCBIN "maps/pokemontower2.blk"
 
@@ -78517,25 +74666,8 @@
 	TX_FAR _PokemonTower3AfterBattleText3
 	db "@"
 
-PokemonTower3Object: ; 0x6075d (size=51)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower3.asm"
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_2
-	db $9, $12, $1, POKEMONTOWER_4
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_MEDIUM, $3 + 4, $c + 4, $ff, $d2, $41, CHANNELER + $C8, $5 ; trainer
-	db SPRITE_MEDIUM, $8 + 4, $9 + 4, $ff, $d0, $42, CHANNELER + $C8, $6 ; trainer
-	db SPRITE_MEDIUM, $d + 4, $a + 4, $ff, $d0, $43, CHANNELER + $C8, $8 ; trainer
-	db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $84, ESCAPE_ROPE ; item
-
-	; warp-to
-	EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $3 ; POKEMONTOWER_2
-	EVENT_DISP POKEMONTOWER_3_WIDTH, $9, $12 ; POKEMONTOWER_4
-
 PokemonTower3Blocks: ; 60790 (18:4790)
 	INCBIN "maps/pokemontower3.blk"
 
@@ -78652,27 +74784,8 @@
 	TX_FAR _PokemonTower4AfterBattleText3
 	db "@"
 
-PokemonTower4Object: ; 0x6088b (size=65)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower4.asm"
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_5
-	db $9, $12, $1, POKEMONTOWER_3
-
-	db $0 ; signs
-
-	db $6 ; people
-	db SPRITE_MEDIUM, $a + 4, $5 + 4, $ff, $d3, $41, CHANNELER + $C8, $9 ; trainer
-	db SPRITE_MEDIUM, $7 + 4, $f + 4, $ff, $d0, $42, CHANNELER + $C8, $a ; trainer
-	db SPRITE_MEDIUM, $c + 4, $e + 4, $ff, $d2, $43, CHANNELER + $C8, $c ; trainer
-	db SPRITE_BALL, $a + 4, $c + 4, $ff, $ff, $84, ELIXER ; item
-	db SPRITE_BALL, $a + 4, $9 + 4, $ff, $ff, $85, AWAKENING ; item
-	db SPRITE_BALL, $10 + 4, $c + 4, $ff, $ff, $86, HP_UP ; item
-
-	; warp-to
-	EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $3 ; POKEMONTOWER_5
-	EVENT_DISP POKEMONTOWER_4_WIDTH, $9, $12 ; POKEMONTOWER_3
-
 PokemonTower4Blocks: ; 608cc (18:48cc)
 	INCBIN "maps/pokemontower4.blk"
 
@@ -78865,27 +74978,8 @@
 	TX_FAR _UnnamedText_60a43
 	db "@"
 
-PokemonTower5Object: ; 0x60a48 (size=65)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower5.asm"
 
-	db $2 ; warps
-	db $9, $3, $0, POKEMONTOWER_4
-	db $9, $12, $0, POKEMONTOWER_6
-
-	db $0 ; signs
-
-	db $6 ; people
-	db SPRITE_MEDIUM, $8 + 4, $c + 4, $ff, $ff, $1 ; person
-	db SPRITE_MEDIUM, $7 + 4, $11 + 4, $ff, $d2, $42, CHANNELER + $C8, $e ; trainer
-	db SPRITE_MEDIUM, $3 + 4, $e + 4, $ff, $d2, $43, CHANNELER + $C8, $10 ; trainer
-	db SPRITE_MEDIUM, $a + 4, $6 + 4, $ff, $d3, $44, CHANNELER + $C8, $11 ; trainer
-	db SPRITE_MEDIUM, $10 + 4, $9 + 4, $ff, $d3, $45, CHANNELER + $C8, $12 ; trainer
-	db SPRITE_BALL, $e + 4, $6 + 4, $ff, $ff, $86, NUGGET ; item
-
-	; warp-to
-	EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $3 ; POKEMONTOWER_4
-	EVENT_DISP POKEMONTOWER_5_WIDTH, $9, $12 ; POKEMONTOWER_6
-
 PokemonTower5Blocks: ; 60a89 (18:4a89)
 	INCBIN "maps/pokemontower5.blk"
 
@@ -79112,26 +75206,8 @@
 	TX_FAR _UnnamedText_60c56
 	db "@"
 
-PokemonTower6Object: ; 0x60c5b (size=58)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower6.asm"
 
-	db $2 ; warps
-	db $9, $12, $1, POKEMONTOWER_5
-	db $10, $9, $0, POKEMONTOWER_7
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_MEDIUM, $a + 4, $c + 4, $ff, $d3, $41, CHANNELER + $C8, $13 ; trainer
-	db SPRITE_MEDIUM, $5 + 4, $9 + 4, $ff, $d0, $42, CHANNELER + $C8, $14 ; trainer
-	db SPRITE_MEDIUM, $5 + 4, $10 + 4, $ff, $d2, $43, CHANNELER + $C8, $15 ; trainer
-	db SPRITE_BALL, $8 + 4, $6 + 4, $ff, $ff, $84, RARE_CANDY ; item
-	db SPRITE_BALL, $e + 4, $e + 4, $ff, $ff, $85, X_ACCURACY ; item
-
-	; warp-to
-	EVENT_DISP POKEMONTOWER_6_WIDTH, $9, $12 ; POKEMONTOWER_5
-	EVENT_DISP POKEMONTOWER_6_WIDTH, $10, $9 ; POKEMONTOWER_7
-
 PokemonTower6Blocks: ; 60c95 (18:4c95)
 	INCBIN "maps/pokemontower6.blk"
 
@@ -79427,23 +75503,8 @@
 	TX_FAR _PokemonTower7AfterBattleText3
 	db "@"
 
-PokemonTower7Object: ; 0x60ef6 (size=42)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/pokemontower7.asm"
 
-	db $1 ; warps
-	db $10, $9, $1, POKEMONTOWER_6
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_ROCKET, $b + 4, $9 + 4, $ff, $d3, $41, ROCKET + $C8, $13 ; trainer
-	db SPRITE_ROCKET, $9 + 4, $c + 4, $ff, $d2, $42, ROCKET + $C8, $14 ; trainer
-	db SPRITE_ROCKET, $7 + 4, $9 + 4, $ff, $d3, $43, ROCKET + $C8, $15 ; trainer
-	db SPRITE_MR_FUJI, $3 + 4, $a + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP POKEMONTOWER_7_WIDTH, $10, $9 ; POKEMONTOWER_6
-
 PokemonTower7Blocks: ; 60f20 (18:4f20)
 	INCBIN "maps/pokemontower7.blk"
 
@@ -79474,32 +75535,8 @@
 	TX_FAR _CeladonMart1Text3
 	db "@"
 
-CeladonMart1Object: ; 0x60f9e (size=64)
-	db $f ; border tile
+INCLUDE "data/mapObjects/celadonmart1.asm"
 
-	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 $2 ; signs
-	db $4, $b, $2 ; CeladonMart1Text2
-	db $1, $e, $3 ; CeladonMart1Text3
-
-	db $1 ; people
-	db SPRITE_CABLE_CLUB_WOMAN, $3 + 4, $8 + 4, $ff, $d0, $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
-
 CeladonMart1Blocks: ; 60fde (18:4fde)
 	INCBIN "maps/celadonmart1.blk"
 
@@ -79784,43 +75821,8 @@
 	TX_FAR _ViridianForestText14
 	db "@"
 
-ViridianForestObject: ; 0x611da (size=127)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/viridianforest.asm"
 
-	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 ; 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 $8 ; people
-	db SPRITE_BUG_CATCHER, $2b + 4, $10 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BUG_CATCHER, $21 + 4, $1e + 4, $ff, $d2, $42, BUG_CATCHER + $C8, $1 ; trainer
-	db SPRITE_BUG_CATCHER, $13 + 4, $1e + 4, $ff, $d2, $43, BUG_CATCHER + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $12 + 4, $2 + 4, $ff, $d2, $44, BUG_CATCHER + $C8, $3 ; trainer
-	db SPRITE_BALL, $b + 4, $19 + 4, $ff, $ff, $85, ANTIDOTE ; item
-	db SPRITE_BALL, $1d + 4, $c + 4, $ff, $ff, $86, POTION ; item
-	db SPRITE_BALL, $1f + 4, $1 + 4, $ff, $ff, $87, POKE_BALL ; item
-	db SPRITE_BUG_CATCHER, $28 + 4, $1b + 4, $ff, $ff, $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
-
 SSAnne1_h: ; 0x61259 to 0x61265 (12 bytes) (id=95)
 	db SHIP ; tileset
 	db SS_ANNE_1_HEIGHT, SS_ANNE_1_WIDTH ; dimensions (y, x)
@@ -79844,41 +75846,8 @@
 	TX_FAR _SSAnne1Text2
 	db "@"
 
-SSAnne1Object: ; 0x61277 (size=104)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne1.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_WAITER, $6 + 4, $c + 4, $fe, $2, $1 ; person
-	db SPRITE_SAILOR, $5 + 4, $1b + 4, $ff, $ff, $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
-
 SSAnne1Blocks: ; 612df (18:52df)
 	INCBIN "maps/ssanne1.blk"
 
@@ -80100,37 +76069,8 @@
 	TX_FAR _SSAnneRivalCaptainText
 	db "@"
 
-SSAnne2Object: ; 0x61514 (size=90)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne2.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_WAITER, $7 + 4, $3 + 4, $fe, $1, $1 ; person
-	db SPRITE_BLUE, $4 + 4, $24 + 4, $ff, $d0, $42, SONY1 + $C8, $1 ; trainer
-
-	; 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
-
 SSAnne2Blocks: ; 6156e (18:556e)
 	INCBIN "maps/ssanne2.blk"
 
@@ -80147,29 +76087,8 @@
 SSAnne4TextPointers: ; 61631 (18:5631)
 	db "@"
 
-SSAnne4Object: ; 0x61632 (size=52)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne4.asm"
 
-	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 $0 ; signs
-
-	db $0 ; people
-
-	; 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
-
 SSAnne4Blocks: ; 61666 (18:5666)
 	INCBIN "maps/ssanne4.blk"
 
@@ -80270,26 +76189,8 @@
 	TX_FAR _SSAnneAfterBattleText2
 	db "@"
 
-SSAnne5Object: ; 0x6172b (size=54)
-	db $23 ; border tile
+INCLUDE "data/mapObjects/ssanne5.asm"
 
-	db $2 ; warps
-	db $6, $d, $0, SS_ANNE_3
-	db $7, $d, $0, SS_ANNE_3
-
-	db $0 ; signs
-
-	db $5 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $5 + 4, $ff, $d1, $1 ; person
-	db SPRITE_SAILOR, $9 + 4, $4 + 4, $ff, $ff, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_1, $b + 4, $7 + 4, $ff, $ff, $3 ; person
-	db SPRITE_SAILOR, $4 + 4, $4 + 4, $ff, $d0, $44, SAILOR + $C8, $1 ; trainer
-	db SPRITE_SAILOR, $8 + 4, $a + 4, $ff, $d1, $45, SAILOR + $C8, $2 ; trainer
-
-	; warp-to
-	EVENT_DISP SS_ANNE_5_WIDTH, $6, $d ; SS_ANNE_3
-	EVENT_DISP SS_ANNE_5_WIDTH, $7, $d ; SS_ANNE_3
-
 SSAnne5Blocks: ; 61761 (18:5761)
 	INCBIN "maps/ssanne5.blk"
 
@@ -80373,26 +76274,8 @@
 	TX_FAR _UnnamedText_61816
 	db "@"
 
-SSAnne6Object: ; 0x6181b (size=54)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne6.asm"
 
-	db $1 ; warps
-	db $0, $6, $a, SS_ANNE_1
-
-	db $0 ; signs
-
-	db $7 ; people
-	db SPRITE_COOK, $8 + 4, $1 + 4, $fe, $1, $1 ; person
-	db SPRITE_COOK, $8 + 4, $5 + 4, $fe, $1, $2 ; person
-	db SPRITE_COOK, $7 + 4, $9 + 4, $fe, $1, $3 ; person
-	db SPRITE_COOK, $6 + 4, $d + 4, $ff, $ff, $4 ; person
-	db SPRITE_COOK, $8 + 4, $d + 4, $ff, $ff, $5 ; person
-	db SPRITE_COOK, $a + 4, $d + 4, $ff, $ff, $6 ; person
-	db SPRITE_COOK, $d + 4, $b + 4, $ff, $d1, $7 ; person
-
-	; warp-to
-	EVENT_DISP SS_ANNE_6_WIDTH, $0, $6 ; SS_ANNE_1
-
 SSAnne6Blocks: ; 61851 (18:5851)
 	INCBIN "maps/ssanne6.blk"
 
@@ -80500,22 +76383,8 @@
 	TX_FAR _SSAnne7Text3
 	db "@"
 
-SSAnne7Object: ; 0x61946 (size=24)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne7.asm"
 
-	db $1 ; warps
-	db $7, $0, $8, SS_ANNE_2
-
-	db $2 ; signs
-	db $1, $4, $2 ; SSAnne7Text2
-	db $2, $1, $3 ; SSAnne7Text3
-
-	db $1 ; people
-	db SPRITE_SS_CAPTAIN, $2 + 4, $4 + 4, $ff, $d1, $1 ; person
-
-	; warp-to
-	EVENT_DISP SS_ANNE_7_WIDTH, $7, $0 ; SS_ANNE_2
-
 SSAnne7Blocks: ; 6195e (18:595e)
 	INCBIN "maps/ssanne7.blk"
 
@@ -80691,40 +76560,8 @@
 	TX_FAR _SSAnne8Text11
 	db "@"
 
-SSAnne8Object: ; 0x61a60 (size=127)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne8.asm"
 
-	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 $0 ; signs
-
-	db $b ; people
-	db SPRITE_GENTLEMAN, $3 + 4, $2 + 4, $ff, $d2, $41, GENTLEMAN + $C8, $1 ; trainer
-	db SPRITE_GENTLEMAN, $4 + 4, $b + 4, $ff, $d1, $42, GENTLEMAN + $C8, $2 ; trainer
-	db SPRITE_BUG_CATCHER, $e + 4, $b + 4, $ff, $d1, $43, YOUNGSTER + $C8, $8 ; trainer
-	db SPRITE_LASS, $b + 4, $d + 4, $ff, $d2, $44, LASS + $C8, $b ; trainer
-	db SPRITE_GIRL, $3 + 4, $16 + 4, $fe, $1, $5 ; person
-	db SPRITE_FAT_BALD_GUY, $e + 4, $0 + 4, $ff, $ff, $6 ; person
-	db SPRITE_LITTLE_GIRL, $b + 4, $2 + 4, $ff, $d0, $7 ; person
-	db SPRITE_CLEFAIRY, $b + 4, $3 + 4, $ff, $d0, $8 ; person
-	db SPRITE_GIRL, $d + 4, $a + 4, $ff, $d3, $9 ; person
-	db SPRITE_BALL, $f + 4, $c + 4, $ff, $ff, $8a, TM_08 ; item
-	db SPRITE_GENTLEMAN, $d + 4, $15 + 4, $fe, $2, $b ; 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
-
 SSAnne8Blocks: ; 61adf (18:5adf)
 	INCBIN "maps/ssanne8.blk"
 
@@ -80952,54 +76789,8 @@
 	TX_FAR _SSAnne9AfterBattleText4
 	db "@"
 
-SSAnne9Object: ; 0x61c8d (size=188)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne9.asm"
 
-	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 $0 ; signs
-
-	db $d ; people
-	db SPRITE_GENTLEMAN, $2 + 4, $a + 4, $ff, $d3, $41, GENTLEMAN + $C8, $3 ; trainer
-	db SPRITE_FISHER2, $4 + 4, $d + 4, $ff, $d2, $42, FISHER + $C8, $1 ; trainer
-	db SPRITE_GENTLEMAN, $e + 4, $0 + 4, $ff, $d3, $43, GENTLEMAN + $C8, $5 ; trainer
-	db SPRITE_LASS, $b + 4, $2 + 4, $ff, $d0, $44, LASS + $C8, $c ; trainer
-	db SPRITE_GENTLEMAN, $2 + 4, $1 + 4, $ff, $d0, $5 ; person
-	db SPRITE_BALL, $1 + 4, $c + 4, $ff, $ff, $86, MAX_ETHER ; item
-	db SPRITE_GENTLEMAN, $2 + 4, $15 + 4, $ff, $d0, $7 ; person
-	db SPRITE_OLD_PERSON, $1 + 4, $16 + 4, $ff, $d0, $8 ; person
-	db SPRITE_BALL, $c + 4, $0 + 4, $ff, $ff, $89, RARE_CANDY ; item
-	db SPRITE_GENTLEMAN, $c + 4, $c + 4, $ff, $d0, $a ; person
-	db SPRITE_YOUNG_BOY, $e + 4, $b + 4, $ff, $ff, $b ; person
-	db SPRITE_BRUNETTE_GIRL, $c + 4, $16 + 4, $ff, $d2, $c ; person
-	db SPRITE_FOULARD_WOMAN, $c + 4, $14 + 4, $ff, $d3, $d ; 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
-
 SSAnne10_h: ; 0x61d49 to 0x61d55 (12 bytes) (id=104)
 	db SHIP ; tileset
 	db SS_ANNE_10_HEIGHT, SS_ANNE_10_WIDTH ; dimensions (y, x)
@@ -81210,48 +77001,8 @@
 	TX_FAR _SSAnne10Text7
 	db "@"
 
-SSAnne10Object: ; 0x61e75 (size=165)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ssanne10.asm"
 
-	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 $0 ; signs
-
-	db $b ; people
-	db SPRITE_SAILOR, $d + 4, $0 + 4, $ff, $d0, $41, SAILOR + $C8, $3 ; trainer
-	db SPRITE_SAILOR, $b + 4, $2 + 4, $ff, $d0, $42, SAILOR + $C8, $4 ; trainer
-	db SPRITE_SAILOR, $3 + 4, $c + 4, $ff, $d2, $43, SAILOR + $C8, $5 ; trainer
-	db SPRITE_SAILOR, $2 + 4, $16 + 4, $ff, $d0, $44, SAILOR + $C8, $6 ; trainer
-	db SPRITE_SAILOR, $2 + 4, $0 + 4, $ff, $d3, $45, SAILOR + $C8, $7 ; trainer
-	db SPRITE_FISHER2, $4 + 4, $0 + 4, $ff, $d3, $46, FISHER + $C8, $2 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $d + 4, $a + 4, $ff, $d3, $7 ; person
-	db SPRITE_SLOWBRO, $c + 4, $b + 4, $ff, $ff, $8 ; person
-	db SPRITE_BALL, $2 + 4, $14 + 4, $ff, $ff, $89, ETHER ; item
-	db SPRITE_BALL, $2 + 4, $a + 4, $ff, $ff, $8a, TM_44 ; item
-	db SPRITE_BALL, $b + 4, $c + 4, $ff, $ff, $8b, MAX_POTION ; item
-
-	; 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
-
 UndergroundPathNS_h: ; 0x61f1a to 0x61f26 (12 bytes) (id=119)
 	db UNDERGROUND ; tileset
 	db UNDERGROUND_PATH_NS_HEIGHT, UNDERGROUND_PATH_NS_WIDTH ; dimensions (y, x)
@@ -81265,21 +77016,8 @@
 UndergroundPathNSTextPointers: ; 61f29 (18:5f29)
 	db "@"
 
-UndergroundPathNSObject: ; 0x61f2a (size=20)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/undergroundpathns.asm"
 
-	db $2 ; warps
-	db $4, $5, $2, PATH_ENTRANCE_ROUTE_5
-	db $29, $2, $2, PATH_ENTRANCE_ROUTE_6
-
-	db $0 ; signs
-
-	db $0 ; people
-
-	; 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
-
 UndergroundPathWE_h: ; 0x61f3e to 0x61f4a (12 bytes) (id=121)
 	db UNDERGROUND ; tileset
 	db UNDERGROUND_PATH_WE_HEIGHT, UNDERGROUND_PATH_WE_WIDTH ; dimensions (y, x)
@@ -81293,21 +77031,8 @@
 UndergroundPathWETextPointers: ; 61f4d (18:5f4d)
 	db "@"
 
-UndergroundPathWEObject: ; 0x61f4e (size=20)
-	db $1 ; border tile
+INCLUDE "data/mapObjects/undergroundpathwe.asm"
 
-	db $2 ; warps
-	db $5, $2, $2, PATH_ENTRANCE_ROUTE_7
-	db $2, $2f, $2, PATH_ENTRANCE_ROUTE_8
-
-	db $0 ; signs
-
-	db $0 ; people
-
-	; 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
-
 DiglettsCave_h: ; 0x61f62 to 0x61f6e (12 bytes) (id=197)
 	db CAVERN ; tileset
 	db DIGLETTS_CAVE_HEIGHT, DIGLETTS_CAVE_WIDTH ; dimensions (y, x)
@@ -81321,21 +77046,8 @@
 DiglettsCaveTextPointers: ; 61f71 (18:5f71)
 	db "@"
 
-DiglettsCaveObject: ; 0x61f72 (size=20)
-	db $19 ; border tile
+INCLUDE "data/mapObjects/diglettscave.asm"
 
-	db $2 ; warps
-	db $5, $5, $2, DIGLETTS_CAVE_EXIT
-	db $1f, $25, $2, DIGLETTS_CAVE_ENTRANCE
-
-	db $0 ; signs
-
-	db $0 ; people
-
-	; warp-to
-	EVENT_DISP DIGLETTS_CAVE_WIDTH, $5, $5 ; DIGLETTS_CAVE_EXIT
-	EVENT_DISP DIGLETTS_CAVE_WIDTH, $1f, $25 ; DIGLETTS_CAVE_ENTRANCE
-
 DiglettsCaveBlocks: ; 61f86 (18:5f86)
 	INCBIN "maps/diglettscave.blk"
 
@@ -81716,30 +77428,8 @@
 	TX_FAR _UnnamedText_6237b
 	db "@"
 
-SilphCo11Object: ; 0x62380 (size=72)
-	db $d ; border tile
+INCLUDE "data/mapObjects/silphco11.asm"
 
-	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 $0 ; signs
-
-	db $5 ; people
-	db SPRITE_MR_MASTERBALL, $5 + 4, $7 + 4, $ff, $d0, $1 ; person
-	db SPRITE_FOULARD_WOMAN, $5 + 4, $a + 4, $ff, $d0, $2 ; person
-	db SPRITE_GIOVANNI, $9 + 4, $6 + 4, $ff, $d0, $43, GIOVANNI + $C8, $2 ; trainer
-	db SPRITE_ROCKET, $10 + 4, $3 + 4, $ff, $d1, $44, ROCKET + $C8, $29 ; trainer
-	db SPRITE_ROCKET, $9 + 4, $f + 4, $ff, $d1, $45, ROCKET + $C8, $28 ; trainer
-
-	; 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
-
 SilphCo11Blocks: ; 623c8 (18:63c8)
 	INCBIN "maps/silphco11.blk"
 
@@ -88188,32 +83878,8 @@
 	TX_FAR _UnnamedText_74bd9
 	db "@"
 
-ViridianGymObject: ; 0x74bde (size=105)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/viridiangym.asm"
 
-	db $2 ; warps
-	db $11, $10, $4, $ff
-	db $11, $11, $4, $ff
-
-	db $0 ; signs
-
-	db $b ; people
-	db SPRITE_GIOVANNI, $1 + 4, $2 + 4, $ff, $d0, $41, GIOVANNI + $C8, $3 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $7 + 4, $c + 4, $ff, $d0, $42, COOLTRAINER_M + $C8, $9 ; trainer
-	db SPRITE_HIKER, $b + 4, $b + 4, $ff, $d1, $43, BLACKBELT + $C8, $6 ; trainer
-	db SPRITE_ROCKER, $7 + 4, $a + 4, $ff, $d0, $44, TAMER + $C8, $3 ; trainer
-	db SPRITE_HIKER, $7 + 4, $3 + 4, $ff, $d2, $45, BLACKBELT + $C8, $7 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $d + 4, $ff, $d3, $46, COOLTRAINER_M + $C8, $a ; trainer
-	db SPRITE_HIKER, $1 + 4, $a + 4, $ff, $d0, $47, BLACKBELT + $C8, $8 ; trainer
-	db SPRITE_ROCKER, $10 + 4, $2 + 4, $ff, $d3, $48, TAMER + $C8, $4 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_1, $5 + 4, $6 + 4, $ff, $d0, $49, COOLTRAINER_M + $C8, $1 ; trainer
-	db SPRITE_GYM_HELPER, $f + 4, $10 + 4, $ff, $d0, $a ; person
-	db SPRITE_BALL, $9 + 4, $10 + 4, $ff, $ff, $8b, REVIVE ; item
-
-	; warp-to
-	EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $10
-	EVENT_DISP VIRIDIAN_GYM_WIDTH, $11, $11
-
 ViridianGymBlocks: ; 74c47 (1d:4c47)
 	INCBIN "maps/viridiangym.blk"
 
@@ -88255,24 +83921,8 @@
 	TX_FAR _UnnamedText_74cd5
 	db "@"
 
-PewterMartObject: ; 0x74cda (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/pewtermart.asm"
 
-	db $2 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_BUG_CATCHER, $3 + 4, $3 + 4, $fe, $1, $2 ; person
-	db SPRITE_BLACK_HAIR_BOY_2, $5 + 4, $5 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP PEWTER_MART_WIDTH, $7, $3
-	EVENT_DISP PEWTER_MART_WIDTH, $7, $4
-
 UnknownDungeon1_h: ; 0x74d00 to 0x74d0c (12 bytes) (id=228)
 	db CAVERN ; tileset
 	db UNKNOWN_DUNGEON_1_HEIGHT, UNKNOWN_DUNGEON_1_WIDTH ; dimensions (y, x)
@@ -88288,38 +83938,8 @@
 	dw Predef5CText
 	dw Predef5CText
 
-UnknownDungeon1Object: ; 0x74d15 (size=97)
-	db $7d ; border tile
+INCLUDE "data/mapObjects/unknowndungeon1.asm"
 
-	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 $0 ; signs
-
-	db $3 ; people
-	db SPRITE_BALL, $d + 4, $7 + 4, $ff, $ff, $81, FULL_RESTORE ; item
-	db SPRITE_BALL, $3 + 4, $13 + 4, $ff, $ff, $82, MAX_ELIXER ; item
-	db SPRITE_BALL, $0 + 4, $5 + 4, $ff, $ff, $83, NUGGET ; item
-
-	; 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
-
 UnknownDungeon1Blocks: ; 74d76 (1d:4d76)
 	INCBIN "maps/unknowndungeon1.blk"
 
@@ -88440,24 +84060,8 @@
 	TX_FAR _UnnamedText_74eb9
 	db "@"
 
-CeruleanHouse2Object: ; 0x74ebe (size=34)
-	db $c ; border tile
+INCLUDE "data/mapObjects/ceruleanhouse2.asm"
 
-	db $3 ; warps
-	db $0, $2, $9, $ff
-	db $7, $2, $8, $ff
-	db $7, $3, $8, $ff
-
-	db $0 ; signs
-
-	db $1 ; people
-	db SPRITE_FAT_BALD_GUY, $3 + 4, $5 + 4, $ff, $d3, $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
-
 VendingMachineMenu: ; 74ee0 (1d:4ee0)
 	ld hl, VendingMachineText1
 	call PrintText
@@ -88625,24 +84229,8 @@
 	TX_FAR _FuchsiaHouse1Text3
 	db "@"
 
-FuchsiaHouse1Object: ; 0x75031 (size=38)
-	db $a ; border tile
+INCLUDE "data/mapObjects/fuchsiahouse1.asm"
 
-	db $2 ; warps
-	db $7, $2, $1, $ff
-	db $7, $3, $1, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MOM_GEISHA, $3 + 4, $2 + 4, $ff, $d3, $1 ; person
-	db SPRITE_GAMBLER, $2 + 4, $7 + 4, $ff, $d1, $2 ; person
-	db SPRITE_BUG_CATCHER, $5 + 4, $5 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $2
-	EVENT_DISP FUCHSIA_HOUSE_1_WIDTH, $7, $3
-
 FuchsiaPokecenter_h: ; 0x75057 to 0x75063 (12 bytes) (id=154)
 	db POKECENTER ; tileset
 	db FUCHSIA_POKECENTER_HEIGHT, FUCHSIA_POKECENTER_WIDTH ; dimensions (y, x)
@@ -88674,25 +84262,8 @@
 FuchsiaPokecenterText4: ; 7507c (1d:507c)
 	db $f6
 
-FuchsiaPokecenterObject: ; 0x7507d (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/fuchsiapokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $2, $ff
-	db $7, $4, $2, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_ROCKER, $3 + 4, $2 + 4, $ff, $ff, $2 ; person
-	db SPRITE_LASS, $5 + 4, $6 + 4, $fe, $2, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP FUCHSIA_POKECENTER_WIDTH, $7, $4
-
 FuchsiaHouse2_h: ; 0x750a9 to 0x750b5 (12 bytes) (id=155)
 	db LAB ; tileset
 	db FUCHSIA_HOUSE_2_HEIGHT, FUCHSIA_HOUSE_2_WIDTH ; dimensions (y, x)
@@ -88819,26 +84390,8 @@
 	TX_FAR _UnnamedText_7517b
 	db "@"
 
-FuchsiaHouse2Object: ; 0x75180 (size=45)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/fuchsiahouse2.asm"
 
-	db $2 ; warps
-	db $7, $4, $3, $ff
-	db $7, $5, $3, $ff
-
-	db $2 ; signs
-	db $3, $4, $4 ; FuchsiaHouse2Text4
-	db $3, $5, $5 ; FuchsiaHouse2Text5
-
-	db $3 ; people
-	db SPRITE_WARDEN, $3 + 4, $2 + 4, $ff, $ff, $1 ; person
-	db SPRITE_BALL, $3 + 4, $8 + 4, $ff, $ff, $82, RARE_CANDY ; item
-	db SPRITE_BOULDER, $4 + 4, $8 + 4, $ff, $10, $3 ; person
-
-	; warp-to
-	EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $4
-	EVENT_DISP FUCHSIA_HOUSE_2_WIDTH, $7, $5
-
 FuchsiaHouse2Blocks: ; 751ad (1d:51ad)
 	INCBIN "maps/fuchsiahouse2.blk"
 
@@ -89150,27 +84703,8 @@
 	TX_FAR _UnnamedText_753f0
 	db "@"
 
-SafariZoneEntranceObject: ; 0x753f5 (size=48)
-	db $a ; border tile
+INCLUDE "data/mapObjects/safarizoneentrance.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_WHITE_PLAYER, $2 + 4, $6 + 4, $ff, $d2, $1 ; person
-	db SPRITE_WHITE_PLAYER, $4 + 4, $1 + 4, $ff, $d3, $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
-
 SafariZoneEntranceBlocks: ; 75425 (1d:5425)
 	INCBIN "maps/safarizoneentrance.blk"
 
@@ -89518,29 +85052,8 @@
 	TX_FAR _UnnamedText_75653
 	db "@"
 
-FuchsiaGymObject: ; 0x75658 (size=82)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/fuchsiagym.asm"
 
-	db $2 ; warps
-	db $11, $4, $5, $ff
-	db $11, $5, $5, $ff
-
-	db $0 ; signs
-
-	db $8 ; people
-	db SPRITE_BLACKBELT, $a + 4, $4 + 4, $ff, $d0, $41, KOGA + $C8, $1 ; trainer
-	db SPRITE_ROCKER, $d + 4, $8 + 4, $ff, $d0, $42, JUGGLER + $C8, $7 ; trainer
-	db SPRITE_ROCKER, $8 + 4, $7 + 4, $ff, $d3, $43, JUGGLER + $C8, $3 ; trainer
-	db SPRITE_ROCKER, $c + 4, $1 + 4, $ff, $d0, $44, JUGGLER + $C8, $8 ; trainer
-	db SPRITE_ROCKER, $5 + 4, $3 + 4, $ff, $d1, $45, TAMER + $C8, $1 ; trainer
-	db SPRITE_ROCKER, $2 + 4, $8 + 4, $ff, $d0, $46, TAMER + $C8, $2 ; trainer
-	db SPRITE_ROCKER, $7 + 4, $2 + 4, $ff, $d2, $47, JUGGLER + $C8, $4 ; trainer
-	db SPRITE_GYM_HELPER, $f + 4, $7 + 4, $ff, $d0, $8 ; person
-
-	; warp-to
-	EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $4
-	EVENT_DISP FUCHSIA_GYM_WIDTH, $11, $5
-
 FuchsiaGymBlocks: ; 756aa (1d:56aa)
 	INCBIN "maps/fuchsiagym.blk"
 
@@ -89572,24 +85085,8 @@
 	TX_FAR _FuchsiaMeetingRoomText3
 	db "@"
 
-FuchsiaMeetingRoomObject: ; 0x756fc (size=38)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/fuchsiameetingroom.asm"
 
-	db $2 ; warps
-	db $7, $4, $6, $ff
-	db $7, $5, $6, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_WHITE_PLAYER, $1 + 4, $4 + 4, $ff, $d0, $1 ; person
-	db SPRITE_WHITE_PLAYER, $2 + 4, $0 + 4, $ff, $d1, $2 ; person
-	db SPRITE_WHITE_PLAYER, $1 + 4, $a + 4, $ff, $d0, $3 ; person
-
-	; warp-to
-	EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $4
-	EVENT_DISP FUCHSIA_MEETING_ROOM_WIDTH, $7, $5
-
 FuchsiaMeetingRoomBlocks: ; 75722 (1d:5722)
 	INCBIN "maps/fuchsiameetingroom.blk"
 
@@ -90084,30 +85581,8 @@
 	TX_FAR _UnnamedText_75ac7
 	db "@"
 
-CinnabarGymObject: ; 0x75acc (size=90)
-	db $2e ; border tile
+INCLUDE "data/mapObjects/cinnabargym.asm"
 
-	db $2 ; warps
-	db $11, $10, $1, $ff
-	db $11, $11, $1, $ff
-
-	db $0 ; signs
-
-	db $9 ; people
-	db SPRITE_FAT_BALD_GUY, $3 + 4, $3 + 4, $ff, $d0, $41, BLAINE + $C8, $1 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $11 + 4, $ff, $d0, $42, SUPER_NERD + $C8, $9 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $11 + 4, $ff, $d0, $43, BURGLAR + $C8, $4 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $4 + 4, $b + 4, $ff, $d0, $44, SUPER_NERD + $C8, $a ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $b + 4, $ff, $d0, $45, BURGLAR + $C8, $5 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $b + 4, $ff, $d0, $46, SUPER_NERD + $C8, $b ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $e + 4, $3 + 4, $ff, $d0, $47, BURGLAR + $C8, $6 ; trainer
-	db SPRITE_BLACK_HAIR_BOY_2, $8 + 4, $3 + 4, $ff, $d0, $48, SUPER_NERD + $C8, $c ; trainer
-	db SPRITE_GYM_HELPER, $d + 4, $10 + 4, $ff, $d0, $9 ; person
-
-	; warp-to
-	EVENT_DISP CINNABAR_GYM_WIDTH, $11, $10
-	EVENT_DISP CINNABAR_GYM_WIDTH, $11, $11
-
 CinnabarGymBlocks: ; 75b26 (1d:5b26)
 	INCBIN "maps/cinnabargym.blk"
 
@@ -90149,32 +85624,8 @@
 	TX_FAR _Lab1Text5
 	db "@"
 
-Lab1Object: ; 0x75bb3 (size=62)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/lab1.asm"
 
-	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 $4 ; signs
-	db $2, $3, $2 ; Lab1Text2
-	db $4, $9, $3 ; Lab1Text3
-	db $4, $d, $4 ; Lab1Text4
-	db $4, $11, $5 ; Lab1Text5
-
-	db $1 ; people
-	db SPRITE_FISHER, $3 + 4, $1 + 4, $ff, $ff, $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
-
 Lab1Blocks: ; 75bf1 (1d:5bf1)
 	INCBIN "maps/lab1.blk"
 
@@ -90212,24 +85663,8 @@
 	call Predef
 	jp TextScriptEnd
 
-Lab2Object: ; 0x75c45 (size=38)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/lab2.asm"
 
-	db $2 ; warps
-	db $7, $2, $2, CINNABAR_LAB_1
-	db $7, $3, $2, CINNABAR_LAB_1
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_BLACK_HAIR_BOY_2, $2 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_OLD_PERSON, $4 + 4, $1 + 4, $ff, $ff, $2 ; person
-	db SPRITE_FOULARD_WOMAN, $5 + 4, $5 + 4, $ff, $d1, $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
-
 Lab2Blocks: ; 75c6b (1d:5c6b)
 	INCBIN "maps/lab2.blk"
 
@@ -90304,26 +85739,8 @@
 	TX_FAR _Lab3Text5
 	db "@"
 
-Lab3Object: ; 0x75cec (size=41)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/lab3.asm"
 
-	db $2 ; warps
-	db $7, $2, $3, CINNABAR_LAB_1
-	db $7, $3, $3, CINNABAR_LAB_1
-
-	db $3 ; signs
-	db $4, $0, $3 ; Lab3Text3
-	db $4, $1, $4 ; Lab3Text4
-	db $1, $2, $5 ; Lab3Text5
-
-	db $2 ; people
-	db SPRITE_OAK_AIDE, $2 + 4, $7 + 4, $ff, $d0, $1 ; person
-	db SPRITE_OAK_AIDE, $3 + 4, $2 + 4, $fe, $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
-
 Lab3Blocks: ; 75d15 (1d:5d15)
 	INCBIN "maps/lab3.blk"
 
@@ -90452,23 +85869,8 @@
 	ld hl, LoadFossilItemAndMonName
 	jp Bankswitch
 
-Lab4Object: ; 0x75df0 (size=32)
-	db $17 ; border tile
+INCLUDE "data/mapObjects/lab4.asm"
 
-	db $2 ; warps
-	db $7, $2, $4, CINNABAR_LAB_1
-	db $7, $3, $4, CINNABAR_LAB_1
-
-	db $0 ; signs
-
-	db $2 ; people
-	db SPRITE_OAK_AIDE, $2 + 4, $5 + 4, $fe, $2, $1 ; person
-	db SPRITE_OAK_AIDE, $6 + 4, $7 + 4, $ff, $d1, $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
-
 Lab4Blocks: ; 75e10 (1d:5e10)
 	INCBIN "maps/lab4.blk"
 
@@ -90503,25 +85905,8 @@
 CinnabarPokecenterText4: ; 75e45 (1d:5e45)
 	db $f6
 
-CinnabarPokecenterObject: ; 0x75e46 (size=44)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/cinnabarpokecenter.asm"
 
-	db $2 ; warps
-	db $7, $3, $3, $ff
-	db $7, $4, $3, $ff
-
-	db $0 ; signs
-
-	db $4 ; people
-	db SPRITE_NURSE, $1 + 4, $3 + 4, $ff, $d0, $1 ; person
-	db SPRITE_LASS, $4 + 4, $9 + 4, $fe, $0, $2 ; person
-	db SPRITE_GENTLEMAN, $6 + 4, $2 + 4, $ff, $ff, $3 ; person
-	db SPRITE_CABLE_CLUB_WOMAN, $2 + 4, $b + 4, $ff, $d0, $4 ; person
-
-	; warp-to
-	EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $3
-	EVENT_DISP CINNABAR_POKECENTER_WIDTH, $7, $4
-
 CinnabarMart_h: ; 0x75e72 to 0x75e7e (12 bytes) (id=172)
 	db MART ; tileset
 	db CINNABAR_MART_HEIGHT, CINNABAR_MART_WIDTH ; dimensions (y, x)
@@ -90545,24 +85930,8 @@
 	TX_FAR _CinnabarMartText3
 	db "@"
 
-CinnabarMartObject: ; 0x75e91 (size=38)
-	db $0 ; border tile
+INCLUDE "data/mapObjects/cinnabarmart.asm"
 
-	db $2 ; warps
-	db $7, $3, $4, $ff
-	db $7, $4, $4, $ff
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MART_GUY, $5 + 4, $0 + 4, $ff, $d3, $1 ; person
-	db SPRITE_ERIKA, $2 + 4, $6 + 4, $ff, $ff, $2 ; person
-	db SPRITE_OAK_AIDE, $4 + 4, $3 + 4, $ff, $ff, $3 ; person
-
-	; warp-to
-	EVENT_DISP CINNABAR_MART_WIDTH, $7, $3
-	EVENT_DISP CINNABAR_MART_WIDTH, $7, $4
-
 CopycatsHouse1F_h: ; 0x75eb7 to 0x75ec3 (12 bytes) (id=175)
 	db REDS_HOUSE_1 ; tileset
 	db COPYCATS_HOUSE_1F_HEIGHT, COPYCATS_HOUSE_1F_WIDTH ; dimensions (y, x)
@@ -90593,26 +85962,8 @@
 	call PlayCry
 	jp TextScriptEnd
 
-CopycatsHouse1FObject: ; 0x75ee3 (size=46)
-	db $a ; border tile
+INCLUDE "data/mapObjects/copycatshouse1f.asm"
 
-	db $3 ; warps
-	db $7, $2, $0, $ff
-	db $7, $3, $0, $ff
-	db $1, $7, $0, COPYCATS_HOUSE_2F
-
-	db $0 ; signs
-
-	db $3 ; people
-	db SPRITE_MOM_GEISHA, $2 + 4, $2 + 4, $ff, $d0, $1 ; person
-	db SPRITE_FAT_BALD_GUY, $4 + 4, $5 + 4, $ff, $d2, $2 ; person
-	db SPRITE_CLEFAIRY, $4 + 4, $1 + 4, $fe, $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
-
 Gary_h: ; 75f11 (1d:5f11)
 	db GYM ;tileset
 	db CHAMPIONS_ROOM_HEIGHT, CHAMPIONS_ROOM_WIDTH ; Height, Width
@@ -90918,27 +86269,8 @@
 	TX_FAR _UnnamedText_7612a
 	db "@"
 
-GaryObject: ; 0x7612f (size=48)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/gary.asm"
 
-	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 $0 ; signs
-
-	db $2 ; people
-	db SPRITE_BLUE, $2 + 4, $4 + 4, $ff, $d0, $1 ; person
-	db SPRITE_OAK, $7 + 4, $3 + 4, $ff, $d1, $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
-
 GaryBlocks: ; 7615f (1d:615f)
 	INCBIN "maps/gary.blk"
 
@@ -91103,26 +86435,8 @@
 	TX_FAR _UnnamedText_7627b
 	db "@"
 
-LoreleiObject: ; 0x76280 (size=44)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/lorelei.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_LORELEI, $2 + 4, $5 + 4, $ff, $d0, $41, LORELEI + $C8, $1 ; trainer
-
-	; 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
-
 LoreleiBlocks: ; 762ac (1d:62ac)
 	INCBIN "maps/lorelei.blk"
 
@@ -91288,26 +86602,8 @@
 	TX_FAR _UnnamedText_763d2
 	db "@"
 
-BrunoObject: ; 0x763d7 (size=44)
-	db $3 ; border tile
+INCLUDE "data/mapObjects/bruno.asm"
 
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_BRUNO, $2 + 4, $5 + 4, $ff, $d0, $41, BRUNO + $C8, $1 ; trainer
-
-	; 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
-
 BrunoBlocks: ; 76403 (1d:6403)
 	INCBIN "maps/bruno.blk"
 
@@ -91476,25 +86772,7 @@
 	TX_FAR _AgathaText2
 	db "@"
 
-AgathaObject: ; 0x76534 (size=44)
-	db $0 ; border tile
-
-	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 $0 ; signs
-
-	db $1 ; people
-	db SPRITE_AGATHA, $2 + 4, $5 + 4, $ff, $d0, $41, AGATHA + $C8, $1 ; trainer
-
-	; 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
+INCLUDE "data/mapObjects/agatha.asm"
 
 AgathaBlocks: ; 76560 (1d:6560)
 	INCBIN "maps/agatha.blk"
--- a/maps/ceruleanhouse.blk
+++ /dev/null
@@ -1,1 +1,0 @@
-	

\ No newline at end of file
--- /dev/null
+++ b/maps/ceruleanhouse1.blk
@@ -1,0 +1,1 @@
+	

\ No newline at end of file
binary files /dev/null b/maps/undergroundpathentranceroute5.blk differ
binary files /dev/null b/maps/undergroundpathentranceroute6.blk differ
binary files a/maps/undergroundtunnelentranceroute5.blk /dev/null differ
binary files a/maps/undergroundtunnelentranceroute6.blk /dev/null differ