summaryrefslogtreecommitdiff
path: root/data/mapObjects
diff options
context:
space:
mode:
Diffstat (limited to 'data/mapObjects')
-rwxr-xr-xdata/mapObjects/agatha.asm19
-rwxr-xr-xdata/mapObjects/battlecenterm.asm9
-rwxr-xr-xdata/mapObjects/bikeshop.asm17
-rwxr-xr-xdata/mapObjects/billshouse.asm17
-rwxr-xr-xdata/mapObjects/blueshouse.asm17
-rwxr-xr-xdata/mapObjects/bruno.asm19
-rwxr-xr-xdata/mapObjects/celadoncity.asm54
-rwxr-xr-xdata/mapObjects/celadondiner.asm19
-rwxr-xr-xdata/mapObjects/celadongamecorner.asm28
-rwxr-xr-xdata/mapObjects/celadongym.asm22
-rwxr-xr-xdata/mapObjects/celadonhotel.asm17
-rwxr-xr-xdata/mapObjects/celadonhouse.asm17
-rwxr-xr-xdata/mapObjects/celadonmansion1.asm25
-rwxr-xr-xdata/mapObjects/celadonmansion2.asm19
-rwxr-xr-xdata/mapObjects/celadonmansion3.asm26
-rwxr-xr-xdata/mapObjects/celadonmansion4.asm17
-rwxr-xr-xdata/mapObjects/celadonmansion5.asm16
-rwxr-xr-xdata/mapObjects/celadonmart1.asm25
-rwxr-xr-xdata/mapObjects/celadonmart2.asm21
-rwxr-xr-xdata/mapObjects/celadonmart3.asm33
-rwxr-xr-xdata/mapObjects/celadonmart4.asm20
-rwxr-xr-xdata/mapObjects/celadonmart5.asm21
-rwxr-xr-xdata/mapObjects/celadonmartelevator.asm15
-rwxr-xr-xdata/mapObjects/celadonmartroof.asm18
-rwxr-xr-xdata/mapObjects/celadonpokecenter.asm18
-rwxr-xr-xdata/mapObjects/celadonprizeroom.asm19
-rwxr-xr-xdata/mapObjects/ceruleancity.asm47
-rwxr-xr-xdata/mapObjects/ceruleangym.asm18
-rwxr-xr-xdata/mapObjects/ceruleanhouse1.asm16
-rwxr-xr-xdata/mapObjects/ceruleanhouse2.asm17
-rwxr-xr-xdata/mapObjects/ceruleanhousetrashed.asm19
-rwxr-xr-xdata/mapObjects/ceruleanmart.asm17
-rwxr-xr-xdata/mapObjects/ceruleanpokecenter.asm18
-rwxr-xr-xdata/mapObjects/cinnabargym.asm23
-rwxr-xr-xdata/mapObjects/cinnabarisland.asm27
-rwxr-xr-xdata/mapObjects/cinnabarmart.asm17
-rwxr-xr-xdata/mapObjects/cinnabarpokecenter.asm18
-rwxr-xr-xdata/mapObjects/copycatshouse1f.asm19
-rwxr-xr-xdata/mapObjects/copycatshouse2f.asm19
-rwxr-xr-xdata/mapObjects/daycarem.asm15
-rwxr-xr-xdata/mapObjects/diglettscave.asm14
-rwxr-xr-xdata/mapObjects/diglettscaveroute11.asm17
-rwxr-xr-xdata/mapObjects/diglettscaveroute2.asm17
-rwxr-xr-xdata/mapObjects/fanclub.asm22
-rwxr-xr-xdata/mapObjects/fightingdojo.asm21
-rwxr-xr-xdata/mapObjects/fuchsiacity.asm52
-rwxr-xr-xdata/mapObjects/fuchsiagym.asm22
-rwxr-xr-xdata/mapObjects/fuchsiahouse1.asm17
-rwxr-xr-xdata/mapObjects/fuchsiahouse2.asm19
-rwxr-xr-xdata/mapObjects/fuchsiahouse3.asm17
-rwxr-xr-xdata/mapObjects/fuchsiamart.asm17
-rwxr-xr-xdata/mapObjects/fuchsiameetingroom.asm17
-rwxr-xr-xdata/mapObjects/fuchsiapokecenter.asm18
-rwxr-xr-xdata/mapObjects/gary.asm20
-rwxr-xr-xdata/mapObjects/halloffameroom.asm15
-rwxr-xr-xdata/mapObjects/indigoplateau.asm14
-rwxr-xr-xdata/mapObjects/indigoplateaulobby.asm21
-rwxr-xr-xdata/mapObjects/lab1.asm25
-rwxr-xr-xdata/mapObjects/lab2.asm17
-rwxr-xr-xdata/mapObjects/lab3.asm19
-rwxr-xr-xdata/mapObjects/lab4.asm16
-rwxr-xr-xdata/mapObjects/lance.asm17
-rwxr-xr-xdata/mapObjects/lavenderhouse1.asm20
-rwxr-xr-xdata/mapObjects/lavenderhouse2.asm16
-rwxr-xr-xdata/mapObjects/lavendermart.asm17
-rwxr-xr-xdata/mapObjects/lavenderpokecenter.asm18
-rwxr-xr-xdata/mapObjects/lavendertown.asm31
-rwxr-xr-xdata/mapObjects/lorelei.asm19
-rwxr-xr-xdata/mapObjects/mansion1.asm29
-rwxr-xr-xdata/mapObjects/mansion2.asm22
-rwxr-xr-xdata/mapObjects/mansion3.asm21
-rwxr-xr-xdata/mapObjects/mansion4.asm20
-rwxr-xr-xdata/mapObjects/mtmoon1.asm34
-rwxr-xr-xdata/mapObjects/mtmoon2.asm26
-rwxr-xr-xdata/mapObjects/mtmoon3.asm27
-rwxr-xr-xdata/mapObjects/mtmoonpokecenter.asm20
-rwxr-xr-xdata/mapObjects/museum1f.asm25
-rwxr-xr-xdata/mapObjects/museum2f.asm19
-rwxr-xr-xdata/mapObjects/namerater.asm15
-rwxr-xr-xdata/mapObjects/oakslab.asm25
-rwxr-xr-xdata/mapObjects/pallettown.asm23
-rwxr-xr-xdata/mapObjects/pewtercity.asm36
-rwxr-xr-xdata/mapObjects/pewtergym.asm17
-rwxr-xr-xdata/mapObjects/pewterhouse1.asm17
-rwxr-xr-xdata/mapObjects/pewterhouse2.asm16
-rwxr-xr-xdata/mapObjects/pewtermart.asm17
-rwxr-xr-xdata/mapObjects/pewterpokecenter.asm18
-rwxr-xr-xdata/mapObjects/pokemontower1.asm21
-rwxr-xr-xdata/mapObjects/pokemontower2.asm16
-rwxr-xr-xdata/mapObjects/pokemontower3.asm18
-rwxr-xr-xdata/mapObjects/pokemontower4.asm20
-rwxr-xr-xdata/mapObjects/pokemontower5.asm20
-rwxr-xr-xdata/mapObjects/pokemontower6.asm19
-rwxr-xr-xdata/mapObjects/pokemontower7.asm16
-rwxr-xr-xdata/mapObjects/powerplant.asm30
-rwxr-xr-xdata/mapObjects/redshouse1f.asm18
-rwxr-xr-xdata/mapObjects/redshouse2f.asm12
-rwxr-xr-xdata/mapObjects/rockethideout1.asm27
-rwxr-xr-xdata/mapObjects/rockethideout2.asm25
-rwxr-xr-xdata/mapObjects/rockethideout3.asm18
-rwxr-xr-xdata/mapObjects/rockethideout4.asm25
-rwxr-xr-xdata/mapObjects/rockethideoutelevator.asm15
-rwxr-xr-xdata/mapObjects/rocktunnel1.asm34
-rwxr-xr-xdata/mapObjects/rocktunnel2.asm26
-rwxr-xr-xdata/mapObjects/rocktunnelpokecenter.asm18
-rwxr-xr-xdata/mapObjects/route1.asm14
-rwxr-xr-xdata/mapObjects/route10.asm28
-rwxr-xr-xdata/mapObjects/route11.asm31
-rwxr-xr-xdata/mapObjects/route11gate.asm21
-rwxr-xr-xdata/mapObjects/route11gateupstairs.asm16
-rwxr-xr-xdata/mapObjects/route12.asm30
-rwxr-xr-xdata/mapObjects/route12gate.asm21
-rwxr-xr-xdata/mapObjects/route12gateupstairs.asm15
-rwxr-xr-xdata/mapObjects/route12house.asm15
-rwxr-xr-xdata/mapObjects/route13.asm21
-rwxr-xr-xdata/mapObjects/route14.asm19
-rwxr-xr-xdata/mapObjects/route15.asm30
-rwxr-xr-xdata/mapObjects/route15gate.asm21
-rwxr-xr-xdata/mapObjects/route15gateupstairs.asm14
-rwxr-xr-xdata/mapObjects/route16.asm37
-rwxr-xr-xdata/mapObjects/route16gate.asm30
-rwxr-xr-xdata/mapObjects/route16gateupstairs.asm16
-rwxr-xr-xdata/mapObjects/route16house.asm16
-rwxr-xr-xdata/mapObjects/route17.asm24
-rwxr-xr-xdata/mapObjects/route18.asm23
-rwxr-xr-xdata/mapObjects/route18gate.asm21
-rwxr-xr-xdata/mapObjects/route18gateupstairs.asm15
-rwxr-xr-xdata/mapObjects/route19.asm30
-rwxr-xr-xdata/mapObjects/route2.asm33
-rwxr-xr-xdata/mapObjects/route20.asm26
-rwxr-xr-xdata/mapObjects/route21.asm17
-rwxr-xr-xdata/mapObjects/route22.asm15
-rwxr-xr-xdata/mapObjects/route22gate.asm19
-rwxr-xr-xdata/mapObjects/route23.asm26
-rwxr-xr-xdata/mapObjects/route24.asm16
-rwxr-xr-xdata/mapObjects/route25.asm23
-rwxr-xr-xdata/mapObjects/route2gate.asm20
-rwxr-xr-xdata/mapObjects/route2house.asm16
-rwxr-xr-xdata/mapObjects/route3.asm18
-rwxr-xr-xdata/mapObjects/route4.asm22
-rwxr-xr-xdata/mapObjects/route5.asm21
-rwxr-xr-xdata/mapObjects/route5gate.asm19
-rwxr-xr-xdata/mapObjects/route6.asm19
-rwxr-xr-xdata/mapObjects/route6gate.asm19
-rwxr-xr-xdata/mapObjects/route7.asm21
-rwxr-xr-xdata/mapObjects/route7gate.asm19
-rwxr-xr-xdata/mapObjects/route8.asm30
-rwxr-xr-xdata/mapObjects/route8gate.asm19
-rwxr-xr-xdata/mapObjects/route9.asm19
-rwxr-xr-xdata/mapObjects/safarizonecenter.asm31
-rwxr-xr-xdata/mapObjects/safarizoneeast.asm27
-rwxr-xr-xdata/mapObjects/safarizoneentrance.asm20
-rwxr-xr-xdata/mapObjects/safarizonenorth.asm35
-rwxr-xr-xdata/mapObjects/safarizoneresthouse1.asm16
-rwxr-xr-xdata/mapObjects/safarizoneresthouse2.asm17
-rwxr-xr-xdata/mapObjects/safarizoneresthouse3.asm17
-rwxr-xr-xdata/mapObjects/safarizoneresthouse4.asm17
-rwxr-xr-xdata/mapObjects/safarizonesecrethouse.asm15
-rwxr-xr-xdata/mapObjects/safarizonewest.asm34
-rwxr-xr-xdata/mapObjects/saffroncity.asm51
-rwxr-xr-xdata/mapObjects/saffrongym.asm83
-rwxr-xr-xdata/mapObjects/saffronhouse1.asm18
-rwxr-xr-xdata/mapObjects/saffronhouse2.asm15
-rwxr-xr-xdata/mapObjects/saffronmart.asm17
-rwxr-xr-xdata/mapObjects/saffronpokecenter.asm18
-rwxr-xr-xdata/mapObjects/school.asm16
-rwxr-xr-xdata/mapObjects/seafoamislands1.asm30
-rwxr-xr-xdata/mapObjects/seafoamislands2.asm26
-rwxr-xr-xdata/mapObjects/seafoamislands3.asm26
-rwxr-xr-xdata/mapObjects/seafoamislands4.asm30
-rwxr-xr-xdata/mapObjects/seafoamislands5.asm23
-rwxr-xr-xdata/mapObjects/silphco1.asm21
-rwxr-xr-xdata/mapObjects/silphco10.asm28
-rwxr-xr-xdata/mapObjects/silphco11.asm23
-rwxr-xr-xdata/mapObjects/silphco2.asm29
-rwxr-xr-xdata/mapObjects/silphco3.asm34
-rwxr-xr-xdata/mapObjects/silphco4.asm31
-rwxr-xr-xdata/mapObjects/silphco5.asm35
-rwxr-xr-xdata/mapObjects/silphco6.asm30
-rwxr-xr-xdata/mapObjects/silphco7.asm33
-rwxr-xr-xdata/mapObjects/silphco8.asm28
-rwxr-xr-xdata/mapObjects/silphco9.asm24
-rwxr-xr-xdata/mapObjects/silphcoelevator.asm15
-rwxr-xr-xdata/mapObjects/ssanne1.asm34
-rwxr-xr-xdata/mapObjects/ssanne10.asm41
-rwxr-xr-xdata/mapObjects/ssanne2.asm30
-rwxr-xr-xdata/mapObjects/ssanne3.asm15
-rwxr-xr-xdata/mapObjects/ssanne4.asm22
-rwxr-xr-xdata/mapObjects/ssanne5.asm19
-rwxr-xr-xdata/mapObjects/ssanne6.asm19
-rwxr-xr-xdata/mapObjects/ssanne7.asm15
-rwxr-xr-xdata/mapObjects/ssanne8.asm33
-rwxr-xr-xdata/mapObjects/ssanne9.asm47
-rwxr-xr-xdata/mapObjects/tradecenterm.asm9
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute5.asm17
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute6.asm17
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute7.asm17
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute7copy.asm18
-rwxr-xr-xdata/mapObjects/undergroundpathentranceroute8.asm17
-rwxr-xr-xdata/mapObjects/undergroundpathns.asm14
-rwxr-xr-xdata/mapObjects/undergroundpathwe.asm14
-rwxr-xr-xdata/mapObjects/unknowndungeon1.asm31
-rwxr-xr-xdata/mapObjects/unknowndungeon2.asm25
-rwxr-xr-xdata/mapObjects/unknowndungeon3.asm15
-rwxr-xr-xdata/mapObjects/vermilioncity.asm41
-rwxr-xr-xdata/mapObjects/vermiliondock.asm14
-rwxr-xr-xdata/mapObjects/vermiliongym.asm19
-rwxr-xr-xdata/mapObjects/vermilionhouse1.asm17
-rwxr-xr-xdata/mapObjects/vermilionhouse2.asm15
-rwxr-xr-xdata/mapObjects/vermilionhouse3.asm15
-rwxr-xr-xdata/mapObjects/vermilionmart.asm17
-rwxr-xr-xdata/mapObjects/vermilionpokecenter.asm18
-rwxr-xr-xdata/mapObjects/victoryroad1.asm23
-rwxr-xr-xdata/mapObjects/victoryroad2.asm37
-rwxr-xr-xdata/mapObjects/victoryroad3.asm28
-rwxr-xr-xdata/mapObjects/viridiancity.asm33
-rwxr-xr-xdata/mapObjects/viridianforest.asm36
-rwxr-xr-xdata/mapObjects/viridianforestentrance.asm20
-rwxr-xr-xdata/mapObjects/viridianforestexit.asm20
-rwxr-xr-xdata/mapObjects/viridiangym.asm25
-rwxr-xr-xdata/mapObjects/viridianhouse.asm18
-rwxr-xr-xdata/mapObjects/viridianmart.asm17
-rwxr-xr-xdata/mapObjects/viridianpokecenter.asm18
223 files changed, 4956 insertions, 0 deletions
diff --git a/data/mapObjects/agatha.asm b/data/mapObjects/agatha.asm
new file mode 100755
index 00000000..6c9278ce
--- /dev/null
+++ b/data/mapObjects/agatha.asm
@@ -0,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
diff --git a/data/mapObjects/battlecenterm.asm b/data/mapObjects/battlecenterm.asm
new file mode 100755
index 00000000..45d88590
--- /dev/null
+++ b/data/mapObjects/battlecenterm.asm
@@ -0,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
diff --git a/data/mapObjects/bikeshop.asm b/data/mapObjects/bikeshop.asm
new file mode 100755
index 00000000..5803e3fb
--- /dev/null
+++ b/data/mapObjects/bikeshop.asm
@@ -0,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
diff --git a/data/mapObjects/billshouse.asm b/data/mapObjects/billshouse.asm
new file mode 100755
index 00000000..2c032bf2
--- /dev/null
+++ b/data/mapObjects/billshouse.asm
@@ -0,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
diff --git a/data/mapObjects/blueshouse.asm b/data/mapObjects/blueshouse.asm
new file mode 100755
index 00000000..6e801ea6
--- /dev/null
+++ b/data/mapObjects/blueshouse.asm
@@ -0,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
diff --git a/data/mapObjects/bruno.asm b/data/mapObjects/bruno.asm
new file mode 100755
index 00000000..b8577ac1
--- /dev/null
+++ b/data/mapObjects/bruno.asm
@@ -0,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
diff --git a/data/mapObjects/celadoncity.asm b/data/mapObjects/celadoncity.asm
new file mode 100755
index 00000000..b19e2f87
--- /dev/null
+++ b/data/mapObjects/celadoncity.asm
@@ -0,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
diff --git a/data/mapObjects/celadondiner.asm b/data/mapObjects/celadondiner.asm
new file mode 100755
index 00000000..ffb47d50
--- /dev/null
+++ b/data/mapObjects/celadondiner.asm
@@ -0,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
diff --git a/data/mapObjects/celadongamecorner.asm b/data/mapObjects/celadongamecorner.asm
new file mode 100755
index 00000000..26722b76
--- /dev/null
+++ b/data/mapObjects/celadongamecorner.asm
@@ -0,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
diff --git a/data/mapObjects/celadongym.asm b/data/mapObjects/celadongym.asm
new file mode 100755
index 00000000..df3f14bc
--- /dev/null
+++ b/data/mapObjects/celadongym.asm
@@ -0,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
diff --git a/data/mapObjects/celadonhotel.asm b/data/mapObjects/celadonhotel.asm
new file mode 100755
index 00000000..b1052def
--- /dev/null
+++ b/data/mapObjects/celadonhotel.asm
@@ -0,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
diff --git a/data/mapObjects/celadonhouse.asm b/data/mapObjects/celadonhouse.asm
new file mode 100755
index 00000000..19be473b
--- /dev/null
+++ b/data/mapObjects/celadonhouse.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmansion1.asm b/data/mapObjects/celadonmansion1.asm
new file mode 100755
index 00000000..decb14e7
--- /dev/null
+++ b/data/mapObjects/celadonmansion1.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmansion2.asm b/data/mapObjects/celadonmansion2.asm
new file mode 100755
index 00000000..3ed15a66
--- /dev/null
+++ b/data/mapObjects/celadonmansion2.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmansion3.asm b/data/mapObjects/celadonmansion3.asm
new file mode 100755
index 00000000..e64bac61
--- /dev/null
+++ b/data/mapObjects/celadonmansion3.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmansion4.asm b/data/mapObjects/celadonmansion4.asm
new file mode 100755
index 00000000..4181bd17
--- /dev/null
+++ b/data/mapObjects/celadonmansion4.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmansion5.asm b/data/mapObjects/celadonmansion5.asm
new file mode 100755
index 00000000..efc74275
--- /dev/null
+++ b/data/mapObjects/celadonmansion5.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmart1.asm b/data/mapObjects/celadonmart1.asm
new file mode 100755
index 00000000..10593f46
--- /dev/null
+++ b/data/mapObjects/celadonmart1.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmart2.asm b/data/mapObjects/celadonmart2.asm
new file mode 100755
index 00000000..6b40ed11
--- /dev/null
+++ b/data/mapObjects/celadonmart2.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmart3.asm b/data/mapObjects/celadonmart3.asm
new file mode 100755
index 00000000..8ffbf823
--- /dev/null
+++ b/data/mapObjects/celadonmart3.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmart4.asm b/data/mapObjects/celadonmart4.asm
new file mode 100755
index 00000000..5bdbbf4a
--- /dev/null
+++ b/data/mapObjects/celadonmart4.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmart5.asm b/data/mapObjects/celadonmart5.asm
new file mode 100755
index 00000000..9914d51b
--- /dev/null
+++ b/data/mapObjects/celadonmart5.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmartelevator.asm b/data/mapObjects/celadonmartelevator.asm
new file mode 100755
index 00000000..ca9a8f08
--- /dev/null
+++ b/data/mapObjects/celadonmartelevator.asm
@@ -0,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
diff --git a/data/mapObjects/celadonmartroof.asm b/data/mapObjects/celadonmartroof.asm
new file mode 100755
index 00000000..119eb4f8
--- /dev/null
+++ b/data/mapObjects/celadonmartroof.asm
@@ -0,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
diff --git a/data/mapObjects/celadonpokecenter.asm b/data/mapObjects/celadonpokecenter.asm
new file mode 100755
index 00000000..dcfeceb7
--- /dev/null
+++ b/data/mapObjects/celadonpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/celadonprizeroom.asm b/data/mapObjects/celadonprizeroom.asm
new file mode 100755
index 00000000..f280b050
--- /dev/null
+++ b/data/mapObjects/celadonprizeroom.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleancity.asm b/data/mapObjects/ceruleancity.asm
new file mode 100755
index 00000000..950e45e1
--- /dev/null
+++ b/data/mapObjects/ceruleancity.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleangym.asm b/data/mapObjects/ceruleangym.asm
new file mode 100755
index 00000000..8edb90fa
--- /dev/null
+++ b/data/mapObjects/ceruleangym.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleanhouse1.asm b/data/mapObjects/ceruleanhouse1.asm
new file mode 100755
index 00000000..a5d10033
--- /dev/null
+++ b/data/mapObjects/ceruleanhouse1.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleanhouse2.asm b/data/mapObjects/ceruleanhouse2.asm
new file mode 100755
index 00000000..c8c4ee51
--- /dev/null
+++ b/data/mapObjects/ceruleanhouse2.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleanhousetrashed.asm b/data/mapObjects/ceruleanhousetrashed.asm
new file mode 100755
index 00000000..ce5e0e69
--- /dev/null
+++ b/data/mapObjects/ceruleanhousetrashed.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleanmart.asm b/data/mapObjects/ceruleanmart.asm
new file mode 100755
index 00000000..bc8c4818
--- /dev/null
+++ b/data/mapObjects/ceruleanmart.asm
@@ -0,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
diff --git a/data/mapObjects/ceruleanpokecenter.asm b/data/mapObjects/ceruleanpokecenter.asm
new file mode 100755
index 00000000..c7e8cb8b
--- /dev/null
+++ b/data/mapObjects/ceruleanpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/cinnabargym.asm b/data/mapObjects/cinnabargym.asm
new file mode 100755
index 00000000..3965272a
--- /dev/null
+++ b/data/mapObjects/cinnabargym.asm
@@ -0,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
diff --git a/data/mapObjects/cinnabarisland.asm b/data/mapObjects/cinnabarisland.asm
new file mode 100755
index 00000000..f2a53d7c
--- /dev/null
+++ b/data/mapObjects/cinnabarisland.asm
@@ -0,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
diff --git a/data/mapObjects/cinnabarmart.asm b/data/mapObjects/cinnabarmart.asm
new file mode 100755
index 00000000..b976d0be
--- /dev/null
+++ b/data/mapObjects/cinnabarmart.asm
@@ -0,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
diff --git a/data/mapObjects/cinnabarpokecenter.asm b/data/mapObjects/cinnabarpokecenter.asm
new file mode 100755
index 00000000..35a344e2
--- /dev/null
+++ b/data/mapObjects/cinnabarpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/copycatshouse1f.asm b/data/mapObjects/copycatshouse1f.asm
new file mode 100755
index 00000000..ccd839f8
--- /dev/null
+++ b/data/mapObjects/copycatshouse1f.asm
@@ -0,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
diff --git a/data/mapObjects/copycatshouse2f.asm b/data/mapObjects/copycatshouse2f.asm
new file mode 100755
index 00000000..3d0432c6
--- /dev/null
+++ b/data/mapObjects/copycatshouse2f.asm
@@ -0,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
diff --git a/data/mapObjects/daycarem.asm b/data/mapObjects/daycarem.asm
new file mode 100755
index 00000000..8311853a
--- /dev/null
+++ b/data/mapObjects/daycarem.asm
@@ -0,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
diff --git a/data/mapObjects/diglettscave.asm b/data/mapObjects/diglettscave.asm
new file mode 100755
index 00000000..858005ce
--- /dev/null
+++ b/data/mapObjects/diglettscave.asm
@@ -0,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
diff --git a/data/mapObjects/diglettscaveroute11.asm b/data/mapObjects/diglettscaveroute11.asm
new file mode 100755
index 00000000..e232b1cc
--- /dev/null
+++ b/data/mapObjects/diglettscaveroute11.asm
@@ -0,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
diff --git a/data/mapObjects/diglettscaveroute2.asm b/data/mapObjects/diglettscaveroute2.asm
new file mode 100755
index 00000000..2e86600f
--- /dev/null
+++ b/data/mapObjects/diglettscaveroute2.asm
@@ -0,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
diff --git a/data/mapObjects/fanclub.asm b/data/mapObjects/fanclub.asm
new file mode 100755
index 00000000..15b9a89f
--- /dev/null
+++ b/data/mapObjects/fanclub.asm
@@ -0,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
diff --git a/data/mapObjects/fightingdojo.asm b/data/mapObjects/fightingdojo.asm
new file mode 100755
index 00000000..2a82c12c
--- /dev/null
+++ b/data/mapObjects/fightingdojo.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiacity.asm b/data/mapObjects/fuchsiacity.asm
new file mode 100755
index 00000000..f6ce2ec3
--- /dev/null
+++ b/data/mapObjects/fuchsiacity.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiagym.asm b/data/mapObjects/fuchsiagym.asm
new file mode 100755
index 00000000..2ee62951
--- /dev/null
+++ b/data/mapObjects/fuchsiagym.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiahouse1.asm b/data/mapObjects/fuchsiahouse1.asm
new file mode 100755
index 00000000..4e3ec676
--- /dev/null
+++ b/data/mapObjects/fuchsiahouse1.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiahouse2.asm b/data/mapObjects/fuchsiahouse2.asm
new file mode 100755
index 00000000..0f32eebe
--- /dev/null
+++ b/data/mapObjects/fuchsiahouse2.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiahouse3.asm b/data/mapObjects/fuchsiahouse3.asm
new file mode 100755
index 00000000..141f895f
--- /dev/null
+++ b/data/mapObjects/fuchsiahouse3.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiamart.asm b/data/mapObjects/fuchsiamart.asm
new file mode 100755
index 00000000..cb859734
--- /dev/null
+++ b/data/mapObjects/fuchsiamart.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiameetingroom.asm b/data/mapObjects/fuchsiameetingroom.asm
new file mode 100755
index 00000000..fb243f4b
--- /dev/null
+++ b/data/mapObjects/fuchsiameetingroom.asm
@@ -0,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
diff --git a/data/mapObjects/fuchsiapokecenter.asm b/data/mapObjects/fuchsiapokecenter.asm
new file mode 100755
index 00000000..1efcd255
--- /dev/null
+++ b/data/mapObjects/fuchsiapokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/gary.asm b/data/mapObjects/gary.asm
new file mode 100755
index 00000000..e94ad9b3
--- /dev/null
+++ b/data/mapObjects/gary.asm
@@ -0,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
diff --git a/data/mapObjects/halloffameroom.asm b/data/mapObjects/halloffameroom.asm
new file mode 100755
index 00000000..6d528135
--- /dev/null
+++ b/data/mapObjects/halloffameroom.asm
@@ -0,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
diff --git a/data/mapObjects/indigoplateau.asm b/data/mapObjects/indigoplateau.asm
new file mode 100755
index 00000000..6970963f
--- /dev/null
+++ b/data/mapObjects/indigoplateau.asm
@@ -0,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
diff --git a/data/mapObjects/indigoplateaulobby.asm b/data/mapObjects/indigoplateaulobby.asm
new file mode 100755
index 00000000..6b9c1e99
--- /dev/null
+++ b/data/mapObjects/indigoplateaulobby.asm
@@ -0,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
diff --git a/data/mapObjects/lab1.asm b/data/mapObjects/lab1.asm
new file mode 100755
index 00000000..52db2e24
--- /dev/null
+++ b/data/mapObjects/lab1.asm
@@ -0,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
diff --git a/data/mapObjects/lab2.asm b/data/mapObjects/lab2.asm
new file mode 100755
index 00000000..52556c69
--- /dev/null
+++ b/data/mapObjects/lab2.asm
@@ -0,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
diff --git a/data/mapObjects/lab3.asm b/data/mapObjects/lab3.asm
new file mode 100755
index 00000000..8b4396cc
--- /dev/null
+++ b/data/mapObjects/lab3.asm
@@ -0,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
diff --git a/data/mapObjects/lab4.asm b/data/mapObjects/lab4.asm
new file mode 100755
index 00000000..66b73ebd
--- /dev/null
+++ b/data/mapObjects/lab4.asm
@@ -0,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
diff --git a/data/mapObjects/lance.asm b/data/mapObjects/lance.asm
new file mode 100755
index 00000000..60d8815a
--- /dev/null
+++ b/data/mapObjects/lance.asm
@@ -0,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
diff --git a/data/mapObjects/lavenderhouse1.asm b/data/mapObjects/lavenderhouse1.asm
new file mode 100755
index 00000000..4472c7ed
--- /dev/null
+++ b/data/mapObjects/lavenderhouse1.asm
@@ -0,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
diff --git a/data/mapObjects/lavenderhouse2.asm b/data/mapObjects/lavenderhouse2.asm
new file mode 100755
index 00000000..cbb7dda7
--- /dev/null
+++ b/data/mapObjects/lavenderhouse2.asm
@@ -0,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
diff --git a/data/mapObjects/lavendermart.asm b/data/mapObjects/lavendermart.asm
new file mode 100755
index 00000000..79d80c35
--- /dev/null
+++ b/data/mapObjects/lavendermart.asm
@@ -0,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
diff --git a/data/mapObjects/lavenderpokecenter.asm b/data/mapObjects/lavenderpokecenter.asm
new file mode 100755
index 00000000..a35bf4dc
--- /dev/null
+++ b/data/mapObjects/lavenderpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/lavendertown.asm b/data/mapObjects/lavendertown.asm
new file mode 100755
index 00000000..7dc75512
--- /dev/null
+++ b/data/mapObjects/lavendertown.asm
@@ -0,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
diff --git a/data/mapObjects/lorelei.asm b/data/mapObjects/lorelei.asm
new file mode 100755
index 00000000..3cf1f450
--- /dev/null
+++ b/data/mapObjects/lorelei.asm
@@ -0,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
diff --git a/data/mapObjects/mansion1.asm b/data/mapObjects/mansion1.asm
new file mode 100755
index 00000000..426be00b
--- /dev/null
+++ b/data/mapObjects/mansion1.asm
@@ -0,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
diff --git a/data/mapObjects/mansion2.asm b/data/mapObjects/mansion2.asm
new file mode 100755
index 00000000..c8621ba4
--- /dev/null
+++ b/data/mapObjects/mansion2.asm
@@ -0,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
diff --git a/data/mapObjects/mansion3.asm b/data/mapObjects/mansion3.asm
new file mode 100755
index 00000000..b8eb7b5c
--- /dev/null
+++ b/data/mapObjects/mansion3.asm
@@ -0,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
diff --git a/data/mapObjects/mansion4.asm b/data/mapObjects/mansion4.asm
new file mode 100755
index 00000000..03f226d0
--- /dev/null
+++ b/data/mapObjects/mansion4.asm
@@ -0,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
diff --git a/data/mapObjects/mtmoon1.asm b/data/mapObjects/mtmoon1.asm
new file mode 100755
index 00000000..afb83686
--- /dev/null
+++ b/data/mapObjects/mtmoon1.asm
@@ -0,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
diff --git a/data/mapObjects/mtmoon2.asm b/data/mapObjects/mtmoon2.asm
new file mode 100755
index 00000000..33313f17
--- /dev/null
+++ b/data/mapObjects/mtmoon2.asm
@@ -0,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
diff --git a/data/mapObjects/mtmoon3.asm b/data/mapObjects/mtmoon3.asm
new file mode 100755
index 00000000..7872c9db
--- /dev/null
+++ b/data/mapObjects/mtmoon3.asm
@@ -0,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
diff --git a/data/mapObjects/mtmoonpokecenter.asm b/data/mapObjects/mtmoonpokecenter.asm
new file mode 100755
index 00000000..f5f52f65
--- /dev/null
+++ b/data/mapObjects/mtmoonpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/museum1f.asm b/data/mapObjects/museum1f.asm
new file mode 100755
index 00000000..c6fb4b5a
--- /dev/null
+++ b/data/mapObjects/museum1f.asm
@@ -0,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
diff --git a/data/mapObjects/museum2f.asm b/data/mapObjects/museum2f.asm
new file mode 100755
index 00000000..88ee827c
--- /dev/null
+++ b/data/mapObjects/museum2f.asm
@@ -0,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
diff --git a/data/mapObjects/namerater.asm b/data/mapObjects/namerater.asm
new file mode 100755
index 00000000..b0999d61
--- /dev/null
+++ b/data/mapObjects/namerater.asm
@@ -0,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
diff --git a/data/mapObjects/oakslab.asm b/data/mapObjects/oakslab.asm
new file mode 100755
index 00000000..917c24e2
--- /dev/null
+++ b/data/mapObjects/oakslab.asm
@@ -0,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
diff --git a/data/mapObjects/pallettown.asm b/data/mapObjects/pallettown.asm
new file mode 100755
index 00000000..cef66431
--- /dev/null
+++ b/data/mapObjects/pallettown.asm
@@ -0,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
diff --git a/data/mapObjects/pewtercity.asm b/data/mapObjects/pewtercity.asm
new file mode 100755
index 00000000..e971ad50
--- /dev/null
+++ b/data/mapObjects/pewtercity.asm
@@ -0,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
diff --git a/data/mapObjects/pewtergym.asm b/data/mapObjects/pewtergym.asm
new file mode 100755
index 00000000..32694fd1
--- /dev/null
+++ b/data/mapObjects/pewtergym.asm
@@ -0,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
diff --git a/data/mapObjects/pewterhouse1.asm b/data/mapObjects/pewterhouse1.asm
new file mode 100755
index 00000000..9af4d71b
--- /dev/null
+++ b/data/mapObjects/pewterhouse1.asm
@@ -0,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
diff --git a/data/mapObjects/pewterhouse2.asm b/data/mapObjects/pewterhouse2.asm
new file mode 100755
index 00000000..aa48c5bc
--- /dev/null
+++ b/data/mapObjects/pewterhouse2.asm
@@ -0,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
diff --git a/data/mapObjects/pewtermart.asm b/data/mapObjects/pewtermart.asm
new file mode 100755
index 00000000..343f70c1
--- /dev/null
+++ b/data/mapObjects/pewtermart.asm
@@ -0,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
diff --git a/data/mapObjects/pewterpokecenter.asm b/data/mapObjects/pewterpokecenter.asm
new file mode 100755
index 00000000..a9a03272
--- /dev/null
+++ b/data/mapObjects/pewterpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower1.asm b/data/mapObjects/pokemontower1.asm
new file mode 100755
index 00000000..30fb9cbc
--- /dev/null
+++ b/data/mapObjects/pokemontower1.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower2.asm b/data/mapObjects/pokemontower2.asm
new file mode 100755
index 00000000..a255065f
--- /dev/null
+++ b/data/mapObjects/pokemontower2.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower3.asm b/data/mapObjects/pokemontower3.asm
new file mode 100755
index 00000000..f2341155
--- /dev/null
+++ b/data/mapObjects/pokemontower3.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower4.asm b/data/mapObjects/pokemontower4.asm
new file mode 100755
index 00000000..e2328243
--- /dev/null
+++ b/data/mapObjects/pokemontower4.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower5.asm b/data/mapObjects/pokemontower5.asm
new file mode 100755
index 00000000..16d09771
--- /dev/null
+++ b/data/mapObjects/pokemontower5.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower6.asm b/data/mapObjects/pokemontower6.asm
new file mode 100755
index 00000000..3e9839e3
--- /dev/null
+++ b/data/mapObjects/pokemontower6.asm
@@ -0,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
diff --git a/data/mapObjects/pokemontower7.asm b/data/mapObjects/pokemontower7.asm
new file mode 100755
index 00000000..b6815a64
--- /dev/null
+++ b/data/mapObjects/pokemontower7.asm
@@ -0,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
diff --git a/data/mapObjects/powerplant.asm b/data/mapObjects/powerplant.asm
new file mode 100755
index 00000000..b5d656ff
--- /dev/null
+++ b/data/mapObjects/powerplant.asm
@@ -0,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
diff --git a/data/mapObjects/redshouse1f.asm b/data/mapObjects/redshouse1f.asm
new file mode 100755
index 00000000..41ebb709
--- /dev/null
+++ b/data/mapObjects/redshouse1f.asm
@@ -0,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
diff --git a/data/mapObjects/redshouse2f.asm b/data/mapObjects/redshouse2f.asm
new file mode 100755
index 00000000..5d59f8e5
--- /dev/null
+++ b/data/mapObjects/redshouse2f.asm
@@ -0,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
diff --git a/data/mapObjects/rockethideout1.asm b/data/mapObjects/rockethideout1.asm
new file mode 100755
index 00000000..5ae38850
--- /dev/null
+++ b/data/mapObjects/rockethideout1.asm
@@ -0,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
diff --git a/data/mapObjects/rockethideout2.asm b/data/mapObjects/rockethideout2.asm
new file mode 100755
index 00000000..6c374654
--- /dev/null
+++ b/data/mapObjects/rockethideout2.asm
@@ -0,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
diff --git a/data/mapObjects/rockethideout3.asm b/data/mapObjects/rockethideout3.asm
new file mode 100755
index 00000000..105abea0
--- /dev/null
+++ b/data/mapObjects/rockethideout3.asm
@@ -0,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
diff --git a/data/mapObjects/rockethideout4.asm b/data/mapObjects/rockethideout4.asm
new file mode 100755
index 00000000..3f9ecc62
--- /dev/null
+++ b/data/mapObjects/rockethideout4.asm
@@ -0,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
diff --git a/data/mapObjects/rockethideoutelevator.asm b/data/mapObjects/rockethideoutelevator.asm
new file mode 100755
index 00000000..e4653a4c
--- /dev/null
+++ b/data/mapObjects/rockethideoutelevator.asm
@@ -0,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
diff --git a/data/mapObjects/rocktunnel1.asm b/data/mapObjects/rocktunnel1.asm
new file mode 100755
index 00000000..2701b3e0
--- /dev/null
+++ b/data/mapObjects/rocktunnel1.asm
@@ -0,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
diff --git a/data/mapObjects/rocktunnel2.asm b/data/mapObjects/rocktunnel2.asm
new file mode 100755
index 00000000..e98f581a
--- /dev/null
+++ b/data/mapObjects/rocktunnel2.asm
@@ -0,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
diff --git a/data/mapObjects/rocktunnelpokecenter.asm b/data/mapObjects/rocktunnelpokecenter.asm
new file mode 100755
index 00000000..2dd7b71d
--- /dev/null
+++ b/data/mapObjects/rocktunnelpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/route1.asm b/data/mapObjects/route1.asm
new file mode 100755
index 00000000..c16738f3
--- /dev/null
+++ b/data/mapObjects/route1.asm
@@ -0,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
diff --git a/data/mapObjects/route10.asm b/data/mapObjects/route10.asm
new file mode 100755
index 00000000..32e568dd
--- /dev/null
+++ b/data/mapObjects/route10.asm
@@ -0,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
diff --git a/data/mapObjects/route11.asm b/data/mapObjects/route11.asm
new file mode 100755
index 00000000..88fda61f
--- /dev/null
+++ b/data/mapObjects/route11.asm
@@ -0,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
diff --git a/data/mapObjects/route11gate.asm b/data/mapObjects/route11gate.asm
new file mode 100755
index 00000000..5ebfb13d
--- /dev/null
+++ b/data/mapObjects/route11gate.asm
@@ -0,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
diff --git a/data/mapObjects/route11gateupstairs.asm b/data/mapObjects/route11gateupstairs.asm
new file mode 100755
index 00000000..8ee0f8fa
--- /dev/null
+++ b/data/mapObjects/route11gateupstairs.asm
@@ -0,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
diff --git a/data/mapObjects/route12.asm b/data/mapObjects/route12.asm
new file mode 100755
index 00000000..75d1907f
--- /dev/null
+++ b/data/mapObjects/route12.asm
@@ -0,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
diff --git a/data/mapObjects/route12gate.asm b/data/mapObjects/route12gate.asm
new file mode 100755
index 00000000..fc70b763
--- /dev/null
+++ b/data/mapObjects/route12gate.asm
@@ -0,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
diff --git a/data/mapObjects/route12gateupstairs.asm b/data/mapObjects/route12gateupstairs.asm
new file mode 100755
index 00000000..012dedda
--- /dev/null
+++ b/data/mapObjects/route12gateupstairs.asm
@@ -0,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
diff --git a/data/mapObjects/route12house.asm b/data/mapObjects/route12house.asm
new file mode 100755
index 00000000..74ae5bc7
--- /dev/null
+++ b/data/mapObjects/route12house.asm
@@ -0,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
diff --git a/data/mapObjects/route13.asm b/data/mapObjects/route13.asm
new file mode 100755
index 00000000..2c83847a
--- /dev/null
+++ b/data/mapObjects/route13.asm
@@ -0,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
diff --git a/data/mapObjects/route14.asm b/data/mapObjects/route14.asm
new file mode 100755
index 00000000..eb397a16
--- /dev/null
+++ b/data/mapObjects/route14.asm
@@ -0,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
diff --git a/data/mapObjects/route15.asm b/data/mapObjects/route15.asm
new file mode 100755
index 00000000..de91b7d9
--- /dev/null
+++ b/data/mapObjects/route15.asm
@@ -0,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
diff --git a/data/mapObjects/route15gate.asm b/data/mapObjects/route15gate.asm
new file mode 100755
index 00000000..e0278fbe
--- /dev/null
+++ b/data/mapObjects/route15gate.asm
@@ -0,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
diff --git a/data/mapObjects/route15gateupstairs.asm b/data/mapObjects/route15gateupstairs.asm
new file mode 100755
index 00000000..dd7a0b2c
--- /dev/null
+++ b/data/mapObjects/route15gateupstairs.asm
@@ -0,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
diff --git a/data/mapObjects/route16.asm b/data/mapObjects/route16.asm
new file mode 100755
index 00000000..323ce018
--- /dev/null
+++ b/data/mapObjects/route16.asm
@@ -0,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
diff --git a/data/mapObjects/route16gate.asm b/data/mapObjects/route16gate.asm
new file mode 100755
index 00000000..3b493cca
--- /dev/null
+++ b/data/mapObjects/route16gate.asm
@@ -0,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
diff --git a/data/mapObjects/route16gateupstairs.asm b/data/mapObjects/route16gateupstairs.asm
new file mode 100755
index 00000000..ee9df620
--- /dev/null
+++ b/data/mapObjects/route16gateupstairs.asm
@@ -0,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
diff --git a/data/mapObjects/route16house.asm b/data/mapObjects/route16house.asm
new file mode 100755
index 00000000..816c0e69
--- /dev/null
+++ b/data/mapObjects/route16house.asm
@@ -0,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
diff --git a/data/mapObjects/route17.asm b/data/mapObjects/route17.asm
new file mode 100755
index 00000000..2957d2db
--- /dev/null
+++ b/data/mapObjects/route17.asm
@@ -0,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
diff --git a/data/mapObjects/route18.asm b/data/mapObjects/route18.asm
new file mode 100755
index 00000000..68fd4298
--- /dev/null
+++ b/data/mapObjects/route18.asm
@@ -0,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
diff --git a/data/mapObjects/route18gate.asm b/data/mapObjects/route18gate.asm
new file mode 100755
index 00000000..62816061
--- /dev/null
+++ b/data/mapObjects/route18gate.asm
@@ -0,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
diff --git a/data/mapObjects/route18gateupstairs.asm b/data/mapObjects/route18gateupstairs.asm
new file mode 100755
index 00000000..d2b55e7f
--- /dev/null
+++ b/data/mapObjects/route18gateupstairs.asm
@@ -0,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
diff --git a/data/mapObjects/route19.asm b/data/mapObjects/route19.asm
new file mode 100755
index 00000000..037d7702
--- /dev/null
+++ b/data/mapObjects/route19.asm
@@ -0,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
diff --git a/data/mapObjects/route2.asm b/data/mapObjects/route2.asm
new file mode 100755
index 00000000..385c9825
--- /dev/null
+++ b/data/mapObjects/route2.asm
@@ -0,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
diff --git a/data/mapObjects/route20.asm b/data/mapObjects/route20.asm
new file mode 100755
index 00000000..89fa4ad4
--- /dev/null
+++ b/data/mapObjects/route20.asm
@@ -0,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
diff --git a/data/mapObjects/route21.asm b/data/mapObjects/route21.asm
new file mode 100755
index 00000000..9bb6d92f
--- /dev/null
+++ b/data/mapObjects/route21.asm
@@ -0,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
diff --git a/data/mapObjects/route22.asm b/data/mapObjects/route22.asm
new file mode 100755
index 00000000..cd7e8f46
--- /dev/null
+++ b/data/mapObjects/route22.asm
@@ -0,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
diff --git a/data/mapObjects/route22gate.asm b/data/mapObjects/route22gate.asm
new file mode 100755
index 00000000..cafc47ce
--- /dev/null
+++ b/data/mapObjects/route22gate.asm
@@ -0,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
diff --git a/data/mapObjects/route23.asm b/data/mapObjects/route23.asm
new file mode 100755
index 00000000..15591ae1
--- /dev/null
+++ b/data/mapObjects/route23.asm
@@ -0,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
diff --git a/data/mapObjects/route24.asm b/data/mapObjects/route24.asm
new file mode 100755
index 00000000..69764d3d
--- /dev/null
+++ b/data/mapObjects/route24.asm
@@ -0,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
diff --git a/data/mapObjects/route25.asm b/data/mapObjects/route25.asm
new file mode 100755
index 00000000..8040d7e0
--- /dev/null
+++ b/data/mapObjects/route25.asm
@@ -0,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
diff --git a/data/mapObjects/route2gate.asm b/data/mapObjects/route2gate.asm
new file mode 100755
index 00000000..a1bcc687
--- /dev/null
+++ b/data/mapObjects/route2gate.asm
@@ -0,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
diff --git a/data/mapObjects/route2house.asm b/data/mapObjects/route2house.asm
new file mode 100755
index 00000000..26adfcf4
--- /dev/null
+++ b/data/mapObjects/route2house.asm
@@ -0,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
diff --git a/data/mapObjects/route3.asm b/data/mapObjects/route3.asm
new file mode 100755
index 00000000..1a8f1ce8
--- /dev/null
+++ b/data/mapObjects/route3.asm
@@ -0,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
diff --git a/data/mapObjects/route4.asm b/data/mapObjects/route4.asm
new file mode 100755
index 00000000..f8d70476
--- /dev/null
+++ b/data/mapObjects/route4.asm
@@ -0,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
diff --git a/data/mapObjects/route5.asm b/data/mapObjects/route5.asm
new file mode 100755
index 00000000..c7481faa
--- /dev/null
+++ b/data/mapObjects/route5.asm
@@ -0,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
diff --git a/data/mapObjects/route5gate.asm b/data/mapObjects/route5gate.asm
new file mode 100755
index 00000000..f71e3e64
--- /dev/null
+++ b/data/mapObjects/route5gate.asm
@@ -0,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
diff --git a/data/mapObjects/route6.asm b/data/mapObjects/route6.asm
new file mode 100755
index 00000000..8656f2db
--- /dev/null
+++ b/data/mapObjects/route6.asm
@@ -0,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
diff --git a/data/mapObjects/route6gate.asm b/data/mapObjects/route6gate.asm
new file mode 100755
index 00000000..068b1cc3
--- /dev/null
+++ b/data/mapObjects/route6gate.asm
@@ -0,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
diff --git a/data/mapObjects/route7.asm b/data/mapObjects/route7.asm
new file mode 100755
index 00000000..43425a11
--- /dev/null
+++ b/data/mapObjects/route7.asm
@@ -0,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
diff --git a/data/mapObjects/route7gate.asm b/data/mapObjects/route7gate.asm
new file mode 100755
index 00000000..752b53f9
--- /dev/null
+++ b/data/mapObjects/route7gate.asm
@@ -0,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
diff --git a/data/mapObjects/route8.asm b/data/mapObjects/route8.asm
new file mode 100755
index 00000000..f0e2434b
--- /dev/null
+++ b/data/mapObjects/route8.asm
@@ -0,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
diff --git a/data/mapObjects/route8gate.asm b/data/mapObjects/route8gate.asm
new file mode 100755
index 00000000..c38eed26
--- /dev/null
+++ b/data/mapObjects/route8gate.asm
@@ -0,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
diff --git a/data/mapObjects/route9.asm b/data/mapObjects/route9.asm
new file mode 100755
index 00000000..f0fc9eeb
--- /dev/null
+++ b/data/mapObjects/route9.asm
@@ -0,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
diff --git a/data/mapObjects/safarizonecenter.asm b/data/mapObjects/safarizonecenter.asm
new file mode 100755
index 00000000..1dbcd567
--- /dev/null
+++ b/data/mapObjects/safarizonecenter.asm
@@ -0,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
diff --git a/data/mapObjects/safarizoneeast.asm b/data/mapObjects/safarizoneeast.asm
new file mode 100755
index 00000000..678276a9
--- /dev/null
+++ b/data/mapObjects/safarizoneeast.asm
@@ -0,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
diff --git a/data/mapObjects/safarizoneentrance.asm b/data/mapObjects/safarizoneentrance.asm
new file mode 100755
index 00000000..c252109c
--- /dev/null
+++ b/data/mapObjects/safarizoneentrance.asm
@@ -0,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
diff --git a/data/mapObjects/safarizonenorth.asm b/data/mapObjects/safarizonenorth.asm
new file mode 100755
index 00000000..4b9a4786
--- /dev/null
+++ b/data/mapObjects/safarizonenorth.asm
@@ -0,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
diff --git a/data/mapObjects/safarizoneresthouse1.asm b/data/mapObjects/safarizoneresthouse1.asm
new file mode 100755
index 00000000..492f8f38
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse1.asm
@@ -0,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
diff --git a/data/mapObjects/safarizoneresthouse2.asm b/data/mapObjects/safarizoneresthouse2.asm
new file mode 100755
index 00000000..f6918eed
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse2.asm
@@ -0,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
diff --git a/data/mapObjects/safarizoneresthouse3.asm b/data/mapObjects/safarizoneresthouse3.asm
new file mode 100755
index 00000000..70365365
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse3.asm
@@ -0,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
diff --git a/data/mapObjects/safarizoneresthouse4.asm b/data/mapObjects/safarizoneresthouse4.asm
new file mode 100755
index 00000000..53beef42
--- /dev/null
+++ b/data/mapObjects/safarizoneresthouse4.asm
@@ -0,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
diff --git a/data/mapObjects/safarizonesecrethouse.asm b/data/mapObjects/safarizonesecrethouse.asm
new file mode 100755
index 00000000..79032c70
--- /dev/null
+++ b/data/mapObjects/safarizonesecrethouse.asm
@@ -0,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
diff --git a/data/mapObjects/safarizonewest.asm b/data/mapObjects/safarizonewest.asm
new file mode 100755
index 00000000..5cdae65c
--- /dev/null
+++ b/data/mapObjects/safarizonewest.asm
@@ -0,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
diff --git a/data/mapObjects/saffroncity.asm b/data/mapObjects/saffroncity.asm
new file mode 100755
index 00000000..5ec54aff
--- /dev/null
+++ b/data/mapObjects/saffroncity.asm
@@ -0,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
diff --git a/data/mapObjects/saffrongym.asm b/data/mapObjects/saffrongym.asm
new file mode 100755
index 00000000..b7d8d0f6
--- /dev/null
+++ b/data/mapObjects/saffrongym.asm
@@ -0,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
diff --git a/data/mapObjects/saffronhouse1.asm b/data/mapObjects/saffronhouse1.asm
new file mode 100755
index 00000000..991caa7d
--- /dev/null
+++ b/data/mapObjects/saffronhouse1.asm
@@ -0,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
diff --git a/data/mapObjects/saffronhouse2.asm b/data/mapObjects/saffronhouse2.asm
new file mode 100755
index 00000000..e9b68e7c
--- /dev/null
+++ b/data/mapObjects/saffronhouse2.asm
@@ -0,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
diff --git a/data/mapObjects/saffronmart.asm b/data/mapObjects/saffronmart.asm
new file mode 100755
index 00000000..30951c12
--- /dev/null
+++ b/data/mapObjects/saffronmart.asm
@@ -0,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
diff --git a/data/mapObjects/saffronpokecenter.asm b/data/mapObjects/saffronpokecenter.asm
new file mode 100755
index 00000000..251aeea5
--- /dev/null
+++ b/data/mapObjects/saffronpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/school.asm b/data/mapObjects/school.asm
new file mode 100755
index 00000000..c26844a4
--- /dev/null
+++ b/data/mapObjects/school.asm
@@ -0,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
diff --git a/data/mapObjects/seafoamislands1.asm b/data/mapObjects/seafoamislands1.asm
new file mode 100755
index 00000000..85f344e8
--- /dev/null
+++ b/data/mapObjects/seafoamislands1.asm
@@ -0,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
diff --git a/data/mapObjects/seafoamislands2.asm b/data/mapObjects/seafoamislands2.asm
new file mode 100755
index 00000000..56251d1c
--- /dev/null
+++ b/data/mapObjects/seafoamislands2.asm
@@ -0,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
diff --git a/data/mapObjects/seafoamislands3.asm b/data/mapObjects/seafoamislands3.asm
new file mode 100755
index 00000000..82d963a1
--- /dev/null
+++ b/data/mapObjects/seafoamislands3.asm
@@ -0,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
diff --git a/data/mapObjects/seafoamislands4.asm b/data/mapObjects/seafoamislands4.asm
new file mode 100755
index 00000000..aa18110a
--- /dev/null
+++ b/data/mapObjects/seafoamislands4.asm
@@ -0,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
diff --git a/data/mapObjects/seafoamislands5.asm b/data/mapObjects/seafoamislands5.asm
new file mode 100755
index 00000000..27246d20
--- /dev/null
+++ b/data/mapObjects/seafoamislands5.asm
@@ -0,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
diff --git a/data/mapObjects/silphco1.asm b/data/mapObjects/silphco1.asm
new file mode 100755
index 00000000..0d599ca6
--- /dev/null
+++ b/data/mapObjects/silphco1.asm
@@ -0,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
diff --git a/data/mapObjects/silphco10.asm b/data/mapObjects/silphco10.asm
new file mode 100755
index 00000000..50e84b79
--- /dev/null
+++ b/data/mapObjects/silphco10.asm
@@ -0,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
diff --git a/data/mapObjects/silphco11.asm b/data/mapObjects/silphco11.asm
new file mode 100755
index 00000000..c575d10f
--- /dev/null
+++ b/data/mapObjects/silphco11.asm
@@ -0,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
diff --git a/data/mapObjects/silphco2.asm b/data/mapObjects/silphco2.asm
new file mode 100755
index 00000000..78c175a6
--- /dev/null
+++ b/data/mapObjects/silphco2.asm
@@ -0,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
diff --git a/data/mapObjects/silphco3.asm b/data/mapObjects/silphco3.asm
new file mode 100755
index 00000000..af7d0aa2
--- /dev/null
+++ b/data/mapObjects/silphco3.asm
@@ -0,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
diff --git a/data/mapObjects/silphco4.asm b/data/mapObjects/silphco4.asm
new file mode 100755
index 00000000..4677d302
--- /dev/null
+++ b/data/mapObjects/silphco4.asm
@@ -0,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
diff --git a/data/mapObjects/silphco5.asm b/data/mapObjects/silphco5.asm
new file mode 100755
index 00000000..f5874371
--- /dev/null
+++ b/data/mapObjects/silphco5.asm
@@ -0,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
diff --git a/data/mapObjects/silphco6.asm b/data/mapObjects/silphco6.asm
new file mode 100755
index 00000000..89239aa1
--- /dev/null
+++ b/data/mapObjects/silphco6.asm
@@ -0,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
diff --git a/data/mapObjects/silphco7.asm b/data/mapObjects/silphco7.asm
new file mode 100755
index 00000000..de97b8de
--- /dev/null
+++ b/data/mapObjects/silphco7.asm
@@ -0,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
diff --git a/data/mapObjects/silphco8.asm b/data/mapObjects/silphco8.asm
new file mode 100755
index 00000000..92d9d061
--- /dev/null
+++ b/data/mapObjects/silphco8.asm
@@ -0,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
diff --git a/data/mapObjects/silphco9.asm b/data/mapObjects/silphco9.asm
new file mode 100755
index 00000000..c4047708
--- /dev/null
+++ b/data/mapObjects/silphco9.asm
@@ -0,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
diff --git a/data/mapObjects/silphcoelevator.asm b/data/mapObjects/silphcoelevator.asm
new file mode 100755
index 00000000..ced554eb
--- /dev/null
+++ b/data/mapObjects/silphcoelevator.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne1.asm b/data/mapObjects/ssanne1.asm
new file mode 100755
index 00000000..a1688f5c
--- /dev/null
+++ b/data/mapObjects/ssanne1.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne10.asm b/data/mapObjects/ssanne10.asm
new file mode 100755
index 00000000..3a190cf4
--- /dev/null
+++ b/data/mapObjects/ssanne10.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne2.asm b/data/mapObjects/ssanne2.asm
new file mode 100755
index 00000000..74b18262
--- /dev/null
+++ b/data/mapObjects/ssanne2.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne3.asm b/data/mapObjects/ssanne3.asm
new file mode 100755
index 00000000..2068304d
--- /dev/null
+++ b/data/mapObjects/ssanne3.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne4.asm b/data/mapObjects/ssanne4.asm
new file mode 100755
index 00000000..a2abc2cf
--- /dev/null
+++ b/data/mapObjects/ssanne4.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne5.asm b/data/mapObjects/ssanne5.asm
new file mode 100755
index 00000000..b9ce302b
--- /dev/null
+++ b/data/mapObjects/ssanne5.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne6.asm b/data/mapObjects/ssanne6.asm
new file mode 100755
index 00000000..7724ab5c
--- /dev/null
+++ b/data/mapObjects/ssanne6.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne7.asm b/data/mapObjects/ssanne7.asm
new file mode 100755
index 00000000..c40bcfec
--- /dev/null
+++ b/data/mapObjects/ssanne7.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne8.asm b/data/mapObjects/ssanne8.asm
new file mode 100755
index 00000000..f3d081eb
--- /dev/null
+++ b/data/mapObjects/ssanne8.asm
@@ -0,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
diff --git a/data/mapObjects/ssanne9.asm b/data/mapObjects/ssanne9.asm
new file mode 100755
index 00000000..6c5b5fc1
--- /dev/null
+++ b/data/mapObjects/ssanne9.asm
@@ -0,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
diff --git a/data/mapObjects/tradecenterm.asm b/data/mapObjects/tradecenterm.asm
new file mode 100755
index 00000000..104b9c0b
--- /dev/null
+++ b/data/mapObjects/tradecenterm.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathentranceroute5.asm b/data/mapObjects/undergroundpathentranceroute5.asm
new file mode 100755
index 00000000..f782636c
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute5.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathentranceroute6.asm b/data/mapObjects/undergroundpathentranceroute6.asm
new file mode 100755
index 00000000..624381a9
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute6.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathentranceroute7.asm b/data/mapObjects/undergroundpathentranceroute7.asm
new file mode 100755
index 00000000..d0e51c8a
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute7.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathentranceroute7copy.asm b/data/mapObjects/undergroundpathentranceroute7copy.asm
new file mode 100755
index 00000000..53972ce9
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute7copy.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathentranceroute8.asm b/data/mapObjects/undergroundpathentranceroute8.asm
new file mode 100755
index 00000000..a59e017b
--- /dev/null
+++ b/data/mapObjects/undergroundpathentranceroute8.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathns.asm b/data/mapObjects/undergroundpathns.asm
new file mode 100755
index 00000000..7dac9b95
--- /dev/null
+++ b/data/mapObjects/undergroundpathns.asm
@@ -0,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
diff --git a/data/mapObjects/undergroundpathwe.asm b/data/mapObjects/undergroundpathwe.asm
new file mode 100755
index 00000000..ad3c51f7
--- /dev/null
+++ b/data/mapObjects/undergroundpathwe.asm
@@ -0,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
diff --git a/data/mapObjects/unknowndungeon1.asm b/data/mapObjects/unknowndungeon1.asm
new file mode 100755
index 00000000..af686897
--- /dev/null
+++ b/data/mapObjects/unknowndungeon1.asm
@@ -0,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
diff --git a/data/mapObjects/unknowndungeon2.asm b/data/mapObjects/unknowndungeon2.asm
new file mode 100755
index 00000000..4900c450
--- /dev/null
+++ b/data/mapObjects/unknowndungeon2.asm
@@ -0,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
diff --git a/data/mapObjects/unknowndungeon3.asm b/data/mapObjects/unknowndungeon3.asm
new file mode 100755
index 00000000..ce5bab57
--- /dev/null
+++ b/data/mapObjects/unknowndungeon3.asm
@@ -0,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
diff --git a/data/mapObjects/vermilioncity.asm b/data/mapObjects/vermilioncity.asm
new file mode 100755
index 00000000..a7a6a6b4
--- /dev/null
+++ b/data/mapObjects/vermilioncity.asm
@@ -0,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
diff --git a/data/mapObjects/vermiliondock.asm b/data/mapObjects/vermiliondock.asm
new file mode 100755
index 00000000..4c49e966
--- /dev/null
+++ b/data/mapObjects/vermiliondock.asm
@@ -0,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
diff --git a/data/mapObjects/vermiliongym.asm b/data/mapObjects/vermiliongym.asm
new file mode 100755
index 00000000..e90602ab
--- /dev/null
+++ b/data/mapObjects/vermiliongym.asm
@@ -0,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
diff --git a/data/mapObjects/vermilionhouse1.asm b/data/mapObjects/vermilionhouse1.asm
new file mode 100755
index 00000000..e6104944
--- /dev/null
+++ b/data/mapObjects/vermilionhouse1.asm
@@ -0,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
diff --git a/data/mapObjects/vermilionhouse2.asm b/data/mapObjects/vermilionhouse2.asm
new file mode 100755
index 00000000..aab505cb
--- /dev/null
+++ b/data/mapObjects/vermilionhouse2.asm
@@ -0,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
diff --git a/data/mapObjects/vermilionhouse3.asm b/data/mapObjects/vermilionhouse3.asm
new file mode 100755
index 00000000..b23a741b
--- /dev/null
+++ b/data/mapObjects/vermilionhouse3.asm
@@ -0,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
diff --git a/data/mapObjects/vermilionmart.asm b/data/mapObjects/vermilionmart.asm
new file mode 100755
index 00000000..f57adde8
--- /dev/null
+++ b/data/mapObjects/vermilionmart.asm
@@ -0,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
diff --git a/data/mapObjects/vermilionpokecenter.asm b/data/mapObjects/vermilionpokecenter.asm
new file mode 100755
index 00000000..97b86520
--- /dev/null
+++ b/data/mapObjects/vermilionpokecenter.asm
@@ -0,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
diff --git a/data/mapObjects/victoryroad1.asm b/data/mapObjects/victoryroad1.asm
new file mode 100755
index 00000000..35b13bd3
--- /dev/null
+++ b/data/mapObjects/victoryroad1.asm
@@ -0,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
diff --git a/data/mapObjects/victoryroad2.asm b/data/mapObjects/victoryroad2.asm
new file mode 100755
index 00000000..ff6bac82
--- /dev/null
+++ b/data/mapObjects/victoryroad2.asm
@@ -0,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
diff --git a/data/mapObjects/victoryroad3.asm b/data/mapObjects/victoryroad3.asm
new file mode 100755
index 00000000..44f0f2ca
--- /dev/null
+++ b/data/mapObjects/victoryroad3.asm
@@ -0,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
diff --git a/data/mapObjects/viridiancity.asm b/data/mapObjects/viridiancity.asm
new file mode 100755
index 00000000..37cb42e2
--- /dev/null
+++ b/data/mapObjects/viridiancity.asm
@@ -0,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
diff --git a/data/mapObjects/viridianforest.asm b/data/mapObjects/viridianforest.asm
new file mode 100755
index 00000000..f6008e21
--- /dev/null
+++ b/data/mapObjects/viridianforest.asm
@@ -0,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
diff --git a/data/mapObjects/viridianforestentrance.asm b/data/mapObjects/viridianforestentrance.asm
new file mode 100755
index 00000000..ce0aaae5
--- /dev/null
+++ b/data/mapObjects/viridianforestentrance.asm
@@ -0,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
diff --git a/data/mapObjects/viridianforestexit.asm b/data/mapObjects/viridianforestexit.asm
new file mode 100755
index 00000000..a96d5270
--- /dev/null
+++ b/data/mapObjects/viridianforestexit.asm
@@ -0,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
diff --git a/data/mapObjects/viridiangym.asm b/data/mapObjects/viridiangym.asm
new file mode 100755
index 00000000..b6ec5140
--- /dev/null
+++ b/data/mapObjects/viridiangym.asm
@@ -0,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
diff --git a/data/mapObjects/viridianhouse.asm b/data/mapObjects/viridianhouse.asm
new file mode 100755
index 00000000..dd2d6069
--- /dev/null
+++ b/data/mapObjects/viridianhouse.asm
@@ -0,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
diff --git a/data/mapObjects/viridianmart.asm b/data/mapObjects/viridianmart.asm
new file mode 100755
index 00000000..b1b367c7
--- /dev/null
+++ b/data/mapObjects/viridianmart.asm
@@ -0,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
diff --git a/data/mapObjects/viridianpokecenter.asm b/data/mapObjects/viridianpokecenter.asm
new file mode 100755
index 00000000..6631a814
--- /dev/null
+++ b/data/mapObjects/viridianpokecenter.asm
@@ -0,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