shithub: pokecrystal

Download patch

ref: 4b36a9d2e1d6b6ac823fbb14e8f0ba750b0eecc2
parent: e3ee39f3344107f666099448401d28b04c983cd6
parent: a6656a986bf9dde51561cab090648e0117b173ad
author: surskitty <[email protected]>
date: Wed Dec 13 14:55:03 EST 2017

Merge branch 'master' of github.com:pret/pokecrystal

--- /dev/null
+++ b/FAQ.md
@@ -1,0 +1,32 @@
+# FAQ
+
+## What is pokecrystal11.gbc?
+
+Version 1.1 of Pokémon Crystal, which fixed some issues with the initial international release. `make crystal11` defines `CRYSTAL11` so the assembly builds the changed version.
+
+## Can't build ROM; "ERROR: `UNION` already defined"
+
+Download [**rgbds 0.3.3**](rgbds). Earlier versions will not work.
+
+## Can't build ROM; "Segmentation fault" from `rgbgfx`
+
+If you are using 64-bit Windows, download [**64-bit Cygwin**](cygwin) and [**64-bit rgbds**](rgbds).
+
+## Can't build ROM; "Section is too big" or "Unable to place section in bank"
+
+If you have not changed any of the asm, make sure you have the latest version of pokecrystal and the correct version of rgbds (see [INSTALL.md](INSTALL.md)).
+
+If you added or changed any code, it has to fit in the **memory banks**. The 2MB ROM is divided into 128 banks of 4KB each, numbered $00 to $7F. The linkerscript **pokecrystal.link** lists which **`SECTION`**s go in which banks. Try moving some code into a new section.
+
+## How do I edit maps?
+
+For `asm` scripts, read [docs/map_scripts.md](docs/map_scripts.md). For `blk` layouts, try [crowdmap](crowdmap) or [Polished Map](polished-map).
+
+## I need more help!
+
+Try asking on IRC or Discord (see [README.md](README.md)).
+
+[cygwin]: https://cygwin.com/install.html
+[rgbds]: https://github.com/rednex/rgbds/releases
+[crowdmap]: https://github.com/yenatch/crowdmap/
+[polished-map]: https://github.com/roukaour/polished-map
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,10 +1,12 @@
-The source files are assembled into a rom using [**rgbds**](https://github.com/rednex/rgbds).
+# Instructions
+
+The source files are assembled into a ROM using [**rgbds**](https://github.com/rednex/rgbds).
 These instructions explain how to set up the tools required to build.
 
-If you run into trouble, ask for help on irc or discord (see [README.md](README.md)).
+If you run into trouble, ask for help on IRC or Discord (see [README.md](README.md)).
 
 
-# Linux
+## Linux
 
 ```bash
 sudo apt-get install make gcc bison git libpng-dev
@@ -25,7 +27,7 @@
 ```
 
 
-# Mac
+## Mac
 
 In **Terminal**, run:
 
@@ -48,24 +50,23 @@
 ```
 
 
-# Windows
+## Windows
 
-To build on Windows, install [**Cygwin**](http://cygwin.com/install.html) with the default settings.
+Download [**Cygwin**](http://cygwin.com/install.html): **setup-x86_64.exe** for 64-bit Windows, **setup-x86.exe** for 32-bit.
 
-In the installer, select the following packages:
+Run setup and leave the default settings. At "Select Packages", choose to install the following:
+
 - `make`
 - `git`
 - `gcc-core`
 
-Then download [**rgbds**](https://github.com/rednex/rgbds/releases/).
-Extract rgbds-0.3.3-win64.tar.gz and put all the `exe` and `dll` files individually in **C:\Cygwin64\usr\local\bin**. If you are using 32-bit Windows and Cygwin, extract **rgbds-0.3.3-win32.tar.gz** to **C:\Cygwin\usr\local\bin**.
+Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.tar.gz** or **win32.tar.gz** release. Extract it and put all the `exe` and `dll` files individually in **C:\Cygwin64\usr\local\bin**.
 
 **Note: If you have an older rgbds, you will need to update to 0.3.3 or newer.** Ignore this if you have never installed rgbds before.
 
-In the **Cygwin terminal**:
+In the **Cygwin terminal**, enter these commands:
 
 ```bash
-
 git clone https://github.com/pret/pokecrystal
 cd pokecrystal
 ```
@@ -74,4 +75,10 @@
 
 ```bash
 make
+```
+
+To build **pokecrystal11.gbc**:
+
+```bash
+make crystal11
 ```
--- a/README.md
+++ b/README.md
@@ -10,6 +10,7 @@
 To set up the repository, see [INSTALL.md](INSTALL.md).
 
 ## See also
+
 * Disassembly of [**Pokémon Red/Blue**][pokered]
 * Disassembly of [**Pokémon Yellow**][pokeyellow]
 * Disassembly of [**Pokémon Pinball**][pokepinball]
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -1394,8 +1394,7 @@
 ; e8720
 
 MusicCommands: ; e8720
-; pointer to each command in order
-	; octaves
+; entries correspond to macros/sound.asm enumeration
 	dw Music_Octave8 ; octave 8
 	dw Music_Octave7 ; octave 7
 	dw Music_Octave6 ; octave 6
--- a/battle/ai/items.asm
+++ b/battle/ai/items.asm
@@ -749,7 +749,7 @@
 Function384d5: ; This appears to be unused
 	call AIUsedItemSound
 	call AI_HealStatus
-	ld a, X_SPEED
+	ld a, FULL_HEAL_RED ; X_SPEED
 	jp PrintText_UsedItemOn_AND_AIUpdateHUD
 ; 384e0
 
@@ -761,6 +761,10 @@
 	xor a
 	ld [hl], a
 	ld [EnemyMonStatus], a
+	; Bug: this should reset SUBSTATUS_NIGHTMARE too
+	; Uncomment the lines below to fix
+	; ld hl, EnemySubStatus1
+	; res SUBSTATUS_NIGHTMARE, [hl]
 	ld hl, EnemySubStatus5
 	res SUBSTATUS_TOXIC, [hl]
 	ret
--- a/battle/ai/scoring.asm
+++ b/battle/ai/scoring.asm
@@ -1876,7 +1876,8 @@
 	pop hl
 	jp z, AIDiscourageMove
 
-; 80% chance to greatly encourage this move if the enemy is badly poisoned (weird).
+; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
+; Should check PlayerSubStatus5 instead.
 	ld a, [EnemySubStatus5]
 	bit SUBSTATUS_TOXIC, a
 	jr nz, .asm_38e26
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -352,6 +352,7 @@
 
 
 BattleAnimCommands:: ; cc2a4 (33:42a4)
+; entries correspond to macros/move_anim.asm enumeration
 	dw BattleAnimCmd_Obj
 	dw BattleAnimCmd_1GFX
 	dw BattleAnimCmd_2GFX
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -5998,7 +5998,7 @@
 	swap a
 	and $f
 	ld b, a
-	ld d, $5
+	ld d, NUM_MOVES + 1
 	xor a
 .loop
 	dec d
@@ -6011,7 +6011,9 @@
 	jr .loop
 
 .done
-	and a ; This is probably a bug, and will result in a move with PP Up confusing the game.
+	; Bug: this will result in a move with PP Up confusing the game.
+	; Replace with "and $3f" to fix.
+	and a
 	ret nz
 
 .force_struggle
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -9810,7 +9810,7 @@
 	dec a
 	ld c, a
 	ld b, 0
-	ld a, Item2Attributes - Item1Attributes
+	ld a, ITEMATTR_STRUCT_LENGTH
 	call AddNTimes
 	ld a, BANK(ItemAttributes)
 	call GetFarHalfword
--- a/constants.asm
+++ b/constants.asm
@@ -33,7 +33,9 @@
 INCLUDE "constants/radio_constants.asm"
 INCLUDE "constants/npctrade_constants.asm"
 INCLUDE "constants/sprite_constants.asm"
+INCLUDE "constants/sprite_data_constants.asm"
 INCLUDE "constants/tileset_constants.asm"
+INCLUDE "constants/collision_constants.asm"
 INCLUDE "constants/cgb_constants.asm"
 INCLUDE "constants/battle_tower_constants.asm"
 INCLUDE "constants/cry_constants.asm"
--- /dev/null
+++ b/constants/collision_constants.asm
@@ -1,0 +1,115 @@
+; collision permissions (see tilesets/collision_permissions.asm)
+LANDTILE             EQU $00
+WATERTILE            EQU $01
+WALLTILE             EQU $0f
+TALK                 EQU $10
+
+; collision data types (see tilesets/*_collision.asm)
+; TileCollisionTable indexes (see data/collision_permissions.asm)
+COLL_FLOOR             EQU $00
+COLL_01                EQU $01 ; garbage
+COLL_03                EQU $03 ; garbage
+COLL_04                EQU $04 ; garbage
+COLL_WALL              EQU $07
+COLL_CUT_08            EQU $08 ; unused
+COLL_TALL_GRASS_10     EQU $10 ; unused
+COLL_CUT_TREE          EQU $12
+COLL_LONG_GRASS        EQU $14
+COLL_HEADBUTT_TREE     EQU $15
+COLL_TALL_GRASS        EQU $18
+COLL_CUT_TREE_1A       EQU $1a ; unused
+COLL_LONG_GRASS_1C     EQU $1c ; unused
+COLL_HEADBUTT_TREE_1D  EQU $1d ; unused
+COLL_WATER_21          EQU $21 ; ???
+COLL_ICE               EQU $23
+COLL_WHIRLPOOL         EQU $24
+COLL_BUOY              EQU $27
+COLL_CUT_28            EQU $28 ; garbage
+COLL_WATER             EQU $29
+COLL_ICE_2B            EQU $2b ; unused
+COLL_WHIRLPOOL_2C      EQU $2c ; unused
+COLL_WATERFALL_RIGHT   EQU $30 ; unused !!!
+COLL_WATERFALL_LEFT    EQU $31 ; unused !!!
+COLL_WATERFALL_UP      EQU $32 ; unused !!!
+COLL_WATERFALL         EQU $33
+COLL_CURRENT_RIGHT     EQU $38 ; unused !!!
+COLL_CURRENT_LEFT      EQU $39 ; unused !!!
+COLL_CURRENT_UP        EQU $3a ; unused !!!
+COLL_CURRENT_DOWN      EQU $3b ; unused !!!
+COLL_BRAKE             EQU $40 ; unused !!!
+COLL_WALK_RIGHT        EQU $41 ; unused !!!
+COLL_WALK_LEFT         EQU $42 ; unused !!!
+COLL_WALK_UP           EQU $43 ; unused !!!
+COLL_WALK_DOWN         EQU $44 ; unused !!!
+COLL_BRAKE_45          EQU $45 ; garbage
+COLL_BRAKE_46          EQU $46 ; unused
+COLL_BRAKE_47          EQU $47 ; unused
+COLL_GRASS_48          EQU $48 ; unused
+COLL_GRASS_49          EQU $49 ; unused
+COLL_GRASS_4A          EQU $4a ; garbage
+COLL_GRASS_4B          EQU $4b ; garbage
+COLL_GRASS_4C          EQU $4c ; unused
+COLL_WALK_RIGHT_ALT    EQU $50 ; unused
+COLL_WALK_LEFT_ALT     EQU $51 ; unused
+COLL_WALK_UP_ALT       EQU $52 ; unused
+COLL_WALK_DOWN_ALT     EQU $53 ; unused
+COLL_BRAKE_ALT         EQU $54 ; unused
+COLL_BRAKE_55          EQU $55 ; unused
+COLL_BRAKE_56          EQU $56 ; unused
+COLL_BRAKE_57          EQU $57 ; unused
+COLL_5B                EQU $5b ; garbage
+COLL_PIT               EQU $60
+COLL_VIRTUAL_BOY       EQU $61 ; garbage
+COLL_64                EQU $64 ; garbage
+COLL_65                EQU $65 ; garbage
+COLL_PIT_68            EQU $68 ; unused
+COLL_WARP_CARPET_DOWN  EQU $70
+COLL_DOOR              EQU $71
+COLL_LADDER            EQU $72
+COLL_STAIRCASE_73      EQU $73 ; unused
+COLL_CAVE_74           EQU $74 ; unused
+COLL_DOOR_75           EQU $75 ; unused
+COLL_WARP_CARPET_LEFT  EQU $76
+COLL_WARP_77           EQU $77 ; unused
+COLL_WARP_CARPET_UP    EQU $78
+COLL_DOOR_79           EQU $79 ; unused
+COLL_STAIRCASE         EQU $7a
+COLL_CAVE              EQU $7b
+COLL_WARP_PANEL        EQU $7c
+COLL_DOOR_7D           EQU $7d ; unused
+COLL_WARP_CARPET_RIGHT EQU $7e
+COLL_WARP_7F           EQU $7f ; unused
+COLL_COUNTER           EQU $90
+COLL_BOOKSHELF         EQU $91
+COLL_PC                EQU $93
+COLL_RADIO             EQU $94
+COLL_TOWN_MAP          EQU $95
+COLL_MART_SHELF        EQU $96
+COLL_TV                EQU $97
+COLL_COUNTER_98        EQU $98 ; unused
+COLL_9C                EQU $9c ; garbage
+COLL_WINDOW            EQU $9d
+COLL_INCENSE_BURNER    EQU $9f
+COLL_HOP_RIGHT         EQU $a0
+COLL_HOP_LEFT          EQU $a1
+COLL_HOP_UP            EQU $a2 ; unused !!!
+COLL_HOP_DOWN          EQU $a3
+COLL_HOP_DOWN_RIGHT    EQU $a4
+COLL_HOP_DOWN_LEFT     EQU $a5
+COLL_HOP_UP_RIGHT      EQU $a6 ; unused !!!
+COLL_HOP_UP_LEFT       EQU $a7 ; unused !!!
+COLL_RIGHT_WALL        EQU $b0
+COLL_LEFT_WALL         EQU $b1
+COLL_UP_WALL           EQU $b2
+COLL_DOWN_WALL         EQU $b3 ; unused !!!
+COLL_FF                EQU $ff ; garbage
+
+; collision data type nybbles
+LO_NYBBLE_GRASS      EQU $07
+HI_NYBBLE_TALL_GRASS EQU $10
+HI_NYBBLE_WATER      EQU $20
+HI_NYBBLE_CURRENT    EQU $30
+HI_NYBBLE_WALK       EQU $40
+HI_NYBBLE_WALK_ALT   EQU $50
+HI_NYBBLE_WARPS      EQU $70
+HI_NYBBLE_LEDGES     EQU $a0
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -298,7 +298,6 @@
 
 ; held item effects
 	const_def
-
 	const HELD_NONE
 	const HELD_BERRY
 	const HELD_2
@@ -382,7 +381,7 @@
 	const ITEMATTR_PERMISSIONS
 	const ITEMATTR_POCKET
 	const ITEMATTR_HELP
-NUM_ITEMATTRS EQU const_value
+ITEMATTR_STRUCT_LENGTH EQU const_value
 
 ; item menu types
 ITEMMENU_NOUSE   EQU 0
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -165,515 +165,3 @@
 	const SPRITE_FUCHSIA_GYM_4 ; fa
 	const SPRITE_COPYCAT ; fb
 	const SPRITE_JANINE_IMPERSONATOR ; fc
-
-; sprite_header struct members (see gfx/sprite_headers.asm)
-	const_def
-	const SPRITEHEADER_ADDR_LO
-	const SPRITEHEADER_ADDR_HI
-	const SPRITEHEADER_SIZE
-	const SPRITEHEADER_BANK
-	const SPRITEHEADER_TYPE
-	const SPRITEHEADER_PALETTE
-NUM_SPRITEHEADER_FIELDS EQU const_value
-
-; sprite types
-const_value SET 1
-	const WALKING_SPRITE
-	const STANDING_SPRITE
-	const STILL_SPRITE
-
-; sprite palettes
-	const_def
-	const PAL_OW_RED    ; 0
-	const PAL_OW_BLUE   ; 1
-	const PAL_OW_GREEN  ; 2
-	const PAL_OW_BROWN  ; 3
-	const PAL_OW_PINK   ; 4
-	const PAL_OW_SILVER ; 5
-	const PAL_OW_TREE   ; 6
-	const PAL_OW_ROCK   ; 7
-
-; person_events set bit 3 so as not to use the sprite's default palette
-const_value set (1 << 3)
-	const PAL_NPC_RED    ; 8
-	const PAL_NPC_BLUE   ; 9
-	const PAL_NPC_GREEN  ; a
-	const PAL_NPC_BROWN  ; b
-	const PAL_NPC_PINK   ; c
-	const PAL_NPC_SILVER ; d
-	const PAL_NPC_TREE   ; e
-	const PAL_NPC_ROCK   ; f
-
-; SpriteMovementData indexes (see data/map_objects.asm)
-	const_def
-	const SPRITEMOVEDATA_00                   ; 00
-	const SPRITEMOVEDATA_ITEM_TREE            ; 01
-	const SPRITEMOVEDATA_WANDER               ; 02
-	const SPRITEMOVEDATA_SPINRANDOM_SLOW      ; 03
-	const SPRITEMOVEDATA_WALK_UP_DOWN         ; 04
-	const SPRITEMOVEDATA_WALK_LEFT_RIGHT      ; 05
-	const SPRITEMOVEDATA_STANDING_DOWN        ; 06
-	const SPRITEMOVEDATA_STANDING_UP          ; 07
-	const SPRITEMOVEDATA_STANDING_LEFT        ; 08
-	const SPRITEMOVEDATA_STANDING_RIGHT       ; 09
-	const SPRITEMOVEDATA_SPINRANDOM_FAST      ; 0a
-	const SPRITEMOVEDATA_PLAYER               ; 0b
-	const SPRITEMOVEDATA_0C                   ; 0c
-	const SPRITEMOVEDATA_0D                   ; 0d
-	const SPRITEMOVEDATA_0E                   ; 0e
-	const SPRITEMOVEDATA_0F                   ; 0f
-	const SPRITEMOVEDATA_10                   ; 10
-	const SPRITEMOVEDATA_11                   ; 11
-	const SPRITEMOVEDATA_12                   ; 12
-	const SPRITEMOVEDATA_FOLLOWING            ; 13
-	const SPRITEMOVEDATA_SCRIPTED             ; 14
-	const SPRITEMOVEDATA_SNORLAX              ; 15
-	const SPRITEMOVEDATA_POKEMON              ; 16
-	const SPRITEMOVEDATA_SUDOWOODO            ; 17
-	const SPRITEMOVEDATA_SMASHABLE_ROCK       ; 18
-	const SPRITEMOVEDATA_STRENGTH_BOULDER     ; 19
-	const SPRITEMOVEDATA_FOLLOWNOTEXACT       ; 1a
-	const SPRITEMOVEDATA_SHADOW               ; 1b
-	const SPRITEMOVEDATA_EMOTE                ; 1c
-	const SPRITEMOVEDATA_SCREENSHAKE          ; 1d
-	const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e
-	const SPRITEMOVEDATA_SPINCLOCKWISE        ; 1f
-	const SPRITEMOVEDATA_20                   ; 20
-	const SPRITEMOVEDATA_BIGDOLL              ; 21
-	const SPRITEMOVEDATA_BOULDERDUST          ; 22
-	const SPRITEMOVEDATA_GRASS                ; 23
-	const SPRITEMOVEDATA_LAPRAS               ; 24
-NUM_SPRITEMOVEDATA EQU const_value
-SPRITEMOVEDATA_FIELDS EQU 6
-
-; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm)
-	const_def
-	const SPRITEMOVEFN_00
-	const SPRITEMOVEFN_RANDOM_WALK_Y
-	const SPRITEMOVEFN_RANDOM_WALK_X
-	const SPRITEMOVEFN_RANDOM_WALK_XY
-	const SPRITEMOVEFN_SLOW_RANDOM_SPIN
-	const SPRITEMOVEFN_FAST_RANDOM_SPIN
-	const SPRITEMOVEFN_STANDING
-	const SPRITEMOVEFN_OBEY_DPAD
-	const SPRITEMOVEFN_08
-	const SPRITEMOVEFN_09
-	const SPRITEMOVEFN_0A
-	const SPRITEMOVEFN_0B
-	const SPRITEMOVEFN_0C
-	const SPRITEMOVEFN_0D
-	const SPRITEMOVEFN_0E
-	const SPRITEMOVEFN_FOLLOW
-	const SPRITEMOVEFN_SCRIPTED
-	const SPRITEMOVEFN_STRENGTH
-	const SPRITEMOVEFN_FOLLOWNOTEXACT
-	const SPRITEMOVEFN_SHADOW
-	const SPRITEMOVEFN_EMOTE
-	const SPRITEMOVEFN_BIG_SNORLAX
-	const SPRITEMOVEFN_BOUNCE
-	const SPRITEMOVEFN_SCREENSHAKE
-	const SPRITEMOVEFN_SPIN_CLOCKWISE
-	const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
-	const SPRITEMOVEFN_BOULDERDUST
-	const SPRITEMOVEFN_GRASS
-
-; StepTypesJumptable indexes (see engine/map_objects.asm)
-	const_def
-	const STEP_TYPE_00
-	const STEP_TYPE_SLEEP
-	const STEP_TYPE_NPC_WALK
-	const STEP_TYPE_03
-	const STEP_TYPE_04
-	const STEP_TYPE_05
-	const STEP_TYPE_PLAYER_WALK
-	const STEP_TYPE_07
-	const STEP_TYPE_NPC_JUMP
-	const STEP_TYPE_PLAYER_JUMP
-	const STEP_TYPE_HALF_STEP
-	const STEP_TYPE_BUMP
-	const STEP_TYPE_TELEPORT_FROM
-	const STEP_TYPE_TELEPORT_TO
-	const STEP_TYPE_SKYFALL
-	const STEP_TYPE_0F
-	const STEP_TYPE_GOT_BITE
-	const STEP_TYPE_ROCK_SMASH
-	const STEP_TYPE_RETURN_DIG
-	const STEP_TYPE_TRACKING_OBJECT
-	const STEP_TYPE_14
-	const STEP_TYPE_15
-	const STEP_TYPE_16
-	const STEP_TYPE_17
-	const STEP_TYPE_18
-	const STEP_TYPE_SKYFALL_TOP
-
-; PersonActionPairPointers indexes (see engine/map_object_action.asm)
-	const_def
-	const PERSON_ACTION_00
-	const PERSON_ACTION_STAND
-	const PERSON_ACTION_STEP
-	const PERSON_ACTION_BUMP
-	const PERSON_ACTION_SPIN
-	const PERSON_ACTION_SPIN_FLICKER
-	const PERSON_ACTION_FISHING
-	const PERSON_ACTION_SHADOW
-	const PERSON_ACTION_EMOTE
-	const PERSON_ACTION_BIG_SNORLAX
-	const PERSON_ACTION_BOUNCE
-	const PERSON_ACTION_WEIRD_TREE
-	const PERSON_ACTION_BIG_LAPRAS
-	const PERSON_ACTION_BIG_DOLL
-	const PERSON_ACTION_BOULDER_DUST
-	const PERSON_ACTION_GRASS_SHAKE
-	const PERSON_ACTION_SKYFALL
-
-; Facings indexes (see data/facings.asm)
-	const_def
-	const FACING_STEP_DOWN_0
-	const FACING_STEP_DOWN_1
-	const FACING_STEP_DOWN_2
-	const FACING_STEP_DOWN_3
-	const FACING_STEP_UP_0
-	const FACING_STEP_UP_1
-	const FACING_STEP_UP_2
-	const FACING_STEP_UP_3
-	const FACING_STEP_LEFT_0
-	const FACING_STEP_LEFT_1
-	const FACING_STEP_LEFT_2
-	const FACING_STEP_LEFT_3
-	const FACING_STEP_RIGHT_0
-	const FACING_STEP_RIGHT_1
-	const FACING_STEP_RIGHT_2
-	const FACING_STEP_RIGHT_3
-	const FACING_FISH_DOWN
-	const FACING_FISH_UP
-	const FACING_FISH_LEFT
-	const FACING_FISH_RIGHT
-	const FACING_EMOTE
-	const FACING_SHADOW
-	const FACING_BIG_DOLL_ASYM
-	const FACING_BIG_DOLL_SYM
-	const FACING_WEIRD_TREE_0
-	const FACING_WEIRD_TREE_1
-	const FACING_WEIRD_TREE_2
-	const FACING_WEIRD_TREE_3
-	const FACING_BOULDER_DUST_1
-	const FACING_BOULDER_DUST_2
-	const FACING_GRASS_1
-	const FACING_GRASS_2
-
-; sprite_anim_struct members (see macros/wram.asm)
-	const_def
-	const SPRITEANIMSTRUCT_INDEX           ; 0
-	const SPRITEANIMSTRUCT_FRAMESET_ID     ; 1
-	const SPRITEANIMSTRUCT_ANIM_SEQ_ID     ; 2
-	const SPRITEANIMSTRUCT_TILE_ID         ; 3
-	const SPRITEANIMSTRUCT_XCOORD          ; 4
-	const SPRITEANIMSTRUCT_YCOORD          ; 5
-	const SPRITEANIMSTRUCT_XOFFSET         ; 6
-	const SPRITEANIMSTRUCT_YOFFSET         ; 7
-	const SPRITEANIMSTRUCT_DURATION        ; 8
-	const SPRITEANIMSTRUCT_DURATIONOFFSET  ; 9
-	const SPRITEANIMSTRUCT_FRAME           ; a
-	const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b
-	const SPRITEANIMSTRUCT_0C              ; c
-	const SPRITEANIMSTRUCT_0D              ; d
-	const SPRITEANIMSTRUCT_0E              ; e
-	const SPRITEANIMSTRUCT_0F              ; f
-
-; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
-	const_def
-	const SPRITE_ANIM_FRAMESET_00
-	const SPRITE_ANIM_FRAMESET_PARTY_MON
-	const SPRITE_ANIM_FRAMESET_02 ; unused?
-	const SPRITE_ANIM_FRAMESET_03 ; unused?
-	const SPRITE_ANIM_FRAMESET_04 ; unused?
-	const SPRITE_ANIM_FRAMESET_05 ; unused?
-	const SPRITE_ANIM_FRAMESET_06 ; unused?
-	const SPRITE_ANIM_FRAMESET_07
-	const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR
-	const SPRITE_ANIM_FRAMESET_09 ; unused?
-	const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO
-	const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR
-	const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM
-	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY
-	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2
-	const SPRITE_ANIM_FRAMESET_SLOTS_EGG
-	const SPRITE_ANIM_FRAMESET_RED_WALK
-	const SPRITE_ANIM_FRAMESET_STILL_CURSOR
-	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL
-	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0
-	const SPRITE_ANIM_FRAMESET_TRADE_POOF
-	const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_FRAMESET_TRADEMON_ICON
-	const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE
-	const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT
-	const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED
-	const SPRITE_ANIM_FRAMESET_1C ; unused?
-	const SPRITE_ANIM_FRAMESET_LEAF
-	const SPRITE_ANIM_FRAMESET_CUT_TREE
-	const SPRITE_ANIM_FRAMESET_EGG_CRACK
-	const SPRITE_ANIM_FRAMESET_EGG_HATCH
-	const SPRITE_ANIM_FRAMESET_21 ; unused?
-	const SPRITE_ANIM_FRAMESET_22 ; unused?
-	const SPRITE_ANIM_FRAMESET_23 ; unused?
-	const SPRITE_ANIM_FRAMESET_24
-	const SPRITE_ANIM_FRAMESET_HEADBUTT
-	const SPRITE_ANIM_FRAMESET_26
-	const SPRITE_ANIM_FRAMESET_27 ; unused?
-	const SPRITE_ANIM_FRAMESET_28 ; unused?
-	const SPRITE_ANIM_FRAMESET_29 ; unused?
-	const SPRITE_ANIM_FRAMESET_2A ; unused?
-	const SPRITE_ANIM_FRAMESET_2B ; unused?
-	const SPRITE_ANIM_FRAMESET_2C ; unused?
-	const SPRITE_ANIM_FRAMESET_BLUE_WALK
-	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE
-	const SPRITE_ANIM_FRAMESET_2F
-	const SPRITE_ANIM_FRAMESET_30
-	const SPRITE_ANIM_FRAMESET_31
-	const SPRITE_ANIM_FRAMESET_32
-	const SPRITE_ANIM_FRAMESET_33
-	const SPRITE_ANIM_FRAMESET_34
-	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE
-	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2
-	const SPRITE_ANIM_FRAMESET_INTRO_PICHU
-	const SPRITE_ANIM_FRAMESET_INTRO_WOOPER
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2
-	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY
-	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F
-	const SPRITE_ANIM_FRAMESET_CELEBI_LEFT
-	const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT
-
-; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
-	const_def
-	const SPRITE_ANIM_SEQ_NULL
-	const SPRITE_ANIM_SEQ_PARTY_MON
-	const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
-	const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
-	const SPRITE_ANIM_SEQ_04
-	const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR
-	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
-	const SPRITE_ANIM_SEQ_GS_INTRO_STAR
-	const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_SEQ_SLOTS_GOLEM
-	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
-	const SPRITE_ANIM_SEQ_SLOTS_EGG
-	const SPRITE_ANIM_SEQ_MAIL_CURSOR
-	const SPRITE_ANIM_SEQ_0D
-	const SPRITE_ANIM_SEQ_0E
-	const SPRITE_ANIM_SEQ_0F
-	const SPRITE_ANIM_SEQ_TRADE_POKE_BALL
-	const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE
-	const SPRITE_ANIM_SEQ_REVEAL_NEW_MON
-	const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_SEQ_CUT_LEAVES
-	const SPRITE_ANIM_SEQ_FLY_FROM
-	const SPRITE_ANIM_SEQ_FLY_LEAF
-	const SPRITE_ANIM_SEQ_FLY_TO
-	const SPRITE_ANIM_SEQ_19
-	const SPRITE_ANIM_SEQ_1A
-	const SPRITE_ANIM_SEQ_1B
-	const SPRITE_ANIM_SEQ_1C
-	const SPRITE_ANIM_SEQ_INTRO_SUICUNE
-	const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER
-	const SPRITE_ANIM_SEQ_CELEBI
-	const SPRITE_ANIM_SEQ_INTRO_UNOWN
-	const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
-	const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
-
-; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
-	const_def
-	const SPRITE_ANIM_INDEX_PARTY_MON
-	const SPRITE_ANIM_INDEX_01
-	const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
-	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
-	const SPRITE_ANIM_INDEX_GS_INTRO_STAR
-	const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_INDEX_SLOTS_GOLEM
-	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
-	const SPRITE_ANIM_INDEX_SLOTS_EGG
-	const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
-	const SPRITE_ANIM_INDEX_RED_WALK
-	const SPRITE_ANIM_INDEX_0B
-	const SPRITE_ANIM_INDEX_DUMMY_GAME
-	const SPRITE_ANIM_INDEX_0D
-	const SPRITE_ANIM_INDEX_TRADE_POKE_BALL
-	const SPRITE_ANIM_INDEX_TRADE_POOF
-	const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_INDEX_TRADEMON_ICON
-	const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
-	const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
-	const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
-	const SPRITE_ANIM_INDEX_LEAF
-	const SPRITE_ANIM_INDEX_CUT_TREE
-	const SPRITE_ANIM_INDEX_FLY_LEAF
-	const SPRITE_ANIM_INDEX_EGG_CRACK
-	const SPRITE_ANIM_INDEX_1A
-	const SPRITE_ANIM_INDEX_HEADBUTT
-	const SPRITE_ANIM_INDEX_EGG_HATCH
-	const SPRITE_ANIM_INDEX_1D
-	const SPRITE_ANIM_INDEX_BLUE_WALK
-	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
-	const SPRITE_ANIM_INDEX_20
-	const SPRITE_ANIM_INDEX_21
-	const SPRITE_ANIM_INDEX_22
-	const SPRITE_ANIM_INDEX_23
-	const SPRITE_ANIM_INDEX_24
-	const SPRITE_ANIM_INDEX_25
-	const SPRITE_ANIM_INDEX_INTRO_SUICUNE
-	const SPRITE_ANIM_INDEX_INTRO_PICHU
-	const SPRITE_ANIM_INDEX_INTRO_WOOPER
-	const SPRITE_ANIM_INDEX_INTRO_UNOWN
-	const SPRITE_ANIM_INDEX_INTRO_UNOWN_F
-	const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
-	const SPRITE_ANIM_INDEX_CELEBI
-
-; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
-	const_def
-	const SPRITE_ANIM_FRAME_IDX_00
-	const SPRITE_ANIM_FRAME_IDX_01
-	const SPRITE_ANIM_FRAME_IDX_02
-	const SPRITE_ANIM_FRAME_IDX_03
-	const SPRITE_ANIM_FRAME_IDX_04
-	const SPRITE_ANIM_FRAME_IDX_05
-	const SPRITE_ANIM_FRAME_IDX_06
-	const SPRITE_ANIM_FRAME_IDX_07
-	const SPRITE_ANIM_FRAME_IDX_08
-	const SPRITE_ANIM_FRAME_IDX_09
-	const SPRITE_ANIM_FRAME_IDX_0A
-	const SPRITE_ANIM_FRAME_IDX_0B
-	const SPRITE_ANIM_FRAME_IDX_0C
-	const SPRITE_ANIM_FRAME_IDX_0D
-	const SPRITE_ANIM_FRAME_IDX_0E
-	const SPRITE_ANIM_FRAME_IDX_0F
-	const SPRITE_ANIM_FRAME_IDX_10
-	const SPRITE_ANIM_FRAME_IDX_11
-	const SPRITE_ANIM_FRAME_IDX_12
-	const SPRITE_ANIM_FRAME_IDX_13
-	const SPRITE_ANIM_FRAME_IDX_14
-	const SPRITE_ANIM_FRAME_IDX_15
-	const SPRITE_ANIM_FRAME_IDX_16
-	const SPRITE_ANIM_FRAME_IDX_17
-	const SPRITE_ANIM_FRAME_IDX_18
-	const SPRITE_ANIM_FRAME_IDX_19
-	const SPRITE_ANIM_FRAME_IDX_1A
-	const SPRITE_ANIM_FRAME_IDX_1B
-	const SPRITE_ANIM_FRAME_IDX_1C
-	const SPRITE_ANIM_FRAME_IDX_1D
-	const SPRITE_ANIM_FRAME_IDX_1E
-	const SPRITE_ANIM_FRAME_IDX_1F
-	const SPRITE_ANIM_FRAME_IDX_20
-	const SPRITE_ANIM_FRAME_IDX_21
-	const SPRITE_ANIM_FRAME_IDX_22
-	const SPRITE_ANIM_FRAME_IDX_23
-	const SPRITE_ANIM_FRAME_IDX_24
-	const SPRITE_ANIM_FRAME_IDX_25
-	const SPRITE_ANIM_FRAME_IDX_26
-	const SPRITE_ANIM_FRAME_IDX_27
-	const SPRITE_ANIM_FRAME_IDX_28
-	const SPRITE_ANIM_FRAME_IDX_29
-	const SPRITE_ANIM_FRAME_IDX_2A
-	const SPRITE_ANIM_FRAME_IDX_2B
-	const SPRITE_ANIM_FRAME_IDX_2C
-	const SPRITE_ANIM_FRAME_IDX_2D
-	const SPRITE_ANIM_FRAME_IDX_2E
-	const SPRITE_ANIM_FRAME_IDX_2F
-	const SPRITE_ANIM_FRAME_IDX_30
-	const SPRITE_ANIM_FRAME_IDX_31
-	const SPRITE_ANIM_FRAME_IDX_32
-	const SPRITE_ANIM_FRAME_IDX_33
-	const SPRITE_ANIM_FRAME_IDX_34
-	const SPRITE_ANIM_FRAME_IDX_35
-	const SPRITE_ANIM_FRAME_IDX_36
-	const SPRITE_ANIM_FRAME_IDX_37
-	const SPRITE_ANIM_FRAME_IDX_38
-	const SPRITE_ANIM_FRAME_IDX_39
-	const SPRITE_ANIM_FRAME_IDX_3A
-	const SPRITE_ANIM_FRAME_IDX_3B
-	const SPRITE_ANIM_FRAME_IDX_3C
-	const SPRITE_ANIM_FRAME_IDX_3D
-	const SPRITE_ANIM_FRAME_IDX_3E
-	const SPRITE_ANIM_FRAME_IDX_3F
-	const SPRITE_ANIM_FRAME_IDX_40
-	const SPRITE_ANIM_FRAME_IDX_41
-	const SPRITE_ANIM_FRAME_IDX_42
-	const SPRITE_ANIM_FRAME_IDX_43
-	const SPRITE_ANIM_FRAME_IDX_44
-	const SPRITE_ANIM_FRAME_IDX_45
-	const SPRITE_ANIM_FRAME_IDX_46
-	const SPRITE_ANIM_FRAME_IDX_47
-	const SPRITE_ANIM_FRAME_IDX_48
-	const SPRITE_ANIM_FRAME_IDX_49
-	const SPRITE_ANIM_FRAME_IDX_4A
-	const SPRITE_ANIM_FRAME_IDX_4B
-	const SPRITE_ANIM_FRAME_IDX_4C
-	const SPRITE_ANIM_FRAME_IDX_4D
-	const SPRITE_ANIM_FRAME_IDX_4E
-	const SPRITE_ANIM_FRAME_IDX_4F
-	const SPRITE_ANIM_FRAME_IDX_50
-	const SPRITE_ANIM_FRAME_IDX_51
-	const SPRITE_ANIM_FRAME_IDX_52
-	const SPRITE_ANIM_FRAME_IDX_53
-	const SPRITE_ANIM_FRAME_IDX_54
-	const SPRITE_ANIM_FRAME_IDX_55
-	const SPRITE_ANIM_FRAME_IDX_56
-	const SPRITE_ANIM_FRAME_IDX_57
-	const SPRITE_ANIM_FRAME_IDX_58
-	const SPRITE_ANIM_FRAME_IDX_59
-	const SPRITE_ANIM_FRAME_IDX_5A
-	const SPRITE_ANIM_FRAME_IDX_5B
-	const SPRITE_ANIM_FRAME_IDX_5C
-	const SPRITE_ANIM_FRAME_IDX_5D
-	const SPRITE_ANIM_FRAME_IDX_5E
-	const SPRITE_ANIM_FRAME_IDX_5F
-	const SPRITE_ANIM_FRAME_IDX_60
-	const SPRITE_ANIM_FRAME_IDX_61
-	const SPRITE_ANIM_FRAME_IDX_62
-	const SPRITE_ANIM_FRAME_IDX_63
-	const SPRITE_ANIM_FRAME_IDX_64
-	const SPRITE_ANIM_FRAME_IDX_65
-	const SPRITE_ANIM_FRAME_IDX_66
-	const SPRITE_ANIM_FRAME_IDX_67
-	const SPRITE_ANIM_FRAME_IDX_68
-	const SPRITE_ANIM_FRAME_IDX_69
-	const SPRITE_ANIM_FRAME_IDX_6A
-	const SPRITE_ANIM_FRAME_IDX_6B
-	const SPRITE_ANIM_FRAME_IDX_6C
-	const SPRITE_ANIM_FRAME_IDX_6D
-	const SPRITE_ANIM_FRAME_IDX_6E
-	const SPRITE_ANIM_FRAME_IDX_6F
-	const SPRITE_ANIM_FRAME_IDX_70
-	const SPRITE_ANIM_FRAME_IDX_71
-	const SPRITE_ANIM_FRAME_IDX_72
-	const SPRITE_ANIM_FRAME_IDX_73
-	const SPRITE_ANIM_FRAME_IDX_74
-	const SPRITE_ANIM_FRAME_IDX_75
-	const SPRITE_ANIM_FRAME_IDX_76
-	const SPRITE_ANIM_FRAME_IDX_77
-	const SPRITE_ANIM_FRAME_IDX_78
-	const SPRITE_ANIM_FRAME_IDX_79
-	const SPRITE_ANIM_FRAME_IDX_7A
-	const SPRITE_ANIM_FRAME_IDX_7B
-	const SPRITE_ANIM_FRAME_IDX_7C
-	const SPRITE_ANIM_FRAME_IDX_7D
-	const SPRITE_ANIM_FRAME_IDX_7E
-	const SPRITE_ANIM_FRAME_IDX_7F
-	const SPRITE_ANIM_FRAME_IDX_80
-	const SPRITE_ANIM_FRAME_IDX_81
-	const SPRITE_ANIM_FRAME_IDX_82
-	const SPRITE_ANIM_FRAME_IDX_83
-	const SPRITE_ANIM_FRAME_IDX_84
-	const SPRITE_ANIM_FRAME_IDX_85
-	const SPRITE_ANIM_FRAME_IDX_86
-	const SPRITE_ANIM_FRAME_IDX_87
-	const SPRITE_ANIM_FRAME_IDX_88
-	const SPRITE_ANIM_FRAME_IDX_89
-	const SPRITE_ANIM_FRAME_IDX_8A
-	const SPRITE_ANIM_FRAME_IDX_8B
--- /dev/null
+++ b/constants/sprite_data_constants.asm
@@ -1,0 +1,511 @@
+; sprite_header struct members (see gfx/sprite_headers.asm)
+	const_def
+	const SPRITEHEADER_ADDR_LO ; 0
+	const SPRITEHEADER_ADDR_HI ; 1
+	const SPRITEHEADER_SIZE    ; 2
+	const SPRITEHEADER_BANK    ; 3
+	const SPRITEHEADER_TYPE    ; 4
+	const SPRITEHEADER_PALETTE ; 5
+NUM_SPRITEHEADER_FIELDS EQU const_value
+
+; sprite types
+const_value SET 1
+	const WALKING_SPRITE  ; 1
+	const STANDING_SPRITE ; 2
+	const STILL_SPRITE    ; 3
+
+; sprite palettes
+	const_def
+	const PAL_OW_RED    ; 0
+	const PAL_OW_BLUE   ; 1
+	const PAL_OW_GREEN  ; 2
+	const PAL_OW_BROWN  ; 3
+	const PAL_OW_PINK   ; 4
+	const PAL_OW_SILVER ; 5
+	const PAL_OW_TREE   ; 6
+	const PAL_OW_ROCK   ; 7
+
+; person_events set bit 3 so as not to use the sprite's default palette
+const_value set (1 << 3)
+	const PAL_NPC_RED    ; 8
+	const PAL_NPC_BLUE   ; 9
+	const PAL_NPC_GREEN  ; a
+	const PAL_NPC_BROWN  ; b
+	const PAL_NPC_PINK   ; c
+	const PAL_NPC_SILVER ; d
+	const PAL_NPC_TREE   ; e
+	const PAL_NPC_ROCK   ; f
+
+; SpriteMovementData indexes (see data/map_objects.asm)
+	const_def
+	const SPRITEMOVEDATA_00                   ; 00
+	const SPRITEMOVEDATA_ITEM_TREE            ; 01
+	const SPRITEMOVEDATA_WANDER               ; 02
+	const SPRITEMOVEDATA_SPINRANDOM_SLOW      ; 03
+	const SPRITEMOVEDATA_WALK_UP_DOWN         ; 04
+	const SPRITEMOVEDATA_WALK_LEFT_RIGHT      ; 05
+	const SPRITEMOVEDATA_STANDING_DOWN        ; 06
+	const SPRITEMOVEDATA_STANDING_UP          ; 07
+	const SPRITEMOVEDATA_STANDING_LEFT        ; 08
+	const SPRITEMOVEDATA_STANDING_RIGHT       ; 09
+	const SPRITEMOVEDATA_SPINRANDOM_FAST      ; 0a
+	const SPRITEMOVEDATA_PLAYER               ; 0b
+	const SPRITEMOVEDATA_0C                   ; 0c
+	const SPRITEMOVEDATA_0D                   ; 0d
+	const SPRITEMOVEDATA_0E                   ; 0e
+	const SPRITEMOVEDATA_0F                   ; 0f
+	const SPRITEMOVEDATA_10                   ; 10
+	const SPRITEMOVEDATA_11                   ; 11
+	const SPRITEMOVEDATA_12                   ; 12
+	const SPRITEMOVEDATA_FOLLOWING            ; 13
+	const SPRITEMOVEDATA_SCRIPTED             ; 14
+	const SPRITEMOVEDATA_SNORLAX              ; 15
+	const SPRITEMOVEDATA_POKEMON              ; 16
+	const SPRITEMOVEDATA_SUDOWOODO            ; 17
+	const SPRITEMOVEDATA_SMASHABLE_ROCK       ; 18
+	const SPRITEMOVEDATA_STRENGTH_BOULDER     ; 19
+	const SPRITEMOVEDATA_FOLLOWNOTEXACT       ; 1a
+	const SPRITEMOVEDATA_SHADOW               ; 1b
+	const SPRITEMOVEDATA_EMOTE                ; 1c
+	const SPRITEMOVEDATA_SCREENSHAKE          ; 1d
+	const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e
+	const SPRITEMOVEDATA_SPINCLOCKWISE        ; 1f
+	const SPRITEMOVEDATA_20                   ; 20
+	const SPRITEMOVEDATA_BIGDOLL              ; 21
+	const SPRITEMOVEDATA_BOULDERDUST          ; 22
+	const SPRITEMOVEDATA_GRASS                ; 23
+	const SPRITEMOVEDATA_LAPRAS               ; 24
+NUM_SPRITEMOVEDATA EQU const_value
+SPRITEMOVEDATA_FIELDS EQU 6
+
+; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm)
+	const_def
+	const SPRITEMOVEFN_00                    ; 00
+	const SPRITEMOVEFN_RANDOM_WALK_Y         ; 01
+	const SPRITEMOVEFN_RANDOM_WALK_X         ; 02
+	const SPRITEMOVEFN_RANDOM_WALK_XY        ; 03
+	const SPRITEMOVEFN_SLOW_RANDOM_SPIN      ; 04
+	const SPRITEMOVEFN_FAST_RANDOM_SPIN      ; 05
+	const SPRITEMOVEFN_STANDING              ; 06
+	const SPRITEMOVEFN_OBEY_DPAD             ; 07
+	const SPRITEMOVEFN_08                    ; 08
+	const SPRITEMOVEFN_09                    ; 09
+	const SPRITEMOVEFN_0A                    ; 0a
+	const SPRITEMOVEFN_0B                    ; 0b
+	const SPRITEMOVEFN_0C                    ; 0c
+	const SPRITEMOVEFN_0D                    ; 0d
+	const SPRITEMOVEFN_0E                    ; 0e
+	const SPRITEMOVEFN_FOLLOW                ; 0f
+	const SPRITEMOVEFN_SCRIPTED              ; 10
+	const SPRITEMOVEFN_STRENGTH              ; 11
+	const SPRITEMOVEFN_FOLLOWNOTEXACT        ; 12
+	const SPRITEMOVEFN_SHADOW                ; 13
+	const SPRITEMOVEFN_EMOTE                 ; 14
+	const SPRITEMOVEFN_BIG_SNORLAX           ; 15
+	const SPRITEMOVEFN_BOUNCE                ; 16
+	const SPRITEMOVEFN_SCREENSHAKE           ; 17
+	const SPRITEMOVEFN_SPIN_CLOCKWISE        ; 18
+	const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; 19
+	const SPRITEMOVEFN_BOULDERDUST           ; 1a
+	const SPRITEMOVEFN_GRASS                 ; 1b
+
+; StepTypesJumptable indexes (see engine/map_objects.asm)
+	const_def
+	const STEP_TYPE_00              ; 00
+	const STEP_TYPE_SLEEP           ; 01
+	const STEP_TYPE_NPC_WALK        ; 02
+	const STEP_TYPE_03              ; 03
+	const STEP_TYPE_04              ; 04
+	const STEP_TYPE_05              ; 05
+	const STEP_TYPE_PLAYER_WALK     ; 06
+	const STEP_TYPE_07              ; 07
+	const STEP_TYPE_NPC_JUMP        ; 08
+	const STEP_TYPE_PLAYER_JUMP     ; 09
+	const STEP_TYPE_HALF_STEP       ; 0a
+	const STEP_TYPE_BUMP            ; 0b
+	const STEP_TYPE_TELEPORT_FROM   ; 0c
+	const STEP_TYPE_TELEPORT_TO     ; 0d
+	const STEP_TYPE_SKYFALL         ; 0e
+	const STEP_TYPE_0F              ; 0f
+	const STEP_TYPE_GOT_BITE        ; 10
+	const STEP_TYPE_ROCK_SMASH      ; 11
+	const STEP_TYPE_RETURN_DIG      ; 12
+	const STEP_TYPE_TRACKING_OBJECT ; 13
+	const STEP_TYPE_14              ; 14
+	const STEP_TYPE_15              ; 15
+	const STEP_TYPE_16              ; 16
+	const STEP_TYPE_17              ; 17
+	const STEP_TYPE_18              ; 18
+	const STEP_TYPE_SKYFALL_TOP     ; 19
+
+; PersonActionPairPointers indexes (see engine/map_object_action.asm)
+	const_def
+	const PERSON_ACTION_00           ; 00
+	const PERSON_ACTION_STAND        ; 01
+	const PERSON_ACTION_STEP         ; 02
+	const PERSON_ACTION_BUMP         ; 03
+	const PERSON_ACTION_SPIN         ; 04
+	const PERSON_ACTION_SPIN_FLICKER ; 05
+	const PERSON_ACTION_FISHING      ; 06
+	const PERSON_ACTION_SHADOW       ; 07
+	const PERSON_ACTION_EMOTE        ; 08
+	const PERSON_ACTION_BIG_SNORLAX  ; 09
+	const PERSON_ACTION_BOUNCE       ; 0a
+	const PERSON_ACTION_WEIRD_TREE   ; 0b
+	const PERSON_ACTION_BIG_LAPRAS   ; 0c
+	const PERSON_ACTION_BIG_DOLL     ; 0d
+	const PERSON_ACTION_BOULDER_DUST ; 0e
+	const PERSON_ACTION_GRASS_SHAKE  ; 0f
+	const PERSON_ACTION_SKYFALL      ; 10
+
+; Facings indexes (see data/facings.asm)
+	const_def
+	const FACING_STEP_DOWN_0    ; 00
+	const FACING_STEP_DOWN_1    ; 01
+	const FACING_STEP_DOWN_2    ; 02
+	const FACING_STEP_DOWN_3    ; 03
+	const FACING_STEP_UP_0      ; 04
+	const FACING_STEP_UP_1      ; 05
+	const FACING_STEP_UP_2      ; 06
+	const FACING_STEP_UP_3      ; 07
+	const FACING_STEP_LEFT_0    ; 08
+	const FACING_STEP_LEFT_1    ; 09
+	const FACING_STEP_LEFT_2    ; 0a
+	const FACING_STEP_LEFT_3    ; 0b
+	const FACING_STEP_RIGHT_0   ; 0c
+	const FACING_STEP_RIGHT_1   ; 0d
+	const FACING_STEP_RIGHT_2   ; 0e
+	const FACING_STEP_RIGHT_3   ; 0f
+	const FACING_FISH_DOWN      ; 10
+	const FACING_FISH_UP        ; 11
+	const FACING_FISH_LEFT      ; 12
+	const FACING_FISH_RIGHT     ; 13
+	const FACING_EMOTE          ; 14
+	const FACING_SHADOW         ; 15
+	const FACING_BIG_DOLL_ASYM  ; 16
+	const FACING_BIG_DOLL_SYM   ; 17
+	const FACING_WEIRD_TREE_0   ; 18
+	const FACING_WEIRD_TREE_1   ; 19
+	const FACING_WEIRD_TREE_2   ; 1a
+	const FACING_WEIRD_TREE_3   ; 1b
+	const FACING_BOULDER_DUST_1 ; 1c
+	const FACING_BOULDER_DUST_2 ; 1d
+	const FACING_GRASS_1        ; 1e
+	const FACING_GRASS_2        ; 1f
+
+; sprite_anim_struct members (see macros/wram.asm)
+	const_def
+	const SPRITEANIMSTRUCT_INDEX           ; 0
+	const SPRITEANIMSTRUCT_FRAMESET_ID     ; 1
+	const SPRITEANIMSTRUCT_ANIM_SEQ_ID     ; 2
+	const SPRITEANIMSTRUCT_TILE_ID         ; 3
+	const SPRITEANIMSTRUCT_XCOORD          ; 4
+	const SPRITEANIMSTRUCT_YCOORD          ; 5
+	const SPRITEANIMSTRUCT_XOFFSET         ; 6
+	const SPRITEANIMSTRUCT_YOFFSET         ; 7
+	const SPRITEANIMSTRUCT_DURATION        ; 8
+	const SPRITEANIMSTRUCT_DURATIONOFFSET  ; 9
+	const SPRITEANIMSTRUCT_FRAME           ; a
+	const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b
+	const SPRITEANIMSTRUCT_0C              ; c
+	const SPRITEANIMSTRUCT_0D              ; d
+	const SPRITEANIMSTRUCT_0E              ; e
+	const SPRITEANIMSTRUCT_0F              ; f
+
+; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
+	const_def
+	const SPRITE_ANIM_INDEX_PARTY_MON               ; 00
+	const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL          ; 01
+	const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR    ; 02
+	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO          ; 03
+	const SPRITE_ANIM_INDEX_GS_INTRO_STAR           ; 04
+	const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE        ; 05
+	const SPRITE_ANIM_INDEX_SLOTS_GOLEM             ; 06
+	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY           ; 07
+	const SPRITE_ANIM_INDEX_SLOTS_EGG               ; 08
+	const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR     ; 09
+	const SPRITE_ANIM_INDEX_RED_WALK                ; 0a
+	const SPRITE_ANIM_INDEX_UNUSED_CURSOR           ; 0b
+	const SPRITE_ANIM_INDEX_DUMMY_GAME              ; 0c
+	const SPRITE_ANIM_INDEX_POKEGEAR_ARROW          ; 0d
+	const SPRITE_ANIM_INDEX_TRADE_POKE_BALL         ; 0e
+	const SPRITE_ANIM_INDEX_TRADE_POOF              ; 0f
+	const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE        ; 10
+	const SPRITE_ANIM_INDEX_TRADEMON_ICON           ; 11
+	const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE         ; 12
+	const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT ; 13
+	const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB       ; 14
+	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED        ; 15
+	const SPRITE_ANIM_INDEX_LEAF                    ; 16
+	const SPRITE_ANIM_INDEX_CUT_TREE                ; 17
+	const SPRITE_ANIM_INDEX_FLY_LEAF                ; 18
+	const SPRITE_ANIM_INDEX_EGG_CRACK               ; 19
+	const SPRITE_ANIM_INDEX_1A                      ; 1a
+	const SPRITE_ANIM_INDEX_HEADBUTT                ; 1b
+	const SPRITE_ANIM_INDEX_EGG_HATCH               ; 1c
+	const SPRITE_ANIM_INDEX_1D                      ; 1d
+	const SPRITE_ANIM_INDEX_BLUE_WALK               ; 1e
+	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE       ; 1f
+	const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL  ; 20
+	const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL    ; 21
+	const SPRITE_ANIM_INDEX_MOBILE_22               ; 22
+	const SPRITE_ANIM_INDEX_MOBILE_23               ; 23
+	const SPRITE_ANIM_INDEX_MOBILE_24               ; 24
+	const SPRITE_ANIM_INDEX_MOBILE_25               ; 25
+	const SPRITE_ANIM_INDEX_INTRO_SUICUNE           ; 26
+	const SPRITE_ANIM_INDEX_INTRO_PICHU             ; 27
+	const SPRITE_ANIM_INDEX_INTRO_WOOPER            ; 28
+	const SPRITE_ANIM_INDEX_INTRO_UNOWN             ; 29
+	const SPRITE_ANIM_INDEX_INTRO_UNOWN_F           ; 2a
+	const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY      ; 2b
+	const SPRITE_ANIM_INDEX_CELEBI                  ; 2c
+
+; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
+	const_def
+	const SPRITE_ANIM_SEQ_NULL                 ; 00
+	const SPRITE_ANIM_SEQ_PARTY_MON            ; 01
+	const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH     ; 02
+	const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED   ; 03
+	const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL       ; 04
+	const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05
+	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO       ; 06
+	const SPRITE_ANIM_SEQ_GS_INTRO_STAR        ; 07
+	const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE     ; 08
+	const SPRITE_ANIM_SEQ_SLOTS_GOLEM          ; 09
+	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY        ; 0a
+	const SPRITE_ANIM_SEQ_SLOTS_EGG            ; 0b
+	const SPRITE_ANIM_SEQ_MAIL_CURSOR          ; 0c
+	const SPRITE_ANIM_SEQ_FOR_UNUSED_CURSOR    ; 0d
+	const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR    ; 0e
+	const SPRITE_ANIM_SEQ_POKEGEAR_ARROW       ; 0f
+	const SPRITE_ANIM_SEQ_TRADE_POKE_BALL      ; 10
+	const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE     ; 11
+	const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE     ; 12
+	const SPRITE_ANIM_SEQ_REVEAL_NEW_MON       ; 13
+	const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB    ; 14
+	const SPRITE_ANIM_SEQ_CUT_LEAVES           ; 15
+	const SPRITE_ANIM_SEQ_FLY_FROM             ; 16
+	const SPRITE_ANIM_SEQ_FLY_LEAF             ; 17
+	const SPRITE_ANIM_SEQ_FLY_TO               ; 18
+	const SPRITE_ANIM_SEQ_19                   ; 19
+	const SPRITE_ANIM_SEQ_1A                   ; 1a
+	const SPRITE_ANIM_SEQ_FOR_MOBILE_23        ; 1b
+	const SPRITE_ANIM_SEQ_FOR_MOBILE_24        ; 1c
+	const SPRITE_ANIM_SEQ_INTRO_SUICUNE        ; 1d
+	const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER   ; 1e
+	const SPRITE_ANIM_SEQ_CELEBI               ; 1f
+	const SPRITE_ANIM_SEQ_INTRO_UNOWN          ; 20
+	const SPRITE_ANIM_SEQ_INTRO_UNOWN_F        ; 21
+	const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY   ; 22
+
+; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
+	const_def
+	const SPRITE_ANIM_FRAMESET_00
+	const SPRITE_ANIM_FRAMESET_PARTY_MON ; 01
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL ; 02
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM ; 03
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST ; 04
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL_FAST ; 05
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM_FAST ; 06
+	const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL ; 07
+	const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08
+	const SPRITE_ANIM_FRAMESET_09
+	const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a
+	const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b
+	const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c
+	const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d
+	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e
+	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f
+	const SPRITE_ANIM_FRAMESET_SLOTS_EGG ; 10
+	const SPRITE_ANIM_FRAMESET_RED_WALK ; 11
+	const SPRITE_ANIM_FRAMESET_STILL_CURSOR ; 12
+	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL ; 13
+	const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0 ; 14
+	const SPRITE_ANIM_FRAMESET_TRADE_POOF ; 15
+	const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE ; 16
+	const SPRITE_ANIM_FRAMESET_TRADEMON_ICON ; 17
+	const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE ; 18
+	const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT ; 19
+	const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB ; 1a
+	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED ; 1b
+	const SPRITE_ANIM_FRAMESET_1C
+	const SPRITE_ANIM_FRAMESET_LEAF ; 1d
+	const SPRITE_ANIM_FRAMESET_CUT_TREE ; 1e
+	const SPRITE_ANIM_FRAMESET_EGG_CRACK ; 1f
+	const SPRITE_ANIM_FRAMESET_EGG_HATCH ; 20
+	const SPRITE_ANIM_FRAMESET_21
+	const SPRITE_ANIM_FRAMESET_22
+	const SPRITE_ANIM_FRAMESET_23
+	const SPRITE_ANIM_FRAMESET_24
+	const SPRITE_ANIM_FRAMESET_HEADBUTT ; 25
+	const SPRITE_ANIM_FRAMESET_26
+	const SPRITE_ANIM_FRAMESET_27
+	const SPRITE_ANIM_FRAMESET_28
+	const SPRITE_ANIM_FRAMESET_29
+	const SPRITE_ANIM_FRAMESET_2A
+	const SPRITE_ANIM_FRAMESET_2B
+	const SPRITE_ANIM_FRAMESET_2C
+	const SPRITE_ANIM_FRAMESET_BLUE_WALK ; 2d
+	const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE ; 2e
+	const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL ; 2f
+	const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL ; 30
+	const SPRITE_ANIM_FRAMESET_FOR_MOBILE_22 ; 31
+	const SPRITE_ANIM_FRAMESET_FOR_MOBILE_23 ; 32
+	const SPRITE_ANIM_FRAMESET_FOR_MOBILE_24 ; 33
+	const SPRITE_ANIM_FRAMESET_FOR_MOBILE_25 ; 34
+	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE ; 35
+	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 ; 36
+	const SPRITE_ANIM_FRAMESET_INTRO_PICHU ; 37
+	const SPRITE_ANIM_FRAMESET_INTRO_WOOPER ; 38
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 ; 39
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 ; 3a
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 ; 3b
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 ; 3c
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 ; 3d
+	const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY ; 3e
+	const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f
+	const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40
+	const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41
+
+; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
+	const_def
+	const SPRITE_ANIM_FRAME_IDX_RED_WALK_1 ; 00
+	const SPRITE_ANIM_FRAME_IDX_RED_WALK_2 ; 01
+	const SPRITE_ANIM_FRAME_IDX_02
+	const SPRITE_ANIM_FRAME_IDX_03
+	const SPRITE_ANIM_FRAME_IDX_04
+	const SPRITE_ANIM_FRAME_IDX_05
+	const SPRITE_ANIM_FRAME_IDX_06
+	const SPRITE_ANIM_FRAME_IDX_07
+	const SPRITE_ANIM_FRAME_IDX_08
+	const SPRITE_ANIM_FRAME_IDX_09
+	const SPRITE_ANIM_FRAME_IDX_0A
+	const SPRITE_ANIM_FRAME_IDX_0B
+	const SPRITE_ANIM_FRAME_IDX_0C
+	const SPRITE_ANIM_FRAME_IDX_0D
+	const SPRITE_ANIM_FRAME_IDX_0E
+	const SPRITE_ANIM_FRAME_IDX_0F
+	const SPRITE_ANIM_FRAME_IDX_10
+	const SPRITE_ANIM_FRAME_IDX_11
+	const SPRITE_ANIM_FRAME_IDX_12
+	const SPRITE_ANIM_FRAME_IDX_13
+	const SPRITE_ANIM_FRAME_IDX_14
+	const SPRITE_ANIM_FRAME_IDX_15
+	const SPRITE_ANIM_FRAME_IDX_16
+	const SPRITE_ANIM_FRAME_IDX_17
+	const SPRITE_ANIM_FRAME_IDX_18
+	const SPRITE_ANIM_FRAME_IDX_19
+	const SPRITE_ANIM_FRAME_IDX_1A
+	const SPRITE_ANIM_FRAME_IDX_1B
+	const SPRITE_ANIM_FRAME_IDX_1C
+	const SPRITE_ANIM_FRAME_IDX_1D
+	const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1 ; 1e
+	const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2 ; 1f
+	const SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR ; 20
+	const SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09 ; 21
+	const SPRITE_ANIM_FRAME_IDX_22
+	const SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR ; 23
+	const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1 ; 24
+	const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2 ; 25
+	const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3 ; 26
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1 ; 27
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2 ; 28
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1 ; 29
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2 ; 2a
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3 ; 2b
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4 ; 2c
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5 ; 2d
+	const SPRITE_ANIM_FRAME_IDX_SLOTS_EGG ; 2e
+	const SPRITE_ANIM_FRAME_IDX_STILL_CURSOR ; 2f
+	const SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1 ; 30
+	const SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2 ; 31
+	const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1 ; 32
+	const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2 ; 33
+	const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3 ; 34
+	const SPRITE_ANIM_FRAME_IDX_35
+	const SPRITE_ANIM_FRAME_IDX_36
+	const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1 ; 37
+	const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2 ; 38
+	const SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE ; 39
+	const SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1 ; 3a
+	const SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2 ; 3b
+	const SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB ; 3c
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1 ; 3d
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2 ; 3e
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1 ; 3f
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2 ; 40
+	const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1 ; 41
+	const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2 ; 42
+	const SPRITE_ANIM_FRAME_IDX_43
+	const SPRITE_ANIM_FRAME_IDX_44
+	const SPRITE_ANIM_FRAME_IDX_45
+	const SPRITE_ANIM_FRAME_IDX_46
+	const SPRITE_ANIM_FRAME_IDX_47
+	const SPRITE_ANIM_FRAME_IDX_48
+	const SPRITE_ANIM_FRAME_IDX_49
+	const SPRITE_ANIM_FRAME_IDX_4A
+	const SPRITE_ANIM_FRAME_IDX_4B
+	const SPRITE_ANIM_FRAME_IDX_4C
+	const SPRITE_ANIM_FRAME_IDX_4D
+	const SPRITE_ANIM_FRAME_IDX_4E
+	const SPRITE_ANIM_FRAME_IDX_LEAF ; 4f
+	const SPRITE_ANIM_FRAME_IDX_TREE_1 ; 50
+	const SPRITE_ANIM_FRAME_IDX_CUT_TREE_2 ; 51
+	const SPRITE_ANIM_FRAME_IDX_CUT_TREE_3 ; 52
+	const SPRITE_ANIM_FRAME_IDX_CUT_TREE_4 ; 53
+	const SPRITE_ANIM_FRAME_IDX_EGG_CRACK ; 54
+	const SPRITE_ANIM_FRAME_IDX_55
+	const SPRITE_ANIM_FRAME_IDX_56
+	const SPRITE_ANIM_FRAME_IDX_57
+	const SPRITE_ANIM_FRAME_IDX_58
+	const SPRITE_ANIM_FRAME_IDX_59
+	const SPRITE_ANIM_FRAME_IDX_5A
+	const SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2 ; 5b
+	const SPRITE_ANIM_FRAME_IDX_5C
+	const SPRITE_ANIM_FRAME_IDX_5D
+	const SPRITE_ANIM_FRAME_IDX_5E
+	const SPRITE_ANIM_FRAME_IDX_5F
+	const SPRITE_ANIM_FRAME_IDX_60
+	const SPRITE_ANIM_FRAME_IDX_61
+	const SPRITE_ANIM_FRAME_IDX_62
+	const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1 ; 63
+	const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2 ; 64
+	const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1 ; 65
+	const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2 ; 66
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1 ; 67
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2 ; 68
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1 ; 69
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2 ; 6a
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3 ; 6b
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23 ; 6c
+	const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24 ; 6d
+	const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1 ; 6e
+	const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2 ; 6f
+	const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3 ; 70
+	const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4 ; 71
+	const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1 ; 72
+	const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2 ; 73
+	const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3 ; 74
+	const SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER ; 75
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1 ; 76
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2 ; 77
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3 ; 78
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1 ; 79
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2 ; 7a
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3 ; 7b
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4 ; 7c
+	const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5 ; 7d
+	const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY ; 7e
+	const SPRITE_ANIM_FRAME_IDX_CELEBI_1 ; 7f
+	const SPRITE_ANIM_FRAME_IDX_CELEBI_2 ; 80
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1 ; 81
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2 ; 82
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3 ; 83
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4 ; 84
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5 ; 85
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6 ; 86
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7 ; 87
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8 ; 88
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9 ; 89
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10 ; 8A
+	const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11 ; 8B
--- a/constants/tileset_constants.asm
+++ b/constants/tileset_constants.asm
@@ -1,9 +1,3 @@
-; collision values (see tilesets/collision.asm)
-LANDTILE  EQU $0
-WATERTILE EQU $1
-WALLTILE  EQU $f
-TALK      EQU $10
-
 ; Tilesets indexes (see tilesets/tileset_headers.asm)
 const_value SET 1
 	const TILESET_JOHTO_1              ; 01
--- /dev/null
+++ b/data/collision_permissions.asm
@@ -1,0 +1,262 @@
+NONTALKABLE EQUS "db"
+TALKABLE    EQUS "db TALK +"
+
+TileCollisionTable:: ; 4ce1f
+; entries correspond to COLL_* constants
+	NONTALKABLE  LANDTILE ; COLL_FLOOR
+	NONTALKABLE  LANDTILE ; COLL_01
+	NONTALKABLE  LANDTILE ; 02
+	NONTALKABLE  LANDTILE ; COLL_03
+	NONTALKABLE  LANDTILE ; COLL_04
+	NONTALKABLE  LANDTILE ; 05
+	NONTALKABLE  LANDTILE ; 06
+	NONTALKABLE  WALLTILE ; COLL_WALL
+	NONTALKABLE  LANDTILE ; COLL_CUT_08
+	NONTALKABLE  LANDTILE ; 09
+	NONTALKABLE  LANDTILE ; 0a
+	NONTALKABLE  LANDTILE ; 0b
+	NONTALKABLE  LANDTILE ; 0c
+	NONTALKABLE  LANDTILE ; 0d
+	NONTALKABLE  LANDTILE ; 0e
+	NONTALKABLE  WALLTILE ; 0f
+	NONTALKABLE  LANDTILE ; COLL_TALL_GRASS_10
+	NONTALKABLE  LANDTILE ; 11
+	   TALKABLE  WALLTILE ; COLL_CUT_TREE
+	NONTALKABLE  LANDTILE ; 13
+	NONTALKABLE  LANDTILE ; COLL_LONG_GRASS
+	   TALKABLE  WALLTILE ; COLL_HEADBUTT_TREE
+	NONTALKABLE  LANDTILE ; 16
+	NONTALKABLE  LANDTILE ; 17
+	NONTALKABLE  LANDTILE ; COLL_TALL_GRASS
+	NONTALKABLE  LANDTILE ; 19
+	   TALKABLE  WALLTILE ; COLL_CUT_TREE_1A
+	NONTALKABLE  LANDTILE ; 1b
+	NONTALKABLE  LANDTILE ; COLL_LONG_GRASS_1C
+	   TALKABLE  WALLTILE ; COLL_HEADBUTT_TREE_1D
+	NONTALKABLE  LANDTILE ; 1e
+	NONTALKABLE  LANDTILE ; 1f
+	NONTALKABLE WATERTILE ; 20
+	NONTALKABLE WATERTILE ; COLL_WATER_21
+	   TALKABLE WATERTILE ; 22
+	NONTALKABLE  LANDTILE ; COLL_ICE
+	   TALKABLE WATERTILE ; COLL_WHIRLPOOL
+	NONTALKABLE WATERTILE ; 25
+	NONTALKABLE WATERTILE ; 26
+	NONTALKABLE  WALLTILE ; COLL_BUOY
+	NONTALKABLE WATERTILE ; COLL_CUT_28
+	NONTALKABLE WATERTILE ; COLL_WATER
+	   TALKABLE WATERTILE ; 2a
+	NONTALKABLE  LANDTILE ; COLL_ICE_2B
+	   TALKABLE WATERTILE ; COLL_WHIRLPOOL_2C
+	NONTALKABLE WATERTILE ; 2d
+	NONTALKABLE WATERTILE ; 2e
+	NONTALKABLE  WALLTILE ; 2f
+	NONTALKABLE WATERTILE ; COLL_WATERFALL_RIGHT
+	NONTALKABLE WATERTILE ; COLL_WATERFALL_LEFT
+	NONTALKABLE WATERTILE ; COLL_WATERFALL_UP
+	NONTALKABLE WATERTILE ; COLL_WATERFALL
+	NONTALKABLE WATERTILE ; 34
+	NONTALKABLE WATERTILE ; 35
+	NONTALKABLE WATERTILE ; 36
+	NONTALKABLE WATERTILE ; 37
+	NONTALKABLE WATERTILE ; COLL_CURRENT_RIGHT
+	NONTALKABLE WATERTILE ; COLL_CURRENT_LEFT
+	NONTALKABLE WATERTILE ; COLL_CURRENT_UP
+	NONTALKABLE WATERTILE ; COLL_CURRENT_DOWN
+	NONTALKABLE WATERTILE ; 3c
+	NONTALKABLE WATERTILE ; 3d
+	NONTALKABLE WATERTILE ; 3e
+	NONTALKABLE WATERTILE ; 3f
+	NONTALKABLE  LANDTILE ; COLL_BRAKE
+	NONTALKABLE  LANDTILE ; COLL_WALK_RIGHT
+	NONTALKABLE  LANDTILE ; COLL_WALK_LEFT
+	NONTALKABLE  LANDTILE ; COLL_WALK_UP
+	NONTALKABLE  LANDTILE ; COLL_WALK_DOWN
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_45
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_46
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_47
+	NONTALKABLE  LANDTILE ; COLL_GRASS_48
+	NONTALKABLE  LANDTILE ; COLL_GRASS_49
+	NONTALKABLE  LANDTILE ; COLL_GRASS_4A
+	NONTALKABLE  LANDTILE ; COLL_GRASS_4B
+	NONTALKABLE  LANDTILE ; COLL_GRASS_4C
+	NONTALKABLE  LANDTILE ; 4d
+	NONTALKABLE  LANDTILE ; 4e
+	NONTALKABLE  LANDTILE ; 4f
+	NONTALKABLE  LANDTILE ; COLL_WALK_RIGHT_ALT
+	NONTALKABLE  LANDTILE ; COLL_WALK_LEFT_ALT
+	NONTALKABLE  LANDTILE ; COLL_WALK_UP_ALT
+	NONTALKABLE  LANDTILE ; COLL_WALK_DOWN_ALT
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_ALT
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_55
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_56
+	NONTALKABLE  LANDTILE ; COLL_BRAKE_57
+	NONTALKABLE  LANDTILE ; 58
+	NONTALKABLE  LANDTILE ; 59
+	NONTALKABLE  LANDTILE ; 5a
+	NONTALKABLE  LANDTILE ; COLL_5B
+	NONTALKABLE  LANDTILE ; 5c
+	NONTALKABLE  LANDTILE ; 5d
+	NONTALKABLE  LANDTILE ; 5e
+	NONTALKABLE  LANDTILE ; 5f
+	NONTALKABLE  LANDTILE ; COLL_PIT
+	NONTALKABLE  LANDTILE ; COLL_VIRTUAL_BOY
+	NONTALKABLE  WALLTILE ; 62
+	NONTALKABLE  LANDTILE ; 63
+	NONTALKABLE  LANDTILE ; COLL_64
+	NONTALKABLE  LANDTILE ; COLL_65
+	NONTALKABLE  LANDTILE ; 66
+	NONTALKABLE  LANDTILE ; 67
+	NONTALKABLE  LANDTILE ; COLL_PIT_68
+	NONTALKABLE  LANDTILE ; 69
+	NONTALKABLE  WALLTILE ; 6a
+	NONTALKABLE  LANDTILE ; 6b
+	NONTALKABLE  LANDTILE ; 6c
+	NONTALKABLE  LANDTILE ; 6d
+	NONTALKABLE  LANDTILE ; 6e
+	NONTALKABLE  LANDTILE ; 6f
+	NONTALKABLE  LANDTILE ; COLL_WARP_CARPET_DOWN
+	NONTALKABLE  LANDTILE ; COLL_DOOR
+	NONTALKABLE  LANDTILE ; COLL_LADDER
+	NONTALKABLE  LANDTILE ; COLL_STAIRCASE_73
+	NONTALKABLE  LANDTILE ; COLL_CAVE_74
+	NONTALKABLE  LANDTILE ; COLL_DOOR_75
+	NONTALKABLE  LANDTILE ; COLL_WARP_CARPET_LEFT
+	NONTALKABLE  LANDTILE ; COLL_WARP_77
+	NONTALKABLE  LANDTILE ; COLL_WARP_CARPET_UP
+	NONTALKABLE  LANDTILE ; COLL_DOOR_79
+	NONTALKABLE  LANDTILE ; COLL_STAIRCASE
+	NONTALKABLE  LANDTILE ; COLL_CAVE
+	NONTALKABLE  LANDTILE ; COLL_WARP_PANEL
+	NONTALKABLE  LANDTILE ; COLL_DOOR_7D
+	NONTALKABLE  LANDTILE ; COLL_WARP_CARPET_RIGHT
+	NONTALKABLE  LANDTILE ; COLL_WARP_7F
+	NONTALKABLE  WALLTILE ; 80
+	NONTALKABLE  WALLTILE ; 81
+	NONTALKABLE  WALLTILE ; 82
+	NONTALKABLE  WALLTILE ; 83
+	NONTALKABLE  WALLTILE ; 84
+	NONTALKABLE  LANDTILE ; 85
+	NONTALKABLE  LANDTILE ; 86
+	NONTALKABLE  LANDTILE ; 87
+	NONTALKABLE  WALLTILE ; 88
+	NONTALKABLE  WALLTILE ; 89
+	NONTALKABLE  WALLTILE ; 8a
+	NONTALKABLE  WALLTILE ; 8b
+	NONTALKABLE  WALLTILE ; 8c
+	NONTALKABLE  LANDTILE ; 8d
+	NONTALKABLE  LANDTILE ; 8e
+	NONTALKABLE  LANDTILE ; 8f
+	NONTALKABLE  WALLTILE ; COLL_COUNTER
+	NONTALKABLE  WALLTILE ; COLL_BOOKSHELF
+	NONTALKABLE  WALLTILE ; 92
+	NONTALKABLE  WALLTILE ; COLL_PC
+	NONTALKABLE  WALLTILE ; COLL_RADIO
+	NONTALKABLE  WALLTILE ; COLL_TOWN_MAP
+	NONTALKABLE  WALLTILE ; COLL_MART_SHELF
+	NONTALKABLE  WALLTILE ; COLL_TV
+	NONTALKABLE  WALLTILE ; COLL_COUNTER_98
+	NONTALKABLE  WALLTILE ; 99
+	NONTALKABLE  WALLTILE ; 9a
+	NONTALKABLE  WALLTILE ; 9b
+	NONTALKABLE  WALLTILE ; COLL_9C
+	NONTALKABLE  WALLTILE ; COLL_WINDOW
+	NONTALKABLE  WALLTILE ; 9e
+	NONTALKABLE  WALLTILE ; COLL_INCENSE_BURNER
+	NONTALKABLE  LANDTILE ; COLL_HOP_RIGHT
+	NONTALKABLE  LANDTILE ; COLL_HOP_LEFT
+	NONTALKABLE  LANDTILE ; COLL_HOP_UP
+	NONTALKABLE  LANDTILE ; COLL_HOP_DOWN
+	NONTALKABLE  LANDTILE ; COLL_HOP_DOWN_RIGHT
+	NONTALKABLE  LANDTILE ; COLL_HOP_DOWN_LEFT
+	NONTALKABLE  LANDTILE ; COLL_HOP_UP_RIGHT
+	NONTALKABLE  LANDTILE ; COLL_HOP_UP_LEFT
+	NONTALKABLE  LANDTILE ; a8
+	NONTALKABLE  LANDTILE ; a9
+	NONTALKABLE  LANDTILE ; aa
+	NONTALKABLE  LANDTILE ; ab
+	NONTALKABLE  LANDTILE ; ac
+	NONTALKABLE  LANDTILE ; ad
+	NONTALKABLE  LANDTILE ; ae
+	NONTALKABLE  LANDTILE ; af
+	NONTALKABLE  LANDTILE ; COLL_RIGHT_WALL
+	NONTALKABLE  LANDTILE ; COLL_LEFT_WALL
+	NONTALKABLE  LANDTILE ; COLL_UP_WALL
+	NONTALKABLE  LANDTILE ; COLL_DOWN_WALL
+	NONTALKABLE  LANDTILE ; b4
+	NONTALKABLE  LANDTILE ; b5
+	NONTALKABLE  LANDTILE ; b6
+	NONTALKABLE  LANDTILE ; b7
+	NONTALKABLE  LANDTILE ; b8
+	NONTALKABLE  LANDTILE ; b9
+	NONTALKABLE  LANDTILE ; ba
+	NONTALKABLE  LANDTILE ; bb
+	NONTALKABLE  LANDTILE ; bc
+	NONTALKABLE  LANDTILE ; bd
+	NONTALKABLE  LANDTILE ; be
+	NONTALKABLE  LANDTILE ; bf
+	NONTALKABLE WATERTILE ; c0
+	NONTALKABLE WATERTILE ; c1
+	NONTALKABLE WATERTILE ; c2
+	NONTALKABLE WATERTILE ; c3
+	NONTALKABLE WATERTILE ; c4
+	NONTALKABLE WATERTILE ; c5
+	NONTALKABLE WATERTILE ; c6
+	NONTALKABLE WATERTILE ; c7
+	NONTALKABLE WATERTILE ; c8
+	NONTALKABLE WATERTILE ; c9
+	NONTALKABLE WATERTILE ; ca
+	NONTALKABLE WATERTILE ; cb
+	NONTALKABLE WATERTILE ; cc
+	NONTALKABLE WATERTILE ; cd
+	NONTALKABLE WATERTILE ; ce
+	NONTALKABLE WATERTILE ; cf
+	NONTALKABLE  LANDTILE ; d0
+	NONTALKABLE  LANDTILE ; d1
+	NONTALKABLE  LANDTILE ; d2
+	NONTALKABLE  LANDTILE ; d3
+	NONTALKABLE  LANDTILE ; d4
+	NONTALKABLE  LANDTILE ; d5
+	NONTALKABLE  LANDTILE ; d6
+	NONTALKABLE  LANDTILE ; d7
+	NONTALKABLE  LANDTILE ; d8
+	NONTALKABLE  LANDTILE ; d9
+	NONTALKABLE  LANDTILE ; da
+	NONTALKABLE  LANDTILE ; db
+	NONTALKABLE  LANDTILE ; dc
+	NONTALKABLE  LANDTILE ; dd
+	NONTALKABLE  LANDTILE ; de
+	NONTALKABLE  LANDTILE ; df
+	NONTALKABLE  LANDTILE ; e0
+	NONTALKABLE  LANDTILE ; e1
+	NONTALKABLE  LANDTILE ; e2
+	NONTALKABLE  LANDTILE ; e3
+	NONTALKABLE  LANDTILE ; e4
+	NONTALKABLE  LANDTILE ; e5
+	NONTALKABLE  LANDTILE ; e6
+	NONTALKABLE  LANDTILE ; e7
+	NONTALKABLE  LANDTILE ; e8
+	NONTALKABLE  LANDTILE ; e9
+	NONTALKABLE  LANDTILE ; ea
+	NONTALKABLE  LANDTILE ; eb
+	NONTALKABLE  LANDTILE ; ec
+	NONTALKABLE  LANDTILE ; ed
+	NONTALKABLE  LANDTILE ; ee
+	NONTALKABLE  LANDTILE ; ef
+	NONTALKABLE  LANDTILE ; f0
+	NONTALKABLE  LANDTILE ; f1
+	NONTALKABLE  LANDTILE ; f2
+	NONTALKABLE  LANDTILE ; f3
+	NONTALKABLE  LANDTILE ; f4
+	NONTALKABLE  LANDTILE ; f5
+	NONTALKABLE  LANDTILE ; f6
+	NONTALKABLE  LANDTILE ; f7
+	NONTALKABLE  LANDTILE ; f8
+	NONTALKABLE  LANDTILE ; f9
+	NONTALKABLE  LANDTILE ; fa
+	NONTALKABLE  LANDTILE ; fb
+	NONTALKABLE  LANDTILE ; fc
+	NONTALKABLE  LANDTILE ; fd
+	NONTALKABLE  LANDTILE ; fe
+	NONTALKABLE  WALLTILE ; COLL_FF
+; 4cf1f
--- /dev/null
+++ b/data/collision_stdscripts.asm
@@ -1,0 +1,13 @@
+; stdscripts associated with tile collisions
+
+TileCollisionStdScripts:
+	; collision type,        stdscript
+	dbw COLL_BOOKSHELF,      magazinebookshelf
+	dbw COLL_PC,             pcscript
+	dbw COLL_RADIO,          radio1
+	dbw COLL_TOWN_MAP,       townmap
+	dbw COLL_MART_SHELF,     merchandiseshelf
+	dbw COLL_TV,             tv
+	dbw COLL_WINDOW,         window
+	dbw COLL_INCENSE_BURNER, incenseburner
+	db   -1 ; end
--- a/data/outdoor_sprites.asm
+++ b/data/outdoor_sprites.asm
@@ -2,36 +2,36 @@
 ; Maps with permission ROUTE or TOWN can only use these sprites.
 
 OutdoorSprites: ; 144b8
-	dw Group1Sprites
-	dw Group2Sprites
-	dw Group3Sprites
-	dw Group4Sprites
-	dw Group5Sprites
-	dw Group6Sprites
-	dw Group7Sprites
-	dw Group8Sprites
-	dw Group9Sprites
-	dw Group10Sprites
-	dw Group11Sprites
-	dw Group12Sprites
-	dw Group13Sprites
-	dw Group14Sprites
-	dw Group15Sprites
-	dw Group16Sprites
-	dw Group17Sprites
-	dw Group18Sprites
-	dw Group19Sprites
-	dw Group20Sprites
-	dw Group21Sprites
-	dw Group22Sprites
-	dw Group23Sprites
-	dw Group24Sprites
-	dw Group25Sprites
-	dw Group26Sprites
+	dw OlivineGroupSprites
+	dw MahoganyGroupSprites
+	dw DungeonsGroupSprites
+	dw EcruteakGroupSprites
+	dw BlackthornGroupSprites
+	dw CinnabarGroupSprites
+	dw CeruleanGroupSprites
+	dw AzaleaGroupSprites
+	dw LakeOfRageGroupSprites
+	dw VioletGroupSprites
+	dw GoldenrodGroupSprites
+	dw VermilionGroupSprites
+	dw PalletGroupSprites
+	dw PewterGroupSprites
+	dw FastShipGroupSprites
+	dw IndigoGroupSprites
+	dw FuchsiaGroupSprites
+	dw LavenderGroupSprites
+	dw SilverGroupSprites
+	dw CableClubGroupSprites
+	dw CeladonGroupSprites
+	dw CianwoodGroupSprites
+	dw ViridianGroupSprites
+	dw NewBarkGroupSprites
+	dw SaffronGroupSprites
+	dw CherrygroveGroupSprites
 ; 144ec
 
 
-Group13Sprites: ; 144ec
+PalletGroupSprites: ; 144ec
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -57,7 +57,7 @@
 	db SPRITE_FRUIT_TREE
 ; 14503
 
-Group23Sprites: ; 14503
+ViridianGroupSprites: ; 14503
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -83,7 +83,7 @@
 	db SPRITE_FRUIT_TREE
 ; 1451a
 
-Group14Sprites: ; 1451a
+PewterGroupSprites: ; 1451a
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -109,7 +109,7 @@
 	db SPRITE_FRUIT_TREE
 ; 14531
 
-Group6Sprites: ; 14531
+CinnabarGroupSprites: ; 14531
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -135,7 +135,7 @@
 	db SPRITE_FRUIT_TREE
 ; 14548
 
-Group7Sprites: ; 14548
+CeruleanGroupSprites: ; 14548
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -161,7 +161,7 @@
 	db SPRITE_SLOWPOKE
 ; 1455f
 
-Group25Sprites: ; 1455f
+SaffronGroupSprites: ; 1455f
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -187,7 +187,7 @@
 	db SPRITE_SLOWPOKE
 ; 14576
 
-Group21Sprites: ; 14576
+CeladonGroupSprites: ; 14576
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -213,7 +213,7 @@
 	db SPRITE_FRUIT_TREE
 ; 1458d
 
-Group18Sprites: ; 1458d
+LavenderGroupSprites: ; 1458d
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -239,7 +239,7 @@
 	db SPRITE_FRUIT_TREE
 ; 145a4
 
-Group12Sprites: ; 145a4
+VermilionGroupSprites: ; 145a4
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -265,7 +265,7 @@
 	db SPRITE_FRUIT_TREE
 ; 145bb
 
-Group17Sprites: ; 145bb
+FuchsiaGroupSprites: ; 145bb
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -291,7 +291,7 @@
 	db SPRITE_FRUIT_TREE
 ; 145d2
 
-Group16Sprites: ; 145d2
+IndigoGroupSprites: ; 145d2
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -317,7 +317,7 @@
 	db SPRITE_BOULDER
 ; 145e9
 
-Group24Sprites: ; 145e9
+NewBarkGroupSprites: ; 145e9
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -343,7 +343,7 @@
 	db SPRITE_FRUIT_TREE
 ; 14600
 
-Group26Sprites: ; 14600
+CherrygroveGroupSprites: ; 14600
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -369,7 +369,7 @@
 	db SPRITE_FRUIT_TREE
 ; 14617
 
-Group19Sprites: ; 14617
+SilverGroupSprites: ; 14617
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -395,7 +395,7 @@
 	db SPRITE_FRUIT_TREE
 ; 1462e
 
-Group10Sprites: ; 1462e
+VioletGroupSprites: ; 1462e
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -421,7 +421,7 @@
 	db SPRITE_FRUIT_TREE
 ; 14645
 
-Group4Sprites: ; 14645
+EcruteakGroupSprites: ; 14645
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -447,7 +447,7 @@
 	db SPRITE_FRUIT_TREE
 ; 1465c
 
-Group8Sprites: ; 1465c
+AzaleaGroupSprites: ; 1465c
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -473,7 +473,7 @@
 	db SPRITE_SLOWPOKE
 ; 14673
 
-Group11Sprites: ; 14673
+GoldenrodGroupSprites: ; 14673
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_POKE_BALL
@@ -499,7 +499,7 @@
 	db SPRITE_SLOWPOKE
 ; 1468a
 
-Group22Sprites: ; 1468a
+CianwoodGroupSprites: ; 1468a
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -525,7 +525,7 @@
 	db SPRITE_ROCK
 ; 146a1
 
-Group1Sprites: ; 146a1
+OlivineGroupSprites: ; 146a1
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -551,7 +551,7 @@
 	db SPRITE_ROCK
 ; 146b8
 
-Group9Sprites: ; 146b8
+LakeOfRageGroupSprites: ; 146b8
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -577,7 +577,7 @@
 	db SPRITE_POKE_BALL
 ; 146cf
 
-Group2Sprites: ; 146cf
+MahoganyGroupSprites: ; 146cf
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -603,7 +603,7 @@
 	db SPRITE_POKE_BALL
 ; 146e6
 
-Group5Sprites: ; 146e6
+BlackthornGroupSprites: ; 146e6
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -629,7 +629,7 @@
 	db SPRITE_POKE_BALL
 ; 146fd
 
-Group3Sprites: ; 146fd
+DungeonsGroupSprites: ; 146fd
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -655,7 +655,7 @@
 	db SPRITE_BOULDER
 ; 14714
 
-Group15Sprites: ; 14714
+FastShipGroupSprites: ; 14714
 	db SPRITE_SUICUNE
 	db SPRITE_SILVER_TROPHY
 	db SPRITE_FAMICOM
@@ -681,7 +681,7 @@
 	db SPRITE_ROCK
 ; 1472b
 
-Group20Sprites: ; 1472b
+CableClubGroupSprites: ; 1472b
 	db SPRITE_OAK
 	db SPRITE_FISHER
 	db SPRITE_TEACHER
--- a/data/sprite_anim_frames.asm
+++ b/data/sprite_anim_frames.asm
@@ -2,12 +2,12 @@
 ; entries correspond to SPRITE_ANIM_FRAMESET_* constants
 	dw .Frameset_00
 	dw .Frameset_PartyMon
-	dw .Frameset_02
-	dw .Frameset_03
-	dw .Frameset_04
-	dw .Frameset_05
-	dw .Frameset_06
-	dw .Frameset_07
+	dw .Frameset_PartyMonWithMail
+	dw .Frameset_PartyMonWithItem
+	dw .Frameset_PartyMonFast
+	dw .Frameset_PartyMonWithMailFast
+	dw .Frameset_PartyMonWithItemFast
+	dw .Frameset_GSTitleTrail
 	dw .Frameset_TextEntryCursor
 	dw .Frameset_09
 	dw .Frameset_GameFreakLogo
@@ -47,12 +47,12 @@
 	dw .Frameset_2c
 	dw .Frameset_BlueWalk
 	dw .Frameset_MagnetTrainBlue
-	dw .Frameset_2f
-	dw .Frameset_30
-	dw .Frameset_31
-	dw .Frameset_32
-	dw .Frameset_33
-	dw .Frameset_34
+	dw .Frameset_MobileTradeSentBall
+	dw .Frameset_MobileTradeOTBall
+	dw .Frameset_ForMobile22
+	dw .Frameset_ForMobile23
+	dw .Frameset_ForMobile24
+	dw .Frameset_ForMobile25
 	dw .Frameset_IntroSuicune
 	dw .Frameset_IntroSuicune2
 	dw .Frameset_IntroPichu
@@ -69,150 +69,150 @@
 ; 8d76a
 
 .Frameset_00:
-	frame SPRITE_ANIM_FRAME_IDX_00, 32
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 32
 	endanim
 
 .Frameset_PartyMon:
-	frame SPRITE_ANIM_FRAME_IDX_00,  8
-	frame SPRITE_ANIM_FRAME_IDX_01,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  8
 	dorestart
 
-.Frameset_02:
-	frame SPRITE_ANIM_FRAME_IDX_3D,  8
-	frame SPRITE_ANIM_FRAME_IDX_3E,  8
+.Frameset_PartyMonWithMail:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2,  8
 	dorestart
 
-.Frameset_03:
-	frame SPRITE_ANIM_FRAME_IDX_3F,  8
-	frame SPRITE_ANIM_FRAME_IDX_40,  8
+.Frameset_PartyMonWithItem:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2,  8
 	dorestart
 
-.Frameset_04:
-	frame SPRITE_ANIM_FRAME_IDX_00,  4
-	frame SPRITE_ANIM_FRAME_IDX_01,  4
+.Frameset_PartyMonFast:
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  4
 	dorestart
 
-.Frameset_05:
-	frame SPRITE_ANIM_FRAME_IDX_3D,  4
-	frame SPRITE_ANIM_FRAME_IDX_3E,  4
+.Frameset_PartyMonWithMailFast:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2,  4
 	dorestart
 
-.Frameset_06:
-	frame SPRITE_ANIM_FRAME_IDX_3F,  4
-	frame SPRITE_ANIM_FRAME_IDX_40,  4
+.Frameset_PartyMonWithItemFast:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2,  4
 	dorestart
 
 .Frameset_RedWalk:
-	frame SPRITE_ANIM_FRAME_IDX_00,  8
-	frame SPRITE_ANIM_FRAME_IDX_01,  8
-	frame SPRITE_ANIM_FRAME_IDX_00,  8
-	frame SPRITE_ANIM_FRAME_IDX_01,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  8, OAM_X_FLIP
 	dorestart
 
 .Frameset_BlueWalk:
-	frame SPRITE_ANIM_FRAME_IDX_63,  8
-	frame SPRITE_ANIM_FRAME_IDX_64,  8
-	frame SPRITE_ANIM_FRAME_IDX_63,  8
-	frame SPRITE_ANIM_FRAME_IDX_64,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2,  8
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2,  8, OAM_X_FLIP
 	dorestart
 
 .Frameset_MagnetTrainBlue:
-	frame SPRITE_ANIM_FRAME_IDX_65,  8
-	frame SPRITE_ANIM_FRAME_IDX_66,  8
-	frame SPRITE_ANIM_FRAME_IDX_65,  8
-	frame SPRITE_ANIM_FRAME_IDX_66,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2,  8
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2,  8, OAM_X_FLIP
 	dorestart
 
-.Frameset_07:
-	frame SPRITE_ANIM_FRAME_IDX_1E,  1
-	frame SPRITE_ANIM_FRAME_IDX_1F,  1
+.Frameset_GSTitleTrail:
+	frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1,  1
+	frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2,  1
 	dorestart
 
 .Frameset_TextEntryCursor:
-	frame SPRITE_ANIM_FRAME_IDX_20,  1
+	frame SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR,  1
 	dorepeat  1
 	dorestart
 
 .Frameset_09:
-	frame SPRITE_ANIM_FRAME_IDX_21,  1
+	frame SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09,  1
 	dorepeat  1
 	dorestart
 
 .Frameset_GameFreakLogo:
-	frame SPRITE_ANIM_FRAME_IDX_81, 12
-	frame SPRITE_ANIM_FRAME_IDX_82,  1
-	frame SPRITE_ANIM_FRAME_IDX_83,  1
-	frame SPRITE_ANIM_FRAME_IDX_82,  4
-	frame SPRITE_ANIM_FRAME_IDX_81, 12
-	frame SPRITE_ANIM_FRAME_IDX_82, 12
-	frame SPRITE_ANIM_FRAME_IDX_83,  4
-	frame SPRITE_ANIM_FRAME_IDX_84, 32
-	frame SPRITE_ANIM_FRAME_IDX_85,  3
-	frame SPRITE_ANIM_FRAME_IDX_86,  3
-	frame SPRITE_ANIM_FRAME_IDX_87,  4
-	frame SPRITE_ANIM_FRAME_IDX_88,  4
-	frame SPRITE_ANIM_FRAME_IDX_89,  4
-	frame SPRITE_ANIM_FRAME_IDX_8A, 10
-	frame SPRITE_ANIM_FRAME_IDX_8B,  7
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1,  12
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2,   1
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3,   1
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2,   4
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1,  12
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2,  12
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3,   4
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4,  32
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5,   3
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6,   3
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7,   4
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8,   4
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9,   4
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10, 10
+	frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11,  7
 	endanim
 
 .Frameset_GSIntroStar:
-	frame SPRITE_ANIM_FRAME_IDX_23,  3
-	frame SPRITE_ANIM_FRAME_IDX_23,  3, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR,  3
+	frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR,  3, OAM_Y_FLIP
 	dorestart
 
 .Frameset_GSIntroSparkle:
-	frame SPRITE_ANIM_FRAME_IDX_24,  2
-	frame SPRITE_ANIM_FRAME_IDX_25,  2
-	frame SPRITE_ANIM_FRAME_IDX_26,  2
-	frame SPRITE_ANIM_FRAME_IDX_25,  2
+	frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1,  2
+	frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2,  2
+	frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3,  2
+	frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2,  2
 	dorestart
 
 .Frameset_SlotsGolem:
-	frame SPRITE_ANIM_FRAME_IDX_27,  7
-	frame SPRITE_ANIM_FRAME_IDX_28,  7
-	frame SPRITE_ANIM_FRAME_IDX_27,  7, OAM_Y_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_28,  7, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1,  7, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2,  7, OAM_X_FLIP
 	dorestart
 
 .Frameset_SlotsChansey:
-	frame SPRITE_ANIM_FRAME_IDX_29,  7
-	frame SPRITE_ANIM_FRAME_IDX_2A,  7
-	frame SPRITE_ANIM_FRAME_IDX_29,  7
-	frame SPRITE_ANIM_FRAME_IDX_2B,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3,  7
 	dorestart
 
 .Frameset_SlotsChansey2:
-	frame SPRITE_ANIM_FRAME_IDX_29,  7
-	frame SPRITE_ANIM_FRAME_IDX_2C,  7
-	frame SPRITE_ANIM_FRAME_IDX_2D,  7
-	frame SPRITE_ANIM_FRAME_IDX_2C,  7
-	frame SPRITE_ANIM_FRAME_IDX_29,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4,  7
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1,  7
 	endanim
 
 .Frameset_SlotsEgg:
-	frame SPRITE_ANIM_FRAME_IDX_2E, 20
+	frame SPRITE_ANIM_FRAME_IDX_SLOTS_EGG, 20
 	endanim
 
 .Frameset_StillCursor:
-	frame SPRITE_ANIM_FRAME_IDX_2F, 32
+	frame SPRITE_ANIM_FRAME_IDX_STILL_CURSOR, 32
 	endanim
 
 .Frameset_TradePokeBall:
-	frame SPRITE_ANIM_FRAME_IDX_30, 32
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 32
 	endanim
 
 .Frameset_TradePokeBall0:
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
 	dorestart
 
 .Frameset_TradePoof:
-	frame SPRITE_ANIM_FRAME_IDX_32,  4
-	frame SPRITE_ANIM_FRAME_IDX_33,  4
-	frame SPRITE_ANIM_FRAME_IDX_34,  4
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2,  4
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3,  4
 	delanim
 
 .Frameset_TradeTubeBulge:
@@ -221,29 +221,29 @@
 	dorestart
 
 .Frameset_TrademonIcon:
-	frame SPRITE_ANIM_FRAME_IDX_37,  7
-	frame SPRITE_ANIM_FRAME_IDX_38,  7
+	frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1,  7
+	frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2,  7
 	dorestart
 
 .Frameset_TrademonBubble:
-	frame SPRITE_ANIM_FRAME_IDX_39, 32
+	frame SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE, 32
 	endanim
 
 .Frameset_EvolutionBallOfLight:
-	frame SPRITE_ANIM_FRAME_IDX_3B,  2
-	frame SPRITE_ANIM_FRAME_IDX_3A,  2
-	frame SPRITE_ANIM_FRAME_IDX_3B,  2
+	frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2,  2
+	frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1,  2
+	frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2,  2
 	endanim
 
 .Frameset_RadioTuningKnob:
-	frame SPRITE_ANIM_FRAME_IDX_3C, 32
+	frame SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB, 32
 	endanim
 
 .Frameset_MagnetTrainRed:
-	frame SPRITE_ANIM_FRAME_IDX_41,  8
-	frame SPRITE_ANIM_FRAME_IDX_42,  8
-	frame SPRITE_ANIM_FRAME_IDX_41,  8
-	frame SPRITE_ANIM_FRAME_IDX_42,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2,  8
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2,  8, OAM_X_FLIP
 	dorestart
 
 ; XXX
@@ -294,20 +294,20 @@
 	endanim
 
 .Frameset_Leaf:
-	frame SPRITE_ANIM_FRAME_IDX_4F, 32
+	frame SPRITE_ANIM_FRAME_IDX_LEAF, 32
 	endanim
 
 .Frameset_CutTree:
-	frame SPRITE_ANIM_FRAME_IDX_50,  2
-	frame SPRITE_ANIM_FRAME_IDX_51, 16
+	frame SPRITE_ANIM_FRAME_IDX_TREE_1,      2
+	frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_2, 16
 	dorepeat  1
-	frame SPRITE_ANIM_FRAME_IDX_52,  1
+	frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_3,  1
 	dorepeat  1
-	frame SPRITE_ANIM_FRAME_IDX_53,  1
+	frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_4,  1
 	delanim
 
 .Frameset_EggCrack:
-	frame SPRITE_ANIM_FRAME_IDX_54, 32
+	frame SPRITE_ANIM_FRAME_IDX_EGG_CRACK, 32
 	endanim
 
 .Frameset_EggHatch:
@@ -336,10 +336,10 @@
 	dorestart
 
 .Frameset_HeadbuttTree:
-	frame SPRITE_ANIM_FRAME_IDX_50,  2
-	frame SPRITE_ANIM_FRAME_IDX_5B,  2
-	frame SPRITE_ANIM_FRAME_IDX_50,  2
-	frame SPRITE_ANIM_FRAME_IDX_5B,  2, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TREE_1,           2
+	frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2,  2
+	frame SPRITE_ANIM_FRAME_IDX_TREE_1,           2
+	frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2,  2, OAM_X_FLIP
 	dorestart
 
 .Frameset_26:
@@ -370,117 +370,117 @@
 	frame SPRITE_ANIM_FRAME_IDX_62,  2
 	endanim
 
-.Frameset_2f:
-	frame SPRITE_ANIM_FRAME_IDX_32,  3
-	frame SPRITE_ANIM_FRAME_IDX_33,  3
-	frame SPRITE_ANIM_FRAME_IDX_34,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
+.Frameset_MobileTradeSentBall:
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
 	endanim
 
-.Frameset_30:
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3
-	frame SPRITE_ANIM_FRAME_IDX_30,  3
-	frame SPRITE_ANIM_FRAME_IDX_31,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_32,  3
-	frame SPRITE_ANIM_FRAME_IDX_33,  3
-	frame SPRITE_ANIM_FRAME_IDX_34,  3
+.Frameset_MobileTradeOTBall:
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3,  3
 	delanim
 
-.Frameset_31:
-	frame SPRITE_ANIM_FRAME_IDX_67,  3
-	frame SPRITE_ANIM_FRAME_IDX_68,  3
+.Frameset_ForMobile22:
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2,  3
 	dorestart
 
-.Frameset_32:
-	frame SPRITE_ANIM_FRAME_IDX_6C,  3
+.Frameset_ForMobile23:
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23,  3
 	endanim
 
-.Frameset_33:
-	frame SPRITE_ANIM_FRAME_IDX_6D,  3
+.Frameset_ForMobile24:
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24,  3
 	endanim
 
-.Frameset_34:
-	frame SPRITE_ANIM_FRAME_IDX_69,  2
-	frame SPRITE_ANIM_FRAME_IDX_6A,  2
-	frame SPRITE_ANIM_FRAME_IDX_6B,  2
+.Frameset_ForMobile25:
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1,  2
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2,  2
+	frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3,  2
 	delanim
 
 .Frameset_IntroSuicune:
-	frame SPRITE_ANIM_FRAME_IDX_6E,  3
-	frame SPRITE_ANIM_FRAME_IDX_6F,  3
-	frame SPRITE_ANIM_FRAME_IDX_70,  3
-	frame SPRITE_ANIM_FRAME_IDX_71,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4,  3
 	dorestart
 
 .Frameset_IntroSuicune2:
-	frame SPRITE_ANIM_FRAME_IDX_71,  3
-	frame SPRITE_ANIM_FRAME_IDX_6E,  7
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1,  7
 	endanim
 
 .Frameset_IntroPichu:
-	frame SPRITE_ANIM_FRAME_IDX_72, 32
-	frame SPRITE_ANIM_FRAME_IDX_73,  7
-	frame SPRITE_ANIM_FRAME_IDX_74,  7
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1, 32
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2,  7
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3,  7
 	endanim
 
 .Frameset_IntroWooper:
-	frame SPRITE_ANIM_FRAME_IDX_75,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER,  3
 	endanim
 
 .Frameset_IntroUnown1:
-	frame SPRITE_ANIM_FRAME_IDX_76,  3
-	frame SPRITE_ANIM_FRAME_IDX_77,  3
-	frame SPRITE_ANIM_FRAME_IDX_78,  7
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3,  7
 	delanim
 
 .Frameset_IntroUnown2:
-	frame SPRITE_ANIM_FRAME_IDX_76,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_77,  3, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_78,  7, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2,  3, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3,  7, OAM_X_FLIP
 	delanim
 
 .Frameset_IntroUnown3:
-	frame SPRITE_ANIM_FRAME_IDX_76,  3, OAM_Y_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_77,  3, OAM_Y_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_78,  7, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1,  3, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2,  3, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3,  7, OAM_Y_FLIP
 	delanim
 
 .Frameset_IntroUnown4:
-	frame SPRITE_ANIM_FRAME_IDX_76,  3, OAM_X_FLIP, OAM_Y_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_77,  3, OAM_X_FLIP, OAM_Y_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_78,  7, OAM_X_FLIP, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1,  3, OAM_X_FLIP, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2,  3, OAM_X_FLIP, OAM_Y_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3,  7, OAM_X_FLIP, OAM_Y_FLIP
 	delanim
 
 .Frameset_IntroUnownF2:
-	frame SPRITE_ANIM_FRAME_IDX_79,  3
-	frame SPRITE_ANIM_FRAME_IDX_7A,  3
-	frame SPRITE_ANIM_FRAME_IDX_7B,  3
-	frame SPRITE_ANIM_FRAME_IDX_7C,  7
-	frame SPRITE_ANIM_FRAME_IDX_7D,  7
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4,  7
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5,  7
 	endanim
 
 .Frameset_IntroSuicuneAway:
-	frame SPRITE_ANIM_FRAME_IDX_7E,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY,  3
 	endanim
 
 .Frameset_IntroUnownF:
@@ -488,12 +488,12 @@
 	endanim
 
 .Frameset_CelebiLeft:
-	frame SPRITE_ANIM_FRAME_IDX_7F,  8
-	frame SPRITE_ANIM_FRAME_IDX_80,  8
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_2,  8
 	endanim
 
 .Frameset_CelebiRight:
-	frame SPRITE_ANIM_FRAME_IDX_7F,  8, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_80,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_1,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_2,  8, OAM_X_FLIP
 	endanim
 ; 8d94d
--- a/data/sprite_anim_oam.asm
+++ b/data/sprite_anim_oam.asm
@@ -1,148 +1,148 @@
 SpriteAnimOAMData: ; 8d94d
 ; entries correspond to SPRITE_ANIM_FRAME_IDX_* constants
 	; vtile offset, pointer
-	dbw $00, .OAMData_00 ; 00
-	dbw $04, .OAMData_00 ; 01
-	dbw $4c, .OAMData_02 ; 02
-	dbw $5c, .OAMData_02 ; 03
-	dbw $6c, .OAMData_04 ; 04
-	dbw $6e, .OAMData_04 ; 05
-	dbw $2d, .OAMData_06 ; 06
-	dbw $4d, .OAMData_06 ; 07
-	dbw $60, .OAMData_08 ; 08
-	dbw $00, .OAMData_08 ; 09
-	dbw $00, .OAMData_08 ; 0a
-	dbw $06, .OAMData_08 ; 0b
-	dbw $0c, .OAMData_0c ; 0c
-	dbw $0d, .OAMData_02 ; 0d
-	dbw $00, .OAMData_0e ; 0e
-	dbw $04, .OAMData_0e ; 0f
-	dbw $08, .OAMData_0e ; 10
-	dbw $40, .OAMData_0e ; 11
-	dbw $44, .OAMData_0e ; 12
-	dbw $48, .OAMData_0e ; 13
-	dbw $4c, .OAMData_0e ; 14
-	dbw $80, .OAMData_15 ; 15
-	dbw $85, .OAMData_15 ; 16
-	dbw $8a, .OAMData_15 ; 17
-	dbw $00, .OAMData_18 ; 18
-	dbw $01, .OAMData_19 ; 19
-	dbw $09, .OAMData_1a ; 1a
-	dbw $10, .OAMData_1b ; 1b
-	dbw $29, .OAMData_1b ; 1c
-	dbw $42, .OAMData_1b ; 1d
-	dbw $f8, .OAMData_1e ; 1e
-	dbw $fa, .OAMData_1e ; 1f
-	dbw $00, .OAMData_20 ; 20
-	dbw $00, .OAMData_21 ; 21
-	dbw $00, .OAMData_22 ; 22
-	dbw $0f, .OAMData_23 ; 23
-	dbw $11, .OAMData_02 ; 24
-	dbw $12, .OAMData_02 ; 25
-	dbw $13, .OAMData_02 ; 26
-	dbw $00, .OAMData_27 ; 27
-	dbw $08, .OAMData_27 ; 28
-	dbw $10, .OAMData_29 ; 29
-	dbw $10, .OAMData_2a ; 2a
-	dbw $10, .OAMData_2b ; 2b
-	dbw $10, .OAMData_2c ; 2c
-	dbw $10, .OAMData_2d ; 2d
-	dbw $3a, .OAMData_02 ; 2e
-	dbw $00, .OAMData_00 ; 2f
-	dbw $00, .OAMData_30 ; 30
-	dbw $02, .OAMData_31 ; 31
-	dbw $06, .OAMData_19 ; 32
-	dbw $0a, .OAMData_19 ; 33
-	dbw $0e, .OAMData_19 ; 34
-	dbw $12, .OAMData_35 ; 35
-	dbw $13, .OAMData_35 ; 36
-	dbw $00, .OAMData_00 ; 37
-	dbw $04, .OAMData_00 ; 38
-	dbw $10, .OAMData_19 ; 39
-	dbw $00, .OAMData_31 ; 3a
-	dbw $04, .OAMData_02 ; 3b
-	dbw $00, .OAMData_3c ; 3c
-	dbw $00, .OAMData_3d ; 3d
-	dbw $00, .OAMData_3e ; 3e
-	dbw $00, .OAMData_3f ; 3f
-	dbw $00, .OAMData_40 ; 40
-	dbw $00, .OAMData_31 ; 41
-	dbw $04, .OAMData_31 ; 42
-	dbw $00, .OAMData_43 ; 43
-	dbw $30, .OAMData_43 ; 44
-	dbw $03, .OAMData_43 ; 45
-	dbw $33, .OAMData_43 ; 46
-	dbw $06, .OAMData_43 ; 47
-	dbw $36, .OAMData_43 ; 48
-	dbw $09, .OAMData_43 ; 49
-	dbw $39, .OAMData_43 ; 4a
-	dbw $0c, .OAMData_4b ; 4b
-	dbw $0c, .OAMData_4c ; 4c
-	dbw $3c, .OAMData_02 ; 4d
-	dbw $3e, .OAMData_02 ; 4e
-	dbw $00, .OAMData_4f ; 4f
-	dbw $00, .OAMData_50 ; 50
-	dbw $00, .OAMData_51 ; 51
-	dbw $00, .OAMData_52 ; 52
-	dbw $00, .OAMData_53 ; 53
-	dbw $00, .OAMData_02 ; 54
-	dbw $01, .OAMData_02 ; 55
-	dbw $00, .OAMData_56 ; 56
-	dbw $00, .OAMData_57 ; 57
-	dbw $00, .OAMData_58 ; 58
-	dbw $00, .OAMData_59 ; 59
-	dbw $00, .OAMData_5a ; 5a
-	dbw $04, .OAMData_50 ; 5b
-	dbw $00, .OAMData_5c ; 5c
-	dbw $00, .OAMData_5d ; 5d
-	dbw $00, .OAMData_5e ; 5e
-	dbw $00, .OAMData_5f ; 5f
-	dbw $00, .OAMData_60 ; 60
-	dbw $00, .OAMData_61 ; 61
-	dbw $00, .OAMData_62 ; 62
-	dbw $00, .OAMData_63 ; 63
-	dbw $04, .OAMData_63 ; 64
-	dbw $00, .OAMData_65 ; 65
-	dbw $04, .OAMData_65 ; 66
-	dbw $20, .OAMData_67 ; 67
-	dbw $21, .OAMData_67 ; 68
-	dbw $22, .OAMData_69 ; 69
-	dbw $23, .OAMData_6a ; 6a
-	dbw $27, .OAMData_6b ; 6b
-	dbw $2a, .OAMData_6c ; 6c
-	dbw $2a, .OAMData_6d ; 6d
-	dbw $00, .OAMData_6e ; 6e
-	dbw $08, .OAMData_6f ; 6f
-	dbw $60, .OAMData_70 ; 70
-	dbw $68, .OAMData_71 ; 71
-	dbw $00, .OAMData_72 ; 72
-	dbw $05, .OAMData_72 ; 73
-	dbw $0a, .OAMData_72 ; 74
-	dbw $50, .OAMData_75 ; 75
-	dbw $00, .OAMData_76 ; 76
-	dbw $01, .OAMData_77 ; 77
-	dbw $04, .OAMData_78 ; 78
-	dbw $00, .OAMData_18 ; 79
-	dbw $01, .OAMData_7a ; 7a
-	dbw $03, .OAMData_7b ; 7b
-	dbw $08, .OAMData_7c ; 7c
-	dbw $1c, .OAMData_7c ; 7d
-	dbw $80, .OAMData_7e ; 7e
-	dbw $00, .OAMData_7f ; 7f
-	dbw $04, .OAMData_7f ; 80
-	dbw $d0, .OAMData_81 ; 81
-	dbw $d3, .OAMData_81 ; 82
-	dbw $d6, .OAMData_81 ; 83
-	dbw $6c, .OAMData_84 ; 84
-	dbw $68, .OAMData_84 ; 85
-	dbw $64, .OAMData_84 ; 86
-	dbw $60, .OAMData_84 ; 87
-	dbw $0c, .OAMData_84 ; 88
-	dbw $08, .OAMData_84 ; 89
-	dbw $04, .OAMData_84 ; 8a
-	dbw $00, .OAMData_84 ; 8b
-
-.OAMData_02:
+	dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_1
+	dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_2
+	dbw $4c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_02
+	dbw $5c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_03
+	dbw $6c, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_04
+	dbw $6e, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_05
+	dbw $2d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_06
+	dbw $4d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_07
+	dbw $60, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_08
+	dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_09
+	dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0A
+	dbw $06, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0B
+	dbw $0c, .OAMData_0c ; SPRITE_ANIM_FRAME_IDX_0C
+	dbw $0d, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_0D
+	dbw $00, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0E
+	dbw $04, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0F
+	dbw $08, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_10
+	dbw $40, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_11
+	dbw $44, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_12
+	dbw $48, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_13
+	dbw $4c, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_14
+	dbw $80, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_15
+	dbw $85, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_16
+	dbw $8a, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_17
+	dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_18
+	dbw $01, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_19
+	dbw $09, .OAMData_1a ; SPRITE_ANIM_FRAME_IDX_1A
+	dbw $10, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1B
+	dbw $29, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1C
+	dbw $42, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1D
+	dbw $f8, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1
+	dbw $fa, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2
+	dbw $00, .OAMData_TextEntryCursor ; SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR
+	dbw $00, .OAMData_ForFrameset09 ; SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09
+	dbw $00, .OAMData_22 ; SPRITE_ANIM_FRAME_IDX_22
+	dbw $0f, .OAMData_GSIntroStar ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR
+	dbw $11, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1
+	dbw $12, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2
+	dbw $13, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3
+	dbw $00, .OAMData_SlotsGolem ; SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1
+	dbw $08, .OAMData_SlotsGolem ; SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2
+	dbw $10, .OAMData_SlotsChansey1 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1
+	dbw $10, .OAMData_SlotsChansey2 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2
+	dbw $10, .OAMData_SlotsChansey3 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3
+	dbw $10, .OAMData_SlotsChansey4 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4
+	dbw $10, .OAMData_SlotsChansey5 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5
+	dbw $3a, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_SLOTS_EGG
+	dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_STILL_CURSOR
+	dbw $00, .OAMData_TradePokeBall1 ; SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1
+	dbw $02, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2
+	dbw $06, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1
+	dbw $0a, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2
+	dbw $0e, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3
+	dbw $12, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_35
+	dbw $13, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_36
+	dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1
+	dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2
+	dbw $10, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE
+	dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1
+	dbw $04, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2
+	dbw $00, .OAMData_RadioTuningKnob ; SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB
+	dbw $00, .OAMData_PartyMonWithMail1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1
+	dbw $00, .OAMData_PartyMonWithMail2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2
+	dbw $00, .OAMData_PartyMonWithItem1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1
+	dbw $00, .OAMData_PartyMonWithItem2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2
+	dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1
+	dbw $04, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2
+	dbw $00, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_43
+	dbw $30, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_44
+	dbw $03, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_45
+	dbw $33, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_46
+	dbw $06, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_47
+	dbw $36, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_48
+	dbw $09, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_49
+	dbw $39, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_4A
+	dbw $0c, .OAMData_4b ; SPRITE_ANIM_FRAME_IDX_4B
+	dbw $0c, .OAMData_4c ; SPRITE_ANIM_FRAME_IDX_4C
+	dbw $3c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_4D
+	dbw $3e, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_4E
+	dbw $00, .OAMData_Leaf ; SPRITE_ANIM_FRAME_IDX_LEAF
+	dbw $00, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_TREE_1
+	dbw $00, .OAMData_CutTree2 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_2
+	dbw $00, .OAMData_CutTree3 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_3
+	dbw $00, .OAMData_CutTree4 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_4
+	dbw $00, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_EGG_CRACK
+	dbw $01, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_55
+	dbw $00, .OAMData_56 ; SPRITE_ANIM_FRAME_IDX_56
+	dbw $00, .OAMData_57 ; SPRITE_ANIM_FRAME_IDX_57
+	dbw $00, .OAMData_58 ; SPRITE_ANIM_FRAME_IDX_58
+	dbw $00, .OAMData_59 ; SPRITE_ANIM_FRAME_IDX_59
+	dbw $00, .OAMData_5a ; SPRITE_ANIM_FRAME_IDX_5A
+	dbw $04, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2
+	dbw $00, .OAMData_5c ; SPRITE_ANIM_FRAME_IDX_5C
+	dbw $00, .OAMData_5d ; SPRITE_ANIM_FRAME_IDX_5D
+	dbw $00, .OAMData_5e ; SPRITE_ANIM_FRAME_IDX_5E
+	dbw $00, .OAMData_5f ; SPRITE_ANIM_FRAME_IDX_5F
+	dbw $00, .OAMData_60 ; SPRITE_ANIM_FRAME_IDX_60
+	dbw $00, .OAMData_61 ; SPRITE_ANIM_FRAME_IDX_61
+	dbw $00, .OAMData_62 ; SPRITE_ANIM_FRAME_IDX_62
+	dbw $00, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1
+	dbw $04, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2
+	dbw $00, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1
+	dbw $04, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2
+	dbw $20, .OAMData_ForMobile22 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1
+	dbw $21, .OAMData_ForMobile22 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2
+	dbw $22, .OAMData_ForMobile25_1 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1
+	dbw $23, .OAMData_ForMobile25_2 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2
+	dbw $27, .OAMData_ForMobile25_3 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3
+	dbw $2a, .OAMData_ForMobile23 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23
+	dbw $2a, .OAMData_ForMobile24 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24
+	dbw $00, .OAMData_IntroSuicune1 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1
+	dbw $08, .OAMData_IntroSuicune2 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2
+	dbw $60, .OAMData_IntroSuicune3 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3
+	dbw $68, .OAMData_IntroSuicune4 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4
+	dbw $00, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1
+	dbw $05, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2
+	dbw $0a, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3
+	dbw $50, .OAMData_IntroWooper ; SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER
+	dbw $00, .OAMData_IntroUnown1 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1
+	dbw $01, .OAMData_IntroUnown2 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2
+	dbw $04, .OAMData_IntroUnown3 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3
+	dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1
+	dbw $01, .OAMData_IntroUnownF2_2 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2
+	dbw $03, .OAMData_IntroUnownF2_3 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3
+	dbw $08, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4
+	dbw $1c, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5
+	dbw $80, .OAMData_IntroSuicuneAway ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY
+	dbw $00, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_1
+	dbw $04, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_2
+	dbw $d0, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1
+	dbw $d3, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2
+	dbw $d6, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3
+	dbw $6c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4
+	dbw $68, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5
+	dbw $64, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6
+	dbw $60, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7
+	dbw $0c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8
+	dbw $08, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9
+	dbw $04, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10
+	dbw $00, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11
+
+.OAMData_1x1_Palette0:
 	db 1
 	dsprite -1,  4, -1,  4, $00, $00
 
@@ -153,14 +153,14 @@
 	dsprite  0,  0, -1,  0, $10, $00
 	dsprite  0,  0,  0,  0, $11, $00
 
-.OAMData_23:
+.OAMData_GSIntroStar:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $00, $20
-	dsprite  0,  0, -1,  0, $01, $00
-	dsprite  0,  0,  0,  0, $01, $20
+	dsprite -1,  0, -1,  0, $00, 0
+	dsprite -1,  0,  0,  0, $00, 0 | X_FLIP
+	dsprite  0,  0, -1,  0, $01, 0
+	dsprite  0,  0,  0,  0, $01, 0 | X_FLIP
 
-.OAMData_30:
+.OAMData_TradePokeBall1:
 	db 4
 	dsprite -1,  0, -1,  0, $00, $80
 	dsprite -1,  0,  0,  0, $00, $a0
@@ -189,24 +189,24 @@
 	dsprite  0,  0, -1,  0, $00, $c0
 	dsprite  0,  0,  0,  0, $00, $e0
 
-.OAMData_19:
+.OAMData_TradePoofBubble:
 	db 16
-	dsprite -2,  0, -2,  0, $00, $00
-	dsprite -2,  0, -1,  0, $01, $00
-	dsprite -1,  0, -2,  0, $02, $00
-	dsprite -1,  0, -1,  0, $03, $00
-	dsprite -2,  0,  0,  0, $01, $20
-	dsprite -2,  0,  1,  0, $00, $20
-	dsprite -1,  0,  0,  0, $03, $20
-	dsprite -1,  0,  1,  0, $02, $20
-	dsprite  0,  0, -2,  0, $02, $40
-	dsprite  0,  0, -1,  0, $03, $40
-	dsprite  1,  0, -2,  0, $00, $40
-	dsprite  1,  0, -1,  0, $01, $40
-	dsprite  0,  0,  0,  0, $03, $60
-	dsprite  0,  0,  1,  0, $02, $60
-	dsprite  1,  0,  0,  0, $01, $60
-	dsprite  1,  0,  1,  0, $00, $60
+	dsprite -2,  0, -2,  0, $00, 0
+	dsprite -2,  0, -1,  0, $01, 0
+	dsprite -1,  0, -2,  0, $02, 0
+	dsprite -1,  0, -1,  0, $03, 0
+	dsprite -2,  0,  0,  0, $01, 0 | X_FLIP
+	dsprite -2,  0,  1,  0, $00, 0 | X_FLIP
+	dsprite -1,  0,  0,  0, $03, 0 | X_FLIP
+	dsprite -1,  0,  1,  0, $02, 0 | X_FLIP
+	dsprite  0,  0, -2,  0, $02, 0 | Y_FLIP
+	dsprite  0,  0, -1,  0, $03, 0 | Y_FLIP
+	dsprite  1,  0, -2,  0, $00, 0 | Y_FLIP
+	dsprite  1,  0, -1,  0, $01, 0 | Y_FLIP
+	dsprite  0,  0,  0,  0, $03, 0 | X_FLIP | Y_FLIP
+	dsprite  0,  0,  1,  0, $02, 0 | X_FLIP | Y_FLIP
+	dsprite  1,  0,  0,  0, $01, 0 | X_FLIP | Y_FLIP
+	dsprite  1,  0,  1,  0, $00, 0 | X_FLIP | Y_FLIP
 
 .OAMData_1a:
 	db 36
@@ -346,52 +346,47 @@
 	dsprite  2,  0,  1,  0, $22, $00
 	dsprite  2,  0,  2,  0, $23, $00
 
-.OAMData_00:
-; party menu icons
+.OAMData_RedWalk:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $01, $00
-	dsprite  0,  0, -1,  0, $02, $00
-	dsprite  0,  0,  0,  0, $03, $00
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $02, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED
 
-.OAMData_31:
+.OAMData_MagnetTrainRed:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $80
-	dsprite -1,  0,  0,  0, $01, $80
-	dsprite  0,  0, -1,  0, $02, $80
-	dsprite  0,  0,  0,  0, $03, $80
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED | BEHIND_BG
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED | BEHIND_BG
+	dsprite  0,  0, -1,  0, $02, PAL_OW_RED | BEHIND_BG
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED | BEHIND_BG
 
-.OAMData_3d:
-; party menu icon with mail, frame 1
+.OAMData_PartyMonWithMail1:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $01, $00
-	dsprite  0,  0, -1,  0, $08, $00
-	dsprite  0,  0,  0,  0, $03, $00
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $08, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED
 
-.OAMData_3e:
-; party menu icon with mail, frame 2
+.OAMData_PartyMonWithMail2:
 	db 4
-	dsprite -1,  0, -1,  0, $04, $00
-	dsprite -1,  0,  0,  0, $05, $00
-	dsprite  0,  0, -1,  0, $08, $00
-	dsprite  0,  0,  0,  0, $07, $00
+	dsprite -1,  0, -1,  0, $04, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $05, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $08, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $07, PAL_OW_RED
 
-.OAMData_3f:
-; party menu icon with item, frame 1
+.OAMData_PartyMonWithItem1:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $01, $00
-	dsprite  0,  0, -1,  0, $09, $00
-	dsprite  0,  0,  0,  0, $03, $00
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $09, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED
 
-.OAMData_40:
-; party menu icon with item, frame 2
+.OAMData_PartyMonWithItem2:
 	db 4
-	dsprite -1,  0, -1,  0, $04, $00
-	dsprite -1,  0,  0,  0, $05, $00
-	dsprite  0,  0, -1,  0, $09, $00
-	dsprite  0,  0,  0,  0, $07, $00
+	dsprite -1,  0, -1,  0, $04, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $05, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $09, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $07, PAL_OW_RED
 
 .OAMData_06:
 	db 6
@@ -447,36 +442,36 @@
 	dsprite -1,  0,  3,  0, $03, $00
 	dsprite  0,  0,  2,  0, $04, $00
 
-.OAMData_4f:
+.OAMData_Leaf:
 	db 1
-	dsprite -1,  4, -1,  4, $00, $06
+	dsprite -1,  4, -1,  4, $00, PAL_OW_TREE
 
-.OAMData_50:
+.OAMData_Tree:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $06
-	dsprite -1,  0,  0,  0, $01, $06
-	dsprite  0,  0, -1,  0, $02, $06
-	dsprite  0,  0,  0,  0, $03, $06
+	dsprite -1,  0, -1,  0, $00, PAL_OW_TREE
+	dsprite -1,  0,  0,  0, $01, PAL_OW_TREE
+	dsprite  0,  0, -1,  0, $02, PAL_OW_TREE
+	dsprite  0,  0,  0,  0, $03, PAL_OW_TREE
 
-.OAMData_20:
+.OAMData_TextEntryCursor:
 	db 4
-	dsprite -1,  7, -1,  7, $00, $00
-	dsprite -1,  7,  0,  0, $00, $20
-	dsprite  0,  0, -1,  7, $00, $40
-	dsprite  0,  0,  0,  0, $00, $60
+	dsprite -1,  7, -1,  7, $00, 0
+	dsprite -1,  7,  0,  0, $00, 0 | X_FLIP
+	dsprite  0,  0, -1,  7, $00, 0 | Y_FLIP
+	dsprite  0,  0,  0,  0, $00, 0 | X_FLIP | Y_FLIP
 
-.OAMData_21:
+.OAMData_ForFrameset09:
 	db 10
-	dsprite -1,  7,  0,  0, $00, $00
-	dsprite -1,  7,  1,  0, $01, $00
-	dsprite -1,  7,  2,  0, $01, $00
-	dsprite -1,  7,  3,  0, $01, $00
-	dsprite -1,  7,  4,  0, $00, $20
-	dsprite  0,  0,  0,  0, $00, $40
-	dsprite  0,  0,  1,  0, $01, $40
-	dsprite  0,  0,  2,  0, $01, $40
-	dsprite  0,  0,  3,  0, $01, $40
-	dsprite  0,  0,  4,  0, $00, $60
+	dsprite -1,  7,  0,  0, $00, 0
+	dsprite -1,  7,  1,  0, $01, 0
+	dsprite -1,  7,  2,  0, $01, 0
+	dsprite -1,  7,  3,  0, $01, 0
+	dsprite -1,  7,  4,  0, $00, 0 | X_FLIP
+	dsprite  0,  0,  0,  0, $00, 0 | Y_FLIP
+	dsprite  0,  0,  1,  0, $01, 0 | Y_FLIP
+	dsprite  0,  0,  2,  0, $01, 0 | Y_FLIP
+	dsprite  0,  0,  3,  0, $01, 0 | Y_FLIP
+	dsprite  0,  0,  4,  0, $00, 0 | X_FLIP | Y_FLIP
 
 .OAMData_22:
 	db 15
@@ -496,65 +491,65 @@
 	dsprite  1,  4, -1,  4, $0d, $11
 	dsprite  1,  4,  0,  4, $0e, $11
 
-.OAMData_27:
+.OAMData_SlotsGolem:
 	db 6
-	dsprite -2,  4, -2,  4, $00, $15
-	dsprite -2,  4, -1,  4, $02, $15
-	dsprite -2,  4,  0,  4, $00, $35
-	dsprite  0,  4, -2,  4, $04, $15
-	dsprite  0,  4, -1,  4, $06, $15
-	dsprite  0,  4,  0,  4, $04, $35
+	dsprite -2,  4, -2,  4, $00, 5 | OBP_NUM
+	dsprite -2,  4, -1,  4, $02, 5 | OBP_NUM
+	dsprite -2,  4,  0,  4, $00, 5 | OBP_NUM | X_FLIP
+	dsprite  0,  4, -2,  4, $04, 5 | OBP_NUM
+	dsprite  0,  4, -1,  4, $06, 5 | OBP_NUM
+	dsprite  0,  4,  0,  4, $04, 5 | OBP_NUM | X_FLIP
 
-.OAMData_29:
+.OAMData_SlotsChansey1:
 	db 6
-	dsprite -2,  4, -2,  4, $00, $16
-	dsprite -2,  4, -1,  4, $02, $16
-	dsprite -2,  4,  0,  4, $04, $16
-	dsprite  0,  4, -2,  4, $06, $16
-	dsprite  0,  4, -1,  4, $08, $16
-	dsprite  0,  4,  0,  4, $0a, $16
+	dsprite -2,  4, -2,  4, $00, 6 | OBP_NUM
+	dsprite -2,  4, -1,  4, $02, 6 | OBP_NUM
+	dsprite -2,  4,  0,  4, $04, 6 | OBP_NUM
+	dsprite  0,  4, -2,  4, $06, 6 | OBP_NUM
+	dsprite  0,  4, -1,  4, $08, 6 | OBP_NUM
+	dsprite  0,  4,  0,  4, $0a, 6 | OBP_NUM
 
-.OAMData_2a:
+.OAMData_SlotsChansey2:
 	db 6
-	dsprite -2,  4, -2,  4, $00, $16
-	dsprite -2,  4, -1,  4, $02, $16
-	dsprite -2,  4,  0,  4, $04, $16
-	dsprite  0,  4, -2,  4, $0c, $16
-	dsprite  0,  4, -1,  4, $0e, $16
-	dsprite  0,  4,  0,  4, $10, $16
+	dsprite -2,  4, -2,  4, $00, 6 | OBP_NUM
+	dsprite -2,  4, -1,  4, $02, 6 | OBP_NUM
+	dsprite -2,  4,  0,  4, $04, 6 | OBP_NUM
+	dsprite  0,  4, -2,  4, $0c, 6 | OBP_NUM
+	dsprite  0,  4, -1,  4, $0e, 6 | OBP_NUM
+	dsprite  0,  4,  0,  4, $10, 6 | OBP_NUM
 
-.OAMData_2b:
+.OAMData_SlotsChansey3:
 	db 6
-	dsprite -2,  4, -2,  4, $00, $16
-	dsprite -2,  4, -1,  4, $02, $16
-	dsprite -2,  4,  0,  4, $04, $16
-	dsprite  0,  4, -2,  4, $12, $16
-	dsprite  0,  4, -1,  4, $14, $16
-	dsprite  0,  4,  0,  4, $16, $16
+	dsprite -2,  4, -2,  4, $00, 6 | OBP_NUM
+	dsprite -2,  4, -1,  4, $02, 6 | OBP_NUM
+	dsprite -2,  4,  0,  4, $04, 6 | OBP_NUM
+	dsprite  0,  4, -2,  4, $12, 6 | OBP_NUM
+	dsprite  0,  4, -1,  4, $14, 6 | OBP_NUM
+	dsprite  0,  4,  0,  4, $16, 6 | OBP_NUM
 
-.OAMData_2c:
+.OAMData_SlotsChansey4:
 	db 6
-	dsprite -2,  4, -2,  4, $00, $16
-	dsprite -2,  4, -1,  4, $02, $16
-	dsprite -2,  4,  0,  4, $04, $16
-	dsprite  0,  4, -2,  4, $18, $16
-	dsprite  0,  4, -1,  4, $1a, $16
-	dsprite  0,  4,  0,  4, $1c, $16
+	dsprite -2,  4, -2,  4, $00, 6 | OBP_NUM
+	dsprite -2,  4, -1,  4, $02, 6 | OBP_NUM
+	dsprite -2,  4,  0,  4, $04, 6 | OBP_NUM
+	dsprite  0,  4, -2,  4, $18, 6 | OBP_NUM
+	dsprite  0,  4, -1,  4, $1a, 6 | OBP_NUM
+	dsprite  0,  4,  0,  4, $1c, 6 | OBP_NUM
 
-.OAMData_2d:
+.OAMData_SlotsChansey5:
 	db 6
-	dsprite -2,  4, -2,  4, $1e, $16
-	dsprite -2,  4, -1,  4, $20, $16
-	dsprite -2,  4,  0,  4, $22, $16
-	dsprite  0,  4, -2,  4, $24, $16
-	dsprite  0,  4, -1,  4, $26, $16
-	dsprite  0,  4,  0,  4, $28, $16
+	dsprite -2,  4, -2,  4, $1e, 6 | OBP_NUM
+	dsprite -2,  4, -1,  4, $20, 6 | OBP_NUM
+	dsprite -2,  4,  0,  4, $22, 6 | OBP_NUM
+	dsprite  0,  4, -2,  4, $24, 6 | OBP_NUM
+	dsprite  0,  4, -1,  4, $26, 6 | OBP_NUM
+	dsprite  0,  4,  0,  4, $28, 6 | OBP_NUM
 
-.OAMData_3c:
+.OAMData_RadioTuningKnob:
 	db 3
-	dsprite -2,  4, -1,  4, $00, $10
-	dsprite -1,  4, -1,  4, $00, $10
-	dsprite  0,  4, -1,  4, $00, $10
+	dsprite -2,  4, -1,  4, $00, 0 | OBP_NUM
+	dsprite -1,  4, -1,  4, $00, 0 | OBP_NUM
+	dsprite  0,  4, -1,  4, $00, 0 | OBP_NUM
 
 .OAMData_4b:
 	db 6
@@ -572,26 +567,26 @@
 	dsprite  0,  0,  2,  0, $02, $00
 	dsprite  0,  0,  3,  0, $03, $00
 
-.OAMData_51:
+.OAMData_CutTree2:
 	db 4
-	dsprite -1,  0, -2,  6, $00, $06
-	dsprite -1,  0,  0,  2, $01, $06
-	dsprite  0,  0, -2,  6, $02, $06
-	dsprite  0,  0,  0,  2, $03, $06
+	dsprite -1,  0, -2,  6, $00, PAL_OW_TREE
+	dsprite -1,  0,  0,  2, $01, PAL_OW_TREE
+	dsprite  0,  0, -2,  6, $02, PAL_OW_TREE
+	dsprite  0,  0,  0,  2, $03, PAL_OW_TREE
 
-.OAMData_52:
+.OAMData_CutTree3:
 	db 4
-	dsprite -1,  0, -2,  4, $00, $06
-	dsprite -1,  0,  0,  4, $01, $06
-	dsprite  0,  0, -2,  4, $02, $06
-	dsprite  0,  0,  0,  4, $03, $06
+	dsprite -1,  0, -2,  4, $00, PAL_OW_TREE
+	dsprite -1,  0,  0,  4, $01, PAL_OW_TREE
+	dsprite  0,  0, -2,  4, $02, PAL_OW_TREE
+	dsprite  0,  0,  0,  4, $03, PAL_OW_TREE
 
-.OAMData_53:
+.OAMData_CutTree4:
 	db 4
-	dsprite -1,  0, -2,  0, $00, $06
-	dsprite -1,  0,  1,  0, $01, $06
-	dsprite  0,  0, -2,  0, $02, $06
-	dsprite  0,  0,  1,  0, $03, $06
+	dsprite -1,  0, -2,  0, $00, PAL_OW_TREE
+	dsprite -1,  0,  1,  0, $01, PAL_OW_TREE
+	dsprite  0,  0, -2,  0, $02, PAL_OW_TREE
+	dsprite  0,  0,  1,  0, $03, PAL_OW_TREE
 
 .OAMData_56:
 	db 19
@@ -692,9 +687,9 @@
 	dsprite -2,  0,  3,  0, $22, $00
 	dsprite  0,  0,  3,  0, $24, $00
 
-.OAMData_1e:
+.OAMData_GSTitleTrail:
 	db 1
-	dsprite -1,  4, -1,  4, $00, $11
+	dsprite -1,  4, -1,  4, $00, 1 | OBP_NUM
 
 .OAMData_5c:
 	db 12
@@ -747,266 +742,266 @@
 	dsprite  0,  0,  0,  0, $32, $00
 	dsprite  1,  0,  0,  0, $35, $00
 
-.OAMData_63:
+.OAMData_BlueWalk:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $01
-	dsprite -1,  0,  0,  0, $01, $01
-	dsprite  0,  0, -1,  0, $02, $01
-	dsprite  0,  0,  0,  0, $03, $01
+	dsprite -1,  0, -1,  0, $00, PAL_OW_BLUE
+	dsprite -1,  0,  0,  0, $01, PAL_OW_BLUE
+	dsprite  0,  0, -1,  0, $02, PAL_OW_BLUE
+	dsprite  0,  0,  0,  0, $03, PAL_OW_BLUE
 
-.OAMData_65:
+.OAMData_MagnetTrainBlue:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $81
-	dsprite -1,  0,  0,  0, $01, $81
-	dsprite  0,  0, -1,  0, $02, $81
-	dsprite  0,  0,  0,  0, $03, $81
+	dsprite -1,  0, -1,  0, $00, PAL_OW_BLUE | BEHIND_BG
+	dsprite -1,  0,  0,  0, $01, PAL_OW_BLUE | BEHIND_BG
+	dsprite  0,  0, -1,  0, $02, PAL_OW_BLUE | BEHIND_BG
+	dsprite  0,  0,  0,  0, $03, PAL_OW_BLUE | BEHIND_BG
 
-.OAMData_67:
+.OAMData_ForMobile22:
 	db 1
-	dsprite -1,  4, -1,  4, $00, $02
+	dsprite -1,  4, -1,  4, $00, 2
 
-.OAMData_6c:
+.OAMData_ForMobile23:
 	db 4
-	dsprite -2,  0, -1,  4, $00, $03
-	dsprite -1,  0, -1,  4, $01, $03
-	dsprite  0,  0, -1,  4, $02, $03
-	dsprite  1,  0, -1,  4, $03, $03
+	dsprite -2,  0, -1,  4, $00, 3
+	dsprite -1,  0, -1,  4, $01, 3
+	dsprite  0,  0, -1,  4, $02, 3
+	dsprite  1,  0, -1,  4, $03, 3
 
-.OAMData_6d:
+.OAMData_ForMobile24:
 	db 4
-	dsprite -2,  0, -1,  4, $03, $44
-	dsprite -1,  0, -1,  4, $02, $44
-	dsprite  0,  0, -1,  4, $01, $44
-	dsprite  1,  0, -1,  4, $00, $44
+	dsprite -2,  0, -1,  4, $03, 4 | Y_FLIP
+	dsprite -1,  0, -1,  4, $02, 4 | Y_FLIP
+	dsprite  0,  0, -1,  4, $01, 4 | Y_FLIP
+	dsprite  1,  0, -1,  4, $00, 4 | Y_FLIP
 
-.OAMData_69:
+.OAMData_ForMobile25_1:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $01
-	dsprite -1,  0,  0,  0, $00, $21
-	dsprite  0,  0, -1,  0, $00, $41
-	dsprite  0,  0,  0,  0, $00, $61
+	dsprite -1,  0, -1,  0, $00, 1
+	dsprite -1,  0,  0,  0, $00, 1 | X_FLIP
+	dsprite  0,  0, -1,  0, $00, 1 | Y_FLIP
+	dsprite  0,  0,  0,  0, $00, 1 | X_FLIP | Y_FLIP
 
-.OAMData_6a:
+.OAMData_ForMobile25_2:
 	db 8
-	dsprite -2,  4, -2,  4, $00, $01
-	dsprite -2,  4, -1,  4, $01, $01
-	dsprite -2,  4,  0,  4, $00, $21
-	dsprite -1,  4, -2,  4, $02, $01
-	dsprite -1,  4,  0,  4, $02, $21
-	dsprite  0,  4, -2,  4, $00, $41
-	dsprite  0,  4, -1,  4, $01, $41
-	dsprite  0,  4,  0,  4, $00, $61
+	dsprite -2,  4, -2,  4, $00, 1
+	dsprite -2,  4, -1,  4, $01, 1
+	dsprite -2,  4,  0,  4, $00, 1 | X_FLIP
+	dsprite -1,  4, -2,  4, $02, 1
+	dsprite -1,  4,  0,  4, $02, 1 | X_FLIP
+	dsprite  0,  4, -2,  4, $00, 1 | Y_FLIP
+	dsprite  0,  4, -1,  4, $01, 1 | Y_FLIP
+	dsprite  0,  4,  0,  4, $00, 1 | X_FLIP | Y_FLIP
 
-.OAMData_6b:
+.OAMData_ForMobile25_3:
 	db 12
-	dsprite -2,  0, -2,  0, $00, $01
-	dsprite -2,  0, -1,  0, $01, $01
-	dsprite -1,  0, -2,  0, $02, $01
-	dsprite -2,  0,  0,  0, $01, $21
-	dsprite -2,  0,  1,  0, $00, $21
-	dsprite -1,  0,  1,  0, $02, $21
-	dsprite  0,  0, -2,  0, $02, $41
-	dsprite  1,  0, -2,  0, $00, $41
-	dsprite  1,  0, -1,  0, $01, $41
-	dsprite  0,  0,  1,  0, $02, $61
-	dsprite  1,  0,  0,  0, $01, $61
-	dsprite  1,  0,  1,  0, $00, $61
+	dsprite -2,  0, -2,  0, $00, 1
+	dsprite -2,  0, -1,  0, $01, 1
+	dsprite -1,  0, -2,  0, $02, 1
+	dsprite -2,  0,  0,  0, $01, 1 | X_FLIP
+	dsprite -2,  0,  1,  0, $00, 1 | X_FLIP
+	dsprite -1,  0,  1,  0, $02, 1 | X_FLIP
+	dsprite  0,  0, -2,  0, $02, 1 | Y_FLIP
+	dsprite  1,  0, -2,  0, $00, 1 | Y_FLIP
+	dsprite  1,  0, -1,  0, $01, 1 | Y_FLIP
+	dsprite  0,  0,  1,  0, $02, 1 | X_FLIP | Y_FLIP
+	dsprite  1,  0,  0,  0, $01, 1 | X_FLIP | Y_FLIP
+	dsprite  1,  0,  1,  0, $00, 1 | X_FLIP | Y_FLIP
 
-.OAMData_6e:
+.OAMData_IntroSuicune1:
 	db 36
-	dsprite -3,  0,  1,  0, $05, $00
-	dsprite -3,  0,  2,  0, $06, $00
-	dsprite -3,  0,  3,  0, $07, $00
-	dsprite -2,  0, -3,  0, $11, $00
-	dsprite -2,  0, -2,  0, $12, $00
-	dsprite -2,  0, -1,  0, $13, $00
-	dsprite -2,  0,  0,  0, $14, $00
-	dsprite -2,  0,  1,  0, $15, $00
-	dsprite -2,  0,  2,  0, $16, $00
-	dsprite -2,  0,  3,  0, $17, $00
-	dsprite -1,  0, -4,  0, $20, $00
-	dsprite -1,  0, -3,  0, $21, $00
-	dsprite -1,  0, -2,  0, $22, $00
-	dsprite -1,  0, -1,  0, $23, $00
-	dsprite -1,  0,  0,  0, $24, $00
-	dsprite -1,  0,  1,  0, $25, $00
-	dsprite -1,  0,  2,  0, $26, $00
-	dsprite -1,  0,  3,  0, $27, $00
-	dsprite  0,  0, -4,  0, $30, $00
-	dsprite  0,  0, -3,  0, $31, $00
-	dsprite  0,  0, -2,  0, $32, $00
-	dsprite  0,  0, -1,  0, $33, $00
-	dsprite  0,  0,  0,  0, $34, $00
-	dsprite  0,  0,  1,  0, $35, $00
-	dsprite  0,  0,  2,  0, $36, $00
-	dsprite  1,  0, -4,  0, $40, $00
-	dsprite  1,  0, -3,  0, $41, $00
-	dsprite  1,  0, -2,  0, $42, $00
-	dsprite  1,  0, -1,  0, $43, $00
-	dsprite  1,  0,  0,  0, $44, $00
-	dsprite  1,  0,  1,  0, $45, $00
-	dsprite  1,  0,  2,  0, $46, $00
-	dsprite  1,  0,  3,  0, $47, $00
-	dsprite  2,  0, -4,  0, $50, $00
-	dsprite  2,  0, -3,  0, $51, $00
-	dsprite  2,  0,  3,  0, $57, $00
+	dsprite -3,  0,  1,  0, $05, 0
+	dsprite -3,  0,  2,  0, $06, 0
+	dsprite -3,  0,  3,  0, $07, 0
+	dsprite -2,  0, -3,  0, $11, 0
+	dsprite -2,  0, -2,  0, $12, 0
+	dsprite -2,  0, -1,  0, $13, 0
+	dsprite -2,  0,  0,  0, $14, 0
+	dsprite -2,  0,  1,  0, $15, 0
+	dsprite -2,  0,  2,  0, $16, 0
+	dsprite -2,  0,  3,  0, $17, 0
+	dsprite -1,  0, -4,  0, $20, 0
+	dsprite -1,  0, -3,  0, $21, 0
+	dsprite -1,  0, -2,  0, $22, 0
+	dsprite -1,  0, -1,  0, $23, 0
+	dsprite -1,  0,  0,  0, $24, 0
+	dsprite -1,  0,  1,  0, $25, 0
+	dsprite -1,  0,  2,  0, $26, 0
+	dsprite -1,  0,  3,  0, $27, 0
+	dsprite  0,  0, -4,  0, $30, 0
+	dsprite  0,  0, -3,  0, $31, 0
+	dsprite  0,  0, -2,  0, $32, 0
+	dsprite  0,  0, -1,  0, $33, 0
+	dsprite  0,  0,  0,  0, $34, 0
+	dsprite  0,  0,  1,  0, $35, 0
+	dsprite  0,  0,  2,  0, $36, 0
+	dsprite  1,  0, -4,  0, $40, 0
+	dsprite  1,  0, -3,  0, $41, 0
+	dsprite  1,  0, -2,  0, $42, 0
+	dsprite  1,  0, -1,  0, $43, 0
+	dsprite  1,  0,  0,  0, $44, 0
+	dsprite  1,  0,  1,  0, $45, 0
+	dsprite  1,  0,  2,  0, $46, 0
+	dsprite  1,  0,  3,  0, $47, 0
+	dsprite  2,  0, -4,  0, $50, 0
+	dsprite  2,  0, -3,  0, $51, 0
+	dsprite  2,  0,  3,  0, $57, 0
 
-.OAMData_6f:
+.OAMData_IntroSuicune2:
 	db 28
-	dsprite -3,  0,  0,  0, $04, $00
-	dsprite -3,  0,  1,  0, $05, $00
-	dsprite -3,  0,  2,  0, $06, $00
-	dsprite -2,  0, -3,  0, $11, $00
-	dsprite -2,  0, -2,  0, $12, $00
-	dsprite -2,  0, -1,  0, $13, $00
-	dsprite -2,  0,  0,  0, $14, $00
-	dsprite -2,  0,  1,  0, $15, $00
-	dsprite -2,  0,  2,  0, $16, $00
-	dsprite -1,  0, -3,  0, $21, $00
-	dsprite -1,  0, -2,  0, $22, $00
-	dsprite -1,  0, -1,  0, $23, $00
-	dsprite -1,  0,  0,  0, $24, $00
-	dsprite -1,  0,  1,  0, $25, $00
-	dsprite -1,  0,  2,  0, $26, $00
-	dsprite  0,  0, -4,  0, $30, $00
-	dsprite  0,  0, -3,  0, $31, $00
-	dsprite  0,  0, -2,  0, $32, $00
-	dsprite  0,  0, -1,  0, $33, $00
-	dsprite  0,  0,  0,  0, $34, $00
-	dsprite  0,  0,  1,  0, $35, $00
-	dsprite  1,  0, -2,  0, $42, $00
-	dsprite  1,  0, -1,  0, $43, $00
-	dsprite  1,  0,  0,  0, $44, $00
-	dsprite  1,  0,  1,  0, $45, $00
-	dsprite  2,  0, -1,  0, $53, $00
-	dsprite  2,  0,  0,  0, $54, $00
-	dsprite  2,  0,  1,  0, $55, $00
+	dsprite -3,  0,  0,  0, $04, 0
+	dsprite -3,  0,  1,  0, $05, 0
+	dsprite -3,  0,  2,  0, $06, 0
+	dsprite -2,  0, -3,  0, $11, 0
+	dsprite -2,  0, -2,  0, $12, 0
+	dsprite -2,  0, -1,  0, $13, 0
+	dsprite -2,  0,  0,  0, $14, 0
+	dsprite -2,  0,  1,  0, $15, 0
+	dsprite -2,  0,  2,  0, $16, 0
+	dsprite -1,  0, -3,  0, $21, 0
+	dsprite -1,  0, -2,  0, $22, 0
+	dsprite -1,  0, -1,  0, $23, 0
+	dsprite -1,  0,  0,  0, $24, 0
+	dsprite -1,  0,  1,  0, $25, 0
+	dsprite -1,  0,  2,  0, $26, 0
+	dsprite  0,  0, -4,  0, $30, 0
+	dsprite  0,  0, -3,  0, $31, 0
+	dsprite  0,  0, -2,  0, $32, 0
+	dsprite  0,  0, -1,  0, $33, 0
+	dsprite  0,  0,  0,  0, $34, 0
+	dsprite  0,  0,  1,  0, $35, 0
+	dsprite  1,  0, -2,  0, $42, 0
+	dsprite  1,  0, -1,  0, $43, 0
+	dsprite  1,  0,  0,  0, $44, 0
+	dsprite  1,  0,  1,  0, $45, 0
+	dsprite  2,  0, -1,  0, $53, 0
+	dsprite  2,  0,  0,  0, $54, 0
+	dsprite  2,  0,  1,  0, $55, 0
 
-.OAMData_70:
+.OAMData_IntroSuicune3:
 	db 30
-	dsprite -3,  0,  0,  0, $04, $00
-	dsprite -3,  0,  1,  0, $05, $00
-	dsprite -2,  0, -3,  0, $11, $00
-	dsprite -2,  0, -2,  0, $12, $00
-	dsprite -2,  0, -1,  0, $13, $00
-	dsprite -2,  0,  0,  0, $14, $00
-	dsprite -2,  0,  1,  0, $15, $00
-	dsprite -2,  0,  2,  0, $16, $00
-	dsprite -2,  0,  3,  0, $17, $00
-	dsprite -1,  0, -4,  0, $20, $00
-	dsprite -1,  0, -3,  0, $21, $00
-	dsprite -1,  0, -2,  0, $22, $00
-	dsprite -1,  0, -1,  0, $23, $00
-	dsprite -1,  0,  0,  0, $24, $00
-	dsprite -1,  0,  1,  0, $25, $00
-	dsprite -1,  0,  2,  0, $26, $00
-	dsprite  0,  0, -4,  0, $30, $00
-	dsprite  0,  0, -3,  0, $31, $00
-	dsprite  0,  0, -2,  0, $32, $00
-	dsprite  0,  0, -1,  0, $33, $00
-	dsprite  0,  0,  0,  0, $34, $00
-	dsprite  0,  0,  1,  0, $35, $00
-	dsprite  1,  0, -2,  0, $42, $00
-	dsprite  1,  0, -1,  0, $43, $00
-	dsprite  1,  0,  0,  0, $44, $00
-	dsprite  1,  0,  1,  0, $45, $00
-	dsprite  2,  0, -2,  0, $52, $00
-	dsprite  2,  0, -1,  0, $53, $00
-	dsprite  2,  0,  0,  0, $54, $00
-	dsprite  2,  0,  1,  0, $55, $00
+	dsprite -3,  0,  0,  0, $04, 0
+	dsprite -3,  0,  1,  0, $05, 0
+	dsprite -2,  0, -3,  0, $11, 0
+	dsprite -2,  0, -2,  0, $12, 0
+	dsprite -2,  0, -1,  0, $13, 0
+	dsprite -2,  0,  0,  0, $14, 0
+	dsprite -2,  0,  1,  0, $15, 0
+	dsprite -2,  0,  2,  0, $16, 0
+	dsprite -2,  0,  3,  0, $17, 0
+	dsprite -1,  0, -4,  0, $20, 0
+	dsprite -1,  0, -3,  0, $21, 0
+	dsprite -1,  0, -2,  0, $22, 0
+	dsprite -1,  0, -1,  0, $23, 0
+	dsprite -1,  0,  0,  0, $24, 0
+	dsprite -1,  0,  1,  0, $25, 0
+	dsprite -1,  0,  2,  0, $26, 0
+	dsprite  0,  0, -4,  0, $30, 0
+	dsprite  0,  0, -3,  0, $31, 0
+	dsprite  0,  0, -2,  0, $32, 0
+	dsprite  0,  0, -1,  0, $33, 0
+	dsprite  0,  0,  0,  0, $34, 0
+	dsprite  0,  0,  1,  0, $35, 0
+	dsprite  1,  0, -2,  0, $42, 0
+	dsprite  1,  0, -1,  0, $43, 0
+	dsprite  1,  0,  0,  0, $44, 0
+	dsprite  1,  0,  1,  0, $45, 0
+	dsprite  2,  0, -2,  0, $52, 0
+	dsprite  2,  0, -1,  0, $53, 0
+	dsprite  2,  0,  0,  0, $54, 0
+	dsprite  2,  0,  1,  0, $55, 0
 
-.OAMData_71:
+.OAMData_IntroSuicune4:
 	db 31
-	dsprite -2,  0, -3,  0, $11, $00
-	dsprite -2,  0, -2,  0, $12, $00
-	dsprite -2,  0, -1,  0, $13, $00
-	dsprite -2,  0,  0,  0, $14, $00
-	dsprite -2,  0,  1,  0, $15, $00
-	dsprite -2,  0,  2,  0, $16, $00
-	dsprite -2,  0,  3,  0, $17, $00
-	dsprite -1,  0, -4,  0, $20, $00
-	dsprite -1,  0, -3,  0, $21, $00
-	dsprite -1,  0, -2,  0, $22, $00
-	dsprite -1,  0, -1,  0, $23, $00
-	dsprite -1,  0,  0,  0, $24, $00
-	dsprite -1,  0,  1,  0, $25, $00
-	dsprite -1,  0,  2,  0, $26, $00
-	dsprite -1,  0,  3,  0, $27, $00
-	dsprite  0,  0, -4,  0, $30, $00
-	dsprite  0,  0, -3,  0, $31, $00
-	dsprite  0,  0, -2,  0, $32, $00
-	dsprite  0,  0, -1,  0, $33, $00
-	dsprite  0,  0,  0,  0, $34, $00
-	dsprite  0,  0,  1,  0, $35, $00
-	dsprite  0,  0,  2,  0, $36, $00
-	dsprite  1,  0, -3,  0, $41, $00
-	dsprite  1,  0, -2,  0, $42, $00
-	dsprite  1,  0, -1,  0, $43, $00
-	dsprite  1,  0,  0,  0, $44, $00
-	dsprite  1,  0,  1,  0, $45, $00
-	dsprite  2,  0, -3,  0, $51, $00
-	dsprite  2,  0, -2,  0, $52, $00
-	dsprite  2,  0,  0,  0, $54, $00
-	dsprite  2,  0,  1,  0, $55, $00
+	dsprite -2,  0, -3,  0, $11, 0
+	dsprite -2,  0, -2,  0, $12, 0
+	dsprite -2,  0, -1,  0, $13, 0
+	dsprite -2,  0,  0,  0, $14, 0
+	dsprite -2,  0,  1,  0, $15, 0
+	dsprite -2,  0,  2,  0, $16, 0
+	dsprite -2,  0,  3,  0, $17, 0
+	dsprite -1,  0, -4,  0, $20, 0
+	dsprite -1,  0, -3,  0, $21, 0
+	dsprite -1,  0, -2,  0, $22, 0
+	dsprite -1,  0, -1,  0, $23, 0
+	dsprite -1,  0,  0,  0, $24, 0
+	dsprite -1,  0,  1,  0, $25, 0
+	dsprite -1,  0,  2,  0, $26, 0
+	dsprite -1,  0,  3,  0, $27, 0
+	dsprite  0,  0, -4,  0, $30, 0
+	dsprite  0,  0, -3,  0, $31, 0
+	dsprite  0,  0, -2,  0, $32, 0
+	dsprite  0,  0, -1,  0, $33, 0
+	dsprite  0,  0,  0,  0, $34, 0
+	dsprite  0,  0,  1,  0, $35, 0
+	dsprite  0,  0,  2,  0, $36, 0
+	dsprite  1,  0, -3,  0, $41, 0
+	dsprite  1,  0, -2,  0, $42, 0
+	dsprite  1,  0, -1,  0, $43, 0
+	dsprite  1,  0,  0,  0, $44, 0
+	dsprite  1,  0,  1,  0, $45, 0
+	dsprite  2,  0, -3,  0, $51, 0
+	dsprite  2,  0, -2,  0, $52, 0
+	dsprite  2,  0,  0,  0, $54, 0
+	dsprite  2,  0,  1,  0, $55, 0
 
-.OAMData_72:
+.OAMData_IntroPichu:
 	db 25
-	dsprite -3,  4, -3,  4, $00, $09
-	dsprite -3,  4, -2,  4, $01, $09
-	dsprite -3,  4, -1,  4, $02, $09
-	dsprite -3,  4,  0,  4, $03, $09
-	dsprite -3,  4,  1,  4, $04, $09
-	dsprite -2,  4, -3,  4, $10, $09
-	dsprite -2,  4, -2,  4, $11, $09
-	dsprite -2,  4, -1,  4, $12, $09
-	dsprite -2,  4,  0,  4, $13, $09
-	dsprite -2,  4,  1,  4, $14, $09
-	dsprite -1,  4, -3,  4, $20, $09
-	dsprite -1,  4, -2,  4, $21, $09
-	dsprite -1,  4, -1,  4, $22, $09
-	dsprite -1,  4,  0,  4, $23, $09
-	dsprite -1,  4,  1,  4, $24, $09
-	dsprite  0,  4, -3,  4, $30, $09
-	dsprite  0,  4, -2,  4, $31, $09
-	dsprite  0,  4, -1,  4, $32, $09
-	dsprite  0,  4,  0,  4, $33, $09
-	dsprite  0,  4,  1,  4, $34, $09
-	dsprite  1,  4, -3,  4, $40, $09
-	dsprite  1,  4, -2,  4, $41, $09
-	dsprite  1,  4, -1,  4, $42, $09
-	dsprite  1,  4,  0,  4, $43, $09
-	dsprite  1,  4,  1,  4, $44, $09
+	dsprite -3,  4, -3,  4, $00, 1 | VRAM_BANK_1
+	dsprite -3,  4, -2,  4, $01, 1 | VRAM_BANK_1
+	dsprite -3,  4, -1,  4, $02, 1 | VRAM_BANK_1
+	dsprite -3,  4,  0,  4, $03, 1 | VRAM_BANK_1
+	dsprite -3,  4,  1,  4, $04, 1 | VRAM_BANK_1
+	dsprite -2,  4, -3,  4, $10, 1 | VRAM_BANK_1
+	dsprite -2,  4, -2,  4, $11, 1 | VRAM_BANK_1
+	dsprite -2,  4, -1,  4, $12, 1 | VRAM_BANK_1
+	dsprite -2,  4,  0,  4, $13, 1 | VRAM_BANK_1
+	dsprite -2,  4,  1,  4, $14, 1 | VRAM_BANK_1
+	dsprite -1,  4, -3,  4, $20, 1 | VRAM_BANK_1
+	dsprite -1,  4, -2,  4, $21, 1 | VRAM_BANK_1
+	dsprite -1,  4, -1,  4, $22, 1 | VRAM_BANK_1
+	dsprite -1,  4,  0,  4, $23, 1 | VRAM_BANK_1
+	dsprite -1,  4,  1,  4, $24, 1 | VRAM_BANK_1
+	dsprite  0,  4, -3,  4, $30, 1 | VRAM_BANK_1
+	dsprite  0,  4, -2,  4, $31, 1 | VRAM_BANK_1
+	dsprite  0,  4, -1,  4, $32, 1 | VRAM_BANK_1
+	dsprite  0,  4,  0,  4, $33, 1 | VRAM_BANK_1
+	dsprite  0,  4,  1,  4, $34, 1 | VRAM_BANK_1
+	dsprite  1,  4, -3,  4, $40, 1 | VRAM_BANK_1
+	dsprite  1,  4, -2,  4, $41, 1 | VRAM_BANK_1
+	dsprite  1,  4, -1,  4, $42, 1 | VRAM_BANK_1
+	dsprite  1,  4,  0,  4, $43, 1 | VRAM_BANK_1
+	dsprite  1,  4,  1,  4, $44, 1 | VRAM_BANK_1
 
-.OAMData_75:
+.OAMData_IntroWooper:
 	db 16
-	dsprite -2,  0, -3,  4, $00, $0a
-	dsprite -2,  0, -2,  4, $01, $0a
-	dsprite -2,  0, -1,  4, $02, $0a
-	dsprite -2,  0,  0,  4, $03, $0a
-	dsprite -1,  0, -3,  4, $04, $0a
-	dsprite -1,  0, -2,  4, $05, $0a
-	dsprite -1,  0, -1,  4, $06, $0a
-	dsprite -1,  0,  0,  4, $07, $0a
-	dsprite  0,  0, -3,  4, $08, $0a
-	dsprite  0,  0, -2,  4, $09, $0a
-	dsprite  0,  0, -1,  4, $0a, $0a
-	dsprite  0,  0,  0,  4, $0b, $0a
-	dsprite  1,  0, -3,  4, $0c, $0a
-	dsprite  1,  0, -2,  4, $0d, $0a
-	dsprite  1,  0, -1,  4, $0e, $0a
-	dsprite  1,  0,  0,  4, $0f, $0a
+	dsprite -2,  0, -3,  4, $00, 2 | VRAM_BANK_1
+	dsprite -2,  0, -2,  4, $01, 2 | VRAM_BANK_1
+	dsprite -2,  0, -1,  4, $02, 2 | VRAM_BANK_1
+	dsprite -2,  0,  0,  4, $03, 2 | VRAM_BANK_1
+	dsprite -1,  0, -3,  4, $04, 2 | VRAM_BANK_1
+	dsprite -1,  0, -2,  4, $05, 2 | VRAM_BANK_1
+	dsprite -1,  0, -1,  4, $06, 2 | VRAM_BANK_1
+	dsprite -1,  0,  0,  4, $07, 2 | VRAM_BANK_1
+	dsprite  0,  0, -3,  4, $08, 2 | VRAM_BANK_1
+	dsprite  0,  0, -2,  4, $09, 2 | VRAM_BANK_1
+	dsprite  0,  0, -1,  4, $0a, 2 | VRAM_BANK_1
+	dsprite  0,  0,  0,  4, $0b, 2 | VRAM_BANK_1
+	dsprite  1,  0, -3,  4, $0c, 2 | VRAM_BANK_1
+	dsprite  1,  0, -2,  4, $0d, 2 | VRAM_BANK_1
+	dsprite  1,  0, -1,  4, $0e, 2 | VRAM_BANK_1
+	dsprite  1,  0,  0,  4, $0f, 2 | VRAM_BANK_1
 
-.OAMData_76:
+.OAMData_IntroUnown1:
 	db 1
 	dsprite -1,  4, -1,  4, $00, $00
 
-.OAMData_77:
+.OAMData_IntroUnown2:
 	db 3
 	dsprite  0,  0, -1,  0, $00, $00
 	dsprite -1,  0, -1,  0, $01, $00
 	dsprite -1,  0,  0,  0, $02, $00
 
-.OAMData_78:
+.OAMData_IntroUnown3:
 	db 7
 	dsprite  1,  0, -2,  0, $00, $00
 	dsprite  0,  0, -2,  0, $01, $00
@@ -1016,121 +1011,121 @@
 	dsprite -2,  0,  0,  0, $05, $00
 	dsprite -2,  0,  1,  0, $06, $00
 
-.OAMData_7a:
+.OAMData_IntroUnownF2_2:
 	db 8
-	dsprite -1,  0, -2,  0, $00, $00
-	dsprite -1,  0, -1,  0, $01, $00
-	dsprite -1,  0,  0,  0, $01, $20
-	dsprite -1,  0,  1,  0, $00, $20
-	dsprite  0,  0, -2,  0, $00, $40
-	dsprite  0,  0, -1,  0, $01, $40
-	dsprite  0,  0,  0,  0, $01, $60
-	dsprite  0,  0,  1,  0, $00, $60
+	dsprite -1,  0, -2,  0, $00, 0
+	dsprite -1,  0, -1,  0, $01, 0
+	dsprite -1,  0,  0,  0, $01, 0 | X_FLIP
+	dsprite -1,  0,  1,  0, $00, 0 | X_FLIP
+	dsprite  0,  0, -2,  0, $00, 0 | Y_FLIP
+	dsprite  0,  0, -1,  0, $01, 0 | Y_FLIP
+	dsprite  0,  0,  0,  0, $01, 0 | X_FLIP | Y_FLIP
+	dsprite  0,  0,  1,  0, $00, 0 | X_FLIP | Y_FLIP
 
-.OAMData_7b:
+.OAMData_IntroUnownF2_3:
 	db 12
-	dsprite -3,  0, -1,  0, $00, $00
-	dsprite -2,  0, -1,  0, $01, $00
-	dsprite -1,  0, -1,  0, $02, $00
-	dsprite -3,  0,  0,  0, $00, $20
-	dsprite -2,  0,  0,  0, $01, $20
-	dsprite -1,  0,  0,  0, $02, $20
-	dsprite  0,  0, -1,  0, $02, $40
-	dsprite  1,  0, -1,  0, $01, $40
-	dsprite  2,  0, -1,  0, $00, $40
-	dsprite  0,  0,  0,  0, $02, $60
-	dsprite  1,  0,  0,  0, $01, $60
-	dsprite  2,  0,  0,  0, $00, $60
+	dsprite -3,  0, -1,  0, $00, 0
+	dsprite -2,  0, -1,  0, $01, 0
+	dsprite -1,  0, -1,  0, $02, 0
+	dsprite -3,  0,  0,  0, $00, 0 | X_FLIP
+	dsprite -2,  0,  0,  0, $01, 0 | X_FLIP
+	dsprite -1,  0,  0,  0, $02, 0 | X_FLIP
+	dsprite  0,  0, -1,  0, $02, 0 | Y_FLIP
+	dsprite  1,  0, -1,  0, $01, 0 | Y_FLIP
+	dsprite  2,  0, -1,  0, $00, 0 | Y_FLIP
+	dsprite  0,  0,  0,  0, $02, 0 | X_FLIP | Y_FLIP
+	dsprite  1,  0,  0,  0, $01, 0 | X_FLIP | Y_FLIP
+	dsprite  2,  0,  0,  0, $00, 0 | X_FLIP | Y_FLIP
 
-.OAMData_7c:
+.OAMData_IntroUnownF2_4_5:
 	db 20
-	dsprite -3,  4, -2,  0, $00, $00
-	dsprite -3,  4, -1,  0, $01, $00
-	dsprite -3,  4,  0,  0, $02, $00
-	dsprite -3,  4,  1,  0, $03, $00
-	dsprite -2,  4, -2,  0, $04, $00
-	dsprite -2,  4, -1,  0, $05, $00
-	dsprite -2,  4,  0,  0, $06, $00
-	dsprite -2,  4,  1,  0, $07, $00
-	dsprite -1,  4, -2,  0, $08, $00
-	dsprite -1,  4, -1,  0, $09, $00
-	dsprite -1,  4,  0,  0, $0a, $00
-	dsprite -1,  4,  1,  0, $0b, $00
-	dsprite  0,  4, -2,  0, $0c, $00
-	dsprite  0,  4, -1,  0, $0d, $00
-	dsprite  0,  4,  0,  0, $0e, $00
-	dsprite  0,  4,  1,  0, $0f, $00
-	dsprite  1,  4, -2,  0, $10, $00
-	dsprite  1,  4, -1,  0, $11, $00
-	dsprite  1,  4,  0,  0, $12, $00
-	dsprite  1,  4,  1,  0, $13, $00
+	dsprite -3,  4, -2,  0, $00, 0
+	dsprite -3,  4, -1,  0, $01, 0
+	dsprite -3,  4,  0,  0, $02, 0
+	dsprite -3,  4,  1,  0, $03, 0
+	dsprite -2,  4, -2,  0, $04, 0
+	dsprite -2,  4, -1,  0, $05, 0
+	dsprite -2,  4,  0,  0, $06, 0
+	dsprite -2,  4,  1,  0, $07, 0
+	dsprite -1,  4, -2,  0, $08, 0
+	dsprite -1,  4, -1,  0, $09, 0
+	dsprite -1,  4,  0,  0, $0a, 0
+	dsprite -1,  4,  1,  0, $0b, 0
+	dsprite  0,  4, -2,  0, $0c, 0
+	dsprite  0,  4, -1,  0, $0d, 0
+	dsprite  0,  4,  0,  0, $0e, 0
+	dsprite  0,  4,  1,  0, $0f, 0
+	dsprite  1,  4, -2,  0, $10, 0
+	dsprite  1,  4, -1,  0, $11, 0
+	dsprite  1,  4,  0,  0, $12, 0
+	dsprite  1,  4,  1,  0, $13, 0
 
-.OAMData_7e:
+.OAMData_IntroSuicuneAway:
 	db 20
-	dsprite  0,  0,   1,  0, $00, $81
-	dsprite  1,  0,   2,  0, $00, $81
-	dsprite  2,  0,   3,  0, $00, $81
-	dsprite  3,  0,   4,  0, $00, $81
-	dsprite  4,  0,   5,  0, $00, $81
-	dsprite  3,  0,   6,  0, $00, $81
-	dsprite  2,  0,   7,  0, $00, $81
-	dsprite  1,  0,   8,  0, $00, $81
-	dsprite  0,  0,   9,  0, $00, $81
-	dsprite  1,  0,  10,  0, $00, $81
-	dsprite  2,  0,  11,  0, $00, $81
-	dsprite  3,  0,  12,  0, $00, $81
-	dsprite  4,  0,  13,  0, $00, $81
-	dsprite  3,  0,  14,  0, $00, $81
-	dsprite  2,  0,  15,  0, $00, $81
-	dsprite  1,  0,  16,  0, $00, $81
-	dsprite  0,  0, -15,  0, $00, $81
-	dsprite  1,  0, -14,  0, $00, $81
-	dsprite  2,  0, -13,  0, $00, $81
-	dsprite  3,  0, -12,  0, $00, $81
+	dsprite  0,  0,   1,  0, $00, 1 | BEHIND_BG
+	dsprite  1,  0,   2,  0, $00, 1 | BEHIND_BG
+	dsprite  2,  0,   3,  0, $00, 1 | BEHIND_BG
+	dsprite  3,  0,   4,  0, $00, 1 | BEHIND_BG
+	dsprite  4,  0,   5,  0, $00, 1 | BEHIND_BG
+	dsprite  3,  0,   6,  0, $00, 1 | BEHIND_BG
+	dsprite  2,  0,   7,  0, $00, 1 | BEHIND_BG
+	dsprite  1,  0,   8,  0, $00, 1 | BEHIND_BG
+	dsprite  0,  0,   9,  0, $00, 1 | BEHIND_BG
+	dsprite  1,  0,  10,  0, $00, 1 | BEHIND_BG
+	dsprite  2,  0,  11,  0, $00, 1 | BEHIND_BG
+	dsprite  3,  0,  12,  0, $00, 1 | BEHIND_BG
+	dsprite  4,  0,  13,  0, $00, 1 | BEHIND_BG
+	dsprite  3,  0,  14,  0, $00, 1 | BEHIND_BG
+	dsprite  2,  0,  15,  0, $00, 1 | BEHIND_BG
+	dsprite  1,  0,  16,  0, $00, 1 | BEHIND_BG
+	dsprite  0,  0, -15,  0, $00, 1 | BEHIND_BG
+	dsprite  1,  0, -14,  0, $00, 1 | BEHIND_BG
+	dsprite  2,  0, -13,  0, $00, 1 | BEHIND_BG
+	dsprite  3,  0, -12,  0, $00, 1 | BEHIND_BG
 
-.OAMData_7f:
+.OAMData_Celebi:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $02
-	dsprite -1,  0,  0,  0, $01, $02
-	dsprite  0,  0, -1,  0, $02, $02
-	dsprite  0,  0,  0,  0, $03, $02
+	dsprite -1,  0, -1,  0, $00, PAL_OW_GREEN
+	dsprite -1,  0,  0,  0, $01, PAL_OW_GREEN
+	dsprite  0,  0, -1,  0, $02, PAL_OW_GREEN
+	dsprite  0,  0,  0,  0, $03, PAL_OW_GREEN
 
-.OAMData_81:
+.OAMData_GameFreakLogo1_3:
 	db 9
-	dsprite -2,  0, -2,  4, $00, $01
-	dsprite -2,  0, -1,  4, $01, $01
-	dsprite -2,  0,  0,  4, $02, $01
-	dsprite -1,  0, -2,  4, $10, $01
-	dsprite -1,  0, -1,  4, $11, $01
-	dsprite -1,  0,  0,  4, $12, $01
-	dsprite  0,  0, -2,  4, $20, $01
-	dsprite  0,  0, -1,  4, $21, $01
-	dsprite  0,  0,  0,  4, $22, $01
+	dsprite -2,  0, -2,  4, $00, 1
+	dsprite -2,  0, -1,  4, $01, 1
+	dsprite -2,  0,  0,  4, $02, 1
+	dsprite -1,  0, -2,  4, $10, 1
+	dsprite -1,  0, -1,  4, $11, 1
+	dsprite -1,  0,  0,  4, $12, 1
+	dsprite  0,  0, -2,  4, $20, 1
+	dsprite  0,  0, -1,  4, $21, 1
+	dsprite  0,  0,  0,  4, $22, 1
 
-.OAMData_84:
+.OAMData_GameFreakLogo4_11:
 	db 24
-	dsprite -5,  0, -2,  4, $00, $01
-	dsprite -5,  0, -1,  4, $01, $01
-	dsprite -5,  0,  0,  4, $02, $01
-	dsprite -5,  0,  1,  4, $03, $01
-	dsprite -4,  0, -2,  4, $10, $01
-	dsprite -4,  0, -1,  4, $11, $01
-	dsprite -4,  0,  0,  4, $12, $01
-	dsprite -4,  0,  1,  4, $13, $01
-	dsprite -3,  0, -2,  4, $20, $01
-	dsprite -3,  0, -1,  4, $21, $01
-	dsprite -3,  0,  0,  4, $22, $01
-	dsprite -3,  0,  1,  4, $23, $01
-	dsprite -2,  0, -2,  4, $30, $01
-	dsprite -2,  0, -1,  4, $31, $01
-	dsprite -2,  0,  0,  4, $32, $01
-	dsprite -2,  0,  1,  4, $33, $01
-	dsprite -1,  0, -2,  4, $40, $01
-	dsprite -1,  0, -1,  4, $41, $01
-	dsprite -1,  0,  0,  4, $42, $01
-	dsprite -1,  0,  1,  4, $43, $01
-	dsprite  0,  0, -2,  4, $50, $01
-	dsprite  0,  0, -1,  4, $51, $01
-	dsprite  0,  0,  0,  4, $52, $01
-	dsprite  0,  0,  1,  4, $53, $01
+	dsprite -5,  0, -2,  4, $00, 1
+	dsprite -5,  0, -1,  4, $01, 1
+	dsprite -5,  0,  0,  4, $02, 1
+	dsprite -5,  0,  1,  4, $03, 1
+	dsprite -4,  0, -2,  4, $10, 1
+	dsprite -4,  0, -1,  4, $11, 1
+	dsprite -4,  0,  0,  4, $12, 1
+	dsprite -4,  0,  1,  4, $13, 1
+	dsprite -3,  0, -2,  4, $20, 1
+	dsprite -3,  0, -1,  4, $21, 1
+	dsprite -3,  0,  0,  4, $22, 1
+	dsprite -3,  0,  1,  4, $23, 1
+	dsprite -2,  0, -2,  4, $30, 1
+	dsprite -2,  0, -1,  4, $31, 1
+	dsprite -2,  0,  0,  4, $32, 1
+	dsprite -2,  0,  1,  4, $33, 1
+	dsprite -1,  0, -2,  4, $40, 1
+	dsprite -1,  0, -1,  4, $41, 1
+	dsprite -1,  0,  0,  4, $42, 1
+	dsprite -1,  0,  1,  4, $43, 1
+	dsprite  0,  0, -2,  4, $50, 1
+	dsprite  0,  0, -1,  4, $51, 1
+	dsprite  0,  0,  0,  4, $52, 1
+	dsprite  0,  0,  1,  4, $53, 1
 ; 8e706
--- a/data/sprite_anim_seqs.asm
+++ b/data/sprite_anim_seqs.asm
@@ -1,94 +1,49 @@
 SpriteAnimSeqData: ; 8d1c4
 ; entries correspond to SPRITE_ANIM_INDEX_* constants
 	; frameset sequence, tile
-; SPRITE_ANIM_INDEX_PARTY_MON
-	db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_PARTY_MON, $00
-; SPRITE_ANIM_INDEX_01
-	db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00
-; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
-	db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05
-; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
-	db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO, SPRITE_ANIM_SEQ_GAMEFREAK_LOGO, $00
-; SPRITE_ANIM_INDEX_GS_INTRO_STAR
-	db SPRITE_ANIM_FRAMESET_GS_INTRO_STAR, SPRITE_ANIM_SEQ_GS_INTRO_STAR, $06
-; SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
-	db SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE, SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE, $06
-; SPRITE_ANIM_INDEX_SLOTS_GOLEM
-	db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM, SPRITE_ANIM_SEQ_SLOTS_GOLEM, $07
-; SPRITE_ANIM_INDEX_SLOTS_CHANSEY
-	db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY, SPRITE_ANIM_SEQ_SLOTS_CHANSEY, $07
-; SPRITE_ANIM_INDEX_SLOTS_EGG
-	db SPRITE_ANIM_FRAMESET_SLOTS_EGG, SPRITE_ANIM_SEQ_SLOTS_EGG, $07
-; SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
-	db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_MAIL_CURSOR, $05
-; SPRITE_ANIM_INDEX_RED_WALK
-	db SPRITE_ANIM_FRAMESET_RED_WALK, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_0B
-	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08
-; SPRITE_ANIM_INDEX_DUMMY_GAME
-	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08
-; SPRITE_ANIM_INDEX_0D
-	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08
-; SPRITE_ANIM_INDEX_TRADE_POKE_BALL
-	db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_TRADE_POKE_BALL, $00
-; SPRITE_ANIM_INDEX_TRADE_POOF
-	db SPRITE_ANIM_FRAMESET_TRADE_POOF, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
-	db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE, SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE, $00
-; SPRITE_ANIM_INDEX_TRADEMON_ICON
-	db SPRITE_ANIM_FRAMESET_TRADEMON_ICON, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00
-; SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
-	db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE, SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE, $00
-; SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
-	db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00
-; SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
-	db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB, SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB, $00
-; SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
-	db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_LEAF
-	db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_CUT_LEAVES, $00
-; SPRITE_ANIM_INDEX_CUT_TREE
-	db SPRITE_ANIM_FRAMESET_CUT_TREE, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_FLY_LEAF
-	db SPRITE_ANIM_FRAMESET_LEAF, SPRITE_ANIM_SEQ_FLY_LEAF, $00
-; SPRITE_ANIM_INDEX_EGG_CRACK
-	db SPRITE_ANIM_FRAMESET_EGG_CRACK, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_1A
-	db SPRITE_ANIM_FRAMESET_24, SPRITE_ANIM_SEQ_19, $00
-; SPRITE_ANIM_INDEX_HEADBUTT
-	db SPRITE_ANIM_FRAMESET_HEADBUTT, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_EGG_HATCH
-	db SPRITE_ANIM_FRAMESET_EGG_HATCH, SPRITE_ANIM_SEQ_REVEAL_NEW_MON, $00
-; SPRITE_ANIM_INDEX_1D
-	db SPRITE_ANIM_FRAMESET_26, SPRITE_ANIM_SEQ_1A, $00
-; SPRITE_ANIM_INDEX_BLUE_WALK
-	db SPRITE_ANIM_FRAMESET_BLUE_WALK, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
-	db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_20
-	db SPRITE_ANIM_FRAMESET_2F, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_21
-	db SPRITE_ANIM_FRAMESET_30, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_22
-	db SPRITE_ANIM_FRAMESET_31, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_23
-	db SPRITE_ANIM_FRAMESET_32, SPRITE_ANIM_SEQ_1B, $00
-; SPRITE_ANIM_INDEX_24
-	db SPRITE_ANIM_FRAMESET_33, SPRITE_ANIM_SEQ_1C, $00
-; SPRITE_ANIM_INDEX_25
-	db SPRITE_ANIM_FRAMESET_34, SPRITE_ANIM_SEQ_NULL, $00
-; SPRITE_ANIM_INDEX_INTRO_SUICUNE
-	db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE, SPRITE_ANIM_SEQ_INTRO_SUICUNE, $00
-; SPRITE_ANIM_INDEX_INTRO_PICHU
-	db SPRITE_ANIM_FRAMESET_INTRO_PICHU, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00
-; SPRITE_ANIM_INDEX_INTRO_WOOPER
-	db SPRITE_ANIM_FRAMESET_INTRO_WOOPER, SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER, $00
-; SPRITE_ANIM_INDEX_INTRO_UNOWN
-	db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1, SPRITE_ANIM_SEQ_INTRO_UNOWN, $00
-; SPRITE_ANIM_INDEX_INTRO_UNOWN_F
-	db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F, SPRITE_ANIM_SEQ_INTRO_UNOWN_F, $00
-; SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
-	db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY, SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY, $00
-; SPRITE_ANIM_INDEX_CELEBI
-	db SPRITE_ANIM_FRAMESET_CELEBI_LEFT, SPRITE_ANIM_SEQ_NULL, $00 ; 2c
+	db SPRITE_ANIM_FRAMESET_PARTY_MON,               SPRITE_ANIM_SEQ_PARTY_MON,            $00 ; SPRITE_ANIM_INDEX_PARTY_MON
+	db SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL,          SPRITE_ANIM_SEQ_GS_TITLE_TRAIL,       $00 ; SPRITE_ANIM_INDEX_GS_TITLE_TRAIL
+	db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR,       SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05 ; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
+	db SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO,          SPRITE_ANIM_SEQ_GAMEFREAK_LOGO,       $00 ; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
+	db SPRITE_ANIM_FRAMESET_GS_INTRO_STAR,           SPRITE_ANIM_SEQ_GS_INTRO_STAR,        $06 ; SPRITE_ANIM_INDEX_GS_INTRO_STAR
+	db SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE,        SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE,     $06 ; SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
+	db SPRITE_ANIM_FRAMESET_SLOTS_GOLEM,             SPRITE_ANIM_SEQ_SLOTS_GOLEM,          $07 ; SPRITE_ANIM_INDEX_SLOTS_GOLEM
+	db SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY,           SPRITE_ANIM_SEQ_SLOTS_CHANSEY,        $07 ; SPRITE_ANIM_INDEX_SLOTS_CHANSEY
+	db SPRITE_ANIM_FRAMESET_SLOTS_EGG,               SPRITE_ANIM_SEQ_SLOTS_EGG,            $07 ; SPRITE_ANIM_INDEX_SLOTS_EGG
+	db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR,       SPRITE_ANIM_SEQ_MAIL_CURSOR,          $05 ; SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
+	db SPRITE_ANIM_FRAMESET_RED_WALK,                SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_RED_WALK
+	db SPRITE_ANIM_FRAMESET_STILL_CURSOR,            SPRITE_ANIM_SEQ_FOR_UNUSED_CURSOR,    $08 ; SPRITE_ANIM_INDEX_UNUSED_CURSOR
+	db SPRITE_ANIM_FRAMESET_STILL_CURSOR,            SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR,    $08 ; SPRITE_ANIM_INDEX_DUMMY_GAME
+	db SPRITE_ANIM_FRAMESET_STILL_CURSOR,            SPRITE_ANIM_SEQ_POKEGEAR_ARROW,       $08 ; SPRITE_ANIM_INDEX_POKEGEAR_ARROW
+	db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL,         SPRITE_ANIM_SEQ_TRADE_POKE_BALL,      $00 ; SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+	db SPRITE_ANIM_FRAMESET_TRADE_POOF,              SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_TRADE_POOF
+	db SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE,        SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE,     $00 ; SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
+	db SPRITE_ANIM_FRAMESET_TRADEMON_ICON,           SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE,     $00 ; SPRITE_ANIM_INDEX_TRADEMON_ICON
+	db SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE,         SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE,     $00 ; SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
+	db SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT, SPRITE_ANIM_SEQ_REVEAL_NEW_MON,       $00 ; SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
+	db SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB,       SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB,    $00 ; SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
+	db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED,        SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
+	db SPRITE_ANIM_FRAMESET_LEAF,                    SPRITE_ANIM_SEQ_CUT_LEAVES,           $00 ; SPRITE_ANIM_INDEX_LEAF
+	db SPRITE_ANIM_FRAMESET_CUT_TREE,                SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_CUT_TREE
+	db SPRITE_ANIM_FRAMESET_LEAF,                    SPRITE_ANIM_SEQ_FLY_LEAF,             $00 ; SPRITE_ANIM_INDEX_FLY_LEAF
+	db SPRITE_ANIM_FRAMESET_EGG_CRACK,               SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_EGG_CRACK
+	db SPRITE_ANIM_FRAMESET_24,                      SPRITE_ANIM_SEQ_19,                   $00 ; SPRITE_ANIM_INDEX_1A
+	db SPRITE_ANIM_FRAMESET_HEADBUTT,                SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_HEADBUTT
+	db SPRITE_ANIM_FRAMESET_EGG_HATCH,               SPRITE_ANIM_SEQ_REVEAL_NEW_MON,       $00 ; SPRITE_ANIM_INDEX_EGG_HATCH
+	db SPRITE_ANIM_FRAMESET_26,                      SPRITE_ANIM_SEQ_1A,                   $00 ; SPRITE_ANIM_INDEX_1D
+	db SPRITE_ANIM_FRAMESET_BLUE_WALK,               SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_BLUE_WALK
+	db SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE,       SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
+	db SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL,  SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+	db SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL,    SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+	db SPRITE_ANIM_FRAMESET_FOR_MOBILE_22,           SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_MOBILE_22
+	db SPRITE_ANIM_FRAMESET_FOR_MOBILE_23,           SPRITE_ANIM_SEQ_FOR_MOBILE_23,        $00 ; SPRITE_ANIM_INDEX_MOBILE_23
+	db SPRITE_ANIM_FRAMESET_FOR_MOBILE_24,           SPRITE_ANIM_SEQ_FOR_MOBILE_24,        $00 ; SPRITE_ANIM_INDEX_MOBILE_24
+	db SPRITE_ANIM_FRAMESET_FOR_MOBILE_25,           SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_MOBILE_25
+	db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE,           SPRITE_ANIM_SEQ_INTRO_SUICUNE,        $00 ; SPRITE_ANIM_INDEX_INTRO_SUICUNE
+	db SPRITE_ANIM_FRAMESET_INTRO_PICHU,             SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER,   $00 ; SPRITE_ANIM_INDEX_INTRO_PICHU
+	db SPRITE_ANIM_FRAMESET_INTRO_WOOPER,            SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER,   $00 ; SPRITE_ANIM_INDEX_INTRO_WOOPER
+	db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1,           SPRITE_ANIM_SEQ_INTRO_UNOWN,          $00 ; SPRITE_ANIM_INDEX_INTRO_UNOWN
+	db SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F,           SPRITE_ANIM_SEQ_INTRO_UNOWN_F,        $00 ; SPRITE_ANIM_INDEX_INTRO_UNOWN_F
+	db SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY,      SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY,   $00 ; SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
+	db SPRITE_ANIM_FRAMESET_CELEBI_LEFT,             SPRITE_ANIM_SEQ_NULL,                 $00 ; SPRITE_ANIM_INDEX_CELEBI
 ; 8d24b
--- /dev/null
+++ b/docs/bugs_and_glitches.md
@@ -1,0 +1,1029 @@
+# Bugs and Glitches
+
+
+## Thick Club and Light Ball can decrease damage done with boosted (Special) Attack
+
+([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
+
+This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](battle/effect_commands.asm):
+
+```asm
+; Double the stat
+	sla l
+	rl h
+	ret
+```
+
+**Fix:**
+
+```asm
+; Double the stat
+	sla l
+	rl h
+
+	ld a, 999 / $100
+	cp h
+	jr c, .cap
+	ld a, 999 % $100
+	cp l
+	ret nc
+
+.cap
+	ld h, 999 / $100
+	ld l, 999 % $100
+	ret
+```
+
+
+## Metal Powder can increase damage taken with boosted (Special) Defense
+
+([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
+
+This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](battle/effect_commands.asm):
+
+```asm
+	ld a, c
+	srl a
+	add c
+	ld c, a
+	ret nc
+
+	srl b
+	ld a, b
+	and a
+	jr nz, .done
+	inc b
+.done
+	scf
+	rr c
+	ret
+```
+
+**Fix:**
+
+```asm
+	ld a, c
+	srl a
+	add c
+	ld c, a
+	ret nc
+
+	srl b
+	ld a, b
+	and a
+	jr nz, .done
+	inc b
+.done
+	scf
+	rr c
+
+	ld a, 999 / $100
+	cp b
+	jr c, .cap
+	ld a, 999 % $100
+	cp c
+	ret nc
+
+.cap
+	ld b, 999 / $100
+	ld c, 999 % $100
+	ret
+```
+
+
+## Belly Drum sharply boosts Attack even with under 50% HP
+
+([Video](https://www.youtube.com/watch?v=zuCLMikWo4Y))
+
+This is a bug with `BattleCommand_BellyDrum` in [battle/effect_commands.asm](battle/effect_commands.asm):
+
+```asm
+BattleCommand_BellyDrum: ; 37c1a
+; bellydrum
+; This command is buggy because it raises the user's attack
+; before checking that it has enough HP to use the move.
+; Swap the order of these two blocks to fix.
+	call BattleCommand_AttackUp2
+	ld a, [AttackMissed]
+	and a
+	jr nz, .failed
+
+	callab GetHalfMaxHP
+	callab CheckUserHasEnoughHP
+	jr nc, .failed
+```
+
+**Fix:**
+
+```asm
+BattleCommand_BellyDrum: ; 37c1a
+; bellydrum
+	callab GetHalfMaxHP
+	callab CheckUserHasEnoughHP
+	jr nc, .failed
+
+	call BattleCommand_AttackUp2
+	ld a, [AttackMissed]
+	and a
+	jr nz, .failed
+```
+
+
+## HP bar animation is slow for high HP
+
+([Video](https://www.youtube.com/watch?v=SE-BfsFgZVM))
+
+This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](engine/anim_hp_bar.asm):
+
+```asm
+	; This routine is buggy. The result from ComputeHPBarPixels is stored
+	; in e. However, the pop de opcode deletes this result before it is even
+	; used. The game then proceeds as though it never deleted that output.
+	; To fix, uncomment the line below.
+	call ComputeHPBarPixels
+	; ld a, e
+	pop bc
+	pop de
+	pop hl
+	ld a, e ; Comment or delete this line to fix the above bug.
+	ld hl, wCurHPBarPixels
+	cp [hl]
+	jr z, .loop
+	ld [hl], a
+	and a
+	ret
+```
+
+**Fix:** Move `ld a, e` to right after `call ComputeHPBarPixels`.
+
+
+## HP bar animation off-by-one error for low HP
+
+([Video](https://www.youtube.com/watch?v=9KyNVIZxJvI))
+
+This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](engine/anim_hp_bar.asm):
+
+```asm
+	ld b, 0
+; This routine is buggy. If [wCurHPAnimMaxHP] * [wCurHPBarPixels] is divisible
+; by 48, the loop runs one extra time. To fix, uncomment the line below.
+.loop
+	ld a, l
+	sub 6 * 8
+	ld l, a
+	ld a, h
+	sbc $0
+	ld h, a
+	; jr z, .done
+	jr c, .done
+	inc b
+	jr .loop
+```
+
+**Fix:** Uncomment `jr z, .done`.
+
+
+## Experience underflow for level 1 Pokémon with Medium-Slow growth rate
+
+([Video](https://www.youtube.com/watch?v=SXH8u0plHrE))
+
+This can bring Pokémon straight from level 1 to 100 by gaining just a few experience points.
+
+This is a bug with `CalcExpAtLevel` in [main.asm](main.asm):
+
+```asm
+CalcExpAtLevel: ; 50e47
+; (a/b)*n**3 + c*n**2 + d*n - e
+	ld a, [BaseGrowthRate]
+	add a
+	add a
+	ld c, a
+	ld b, 0
+	ld hl, GrowthRates
+	add hl, bc
+```
+
+**Fix:**
+
+```asm
+CalcExpAtLevel: ; 50e47
+; (a/b)*n**3 + c*n**2 + d*n - e
+	ld a, d
+	cp 1
+	jr nz, .UseExpFormula
+; Pokémon have 0 experience at level 1
+	xor a
+	ld hl, hProduct
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ret
+
+.UseExpFormula
+	ld a, [BaseGrowthRate]
+	add a
+	add a
+	ld c, a
+	ld b, 0
+	ld hl, GrowthRates
+	add hl, bc
+```
+
+
+## Five-digit experience gain is printed incorrectly
+
+([Video](https://www.youtube.com/watch?v=o54VjpAEoO8))
+
+This is a bug with `Text_ABoostedStringBuffer2ExpPoints` and `Text_StringBuffer2ExpPoints` in [text/common_2.asm](text/common_2.asm):
+
+```asm
+Text_ABoostedStringBuffer2ExpPoints::
+	text ""
+	line "a boosted"
+	cont "@"
+	deciram StringBuffer2, 2, 4
+	text " EXP. Points!"
+	prompt
+
+Text_StringBuffer2ExpPoints::
+	text ""
+	line "@"
+	deciram StringBuffer2, 2, 4
+	text " EXP. Points!"
+	prompt
+```
+
+**Fix:** Change both `deciram StringBuffer2, 2, 4` to `deciram StringBuffer2, 2, 5`.
+
+
+## NPC use of Full Heal or Full Restore does not cure Nightmare status
+
+([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=322))
+
+This is a bug with `AI_HealStatus` in [battle/ai/items.asm](battle/ai/items.asm):
+
+```asm
+AI_HealStatus: ; 384e0
+	ld a, [CurOTMon]
+	ld hl, OTPartyMon1Status
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call AddNTimes
+	xor a
+	ld [hl], a
+	ld [EnemyMonStatus], a
+	; Bug: this should reset SUBSTATUS_NIGHTMARE too
+	; Uncomment the lines below to fix
+	; ld hl, EnemySubStatus1
+	; res SUBSTATUS_NIGHTMARE, [hl]
+	ld hl, EnemySubStatus5
+	res SUBSTATUS_TOXIC, [hl]
+	ret
+; 384f7
+```
+
+**Fix:** Uncomment `ld hl, EnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`.
+
+
+## "Smart" AI encourages Mean Look if its own Pokémon is badly poisoned
+
+([Video](https://www.youtube.com/watch?v=cygMO-zHTls))
+
+This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](battle/ai/scoring.asm):
+
+```asm
+; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
+; Should check PlayerSubStatus5 instead.
+	ld a, [EnemySubStatus5]
+	bit SUBSTATUS_TOXIC, a
+	jr nz, .asm_38e26
+```
+
+**Fix:** Change `EnemySubStatus5` to `PlayerSubStatus5`.
+
+
+## A Disabled, PP Up–enhanced move may not trigger automatic Struggling
+
+([Video](https://www.youtube.com/watch?v=1v9x4SgMggs))
+
+This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](battle/core.asm):
+
+```asm
+.done
+	; Bug: this will result in a move with PP Up confusing the game.
+	; Replace with "and $3f" to fix.
+	and a
+	ret nz
+
+.force_struggle
+	ld hl, BattleText_PkmnHasNoMovesLeft
+	call StdBattleTextBox
+	ld c, 60
+	call DelayFrames
+	xor a
+	ret
+```
+
+**Fix:** Change `and a` to `and $3f`.
+
+
+## Counter and Mirror Coat still work if the opponent uses an item
+
+([Video](https://www.youtube.com/watch?v=uRYyzKRatFk))
+
+*To do:* Identify specific code causing this bug and fix it.
+
+
+## Present damage is incorrect in link battles
+
+([Video](https://www.youtube.com/watch?v=XJaQoKtrEuw))
+
+This bug existed for all battles in Gold and Silver, and was only fixed for single-player battles in Crystal to preserve link compatibility.
+
+This is a bug with `BattleCommand_Present` in [battle/effects/present.asm](battle/effects/present.asm):
+
+```asm
+BattleCommand_Present: ; 37874
+; present
+
+	ld a, [wLinkMode]
+	cp LINK_COLOSSEUM
+	jr z, .colosseum_skippush
+	push bc
+	push de
+.colosseum_skippush
+
+	call BattleCommand_Stab
+
+	ld a, [wLinkMode]
+	cp LINK_COLOSSEUM
+	jr z, .colosseum_skippop
+	pop de
+	pop bc
+.colosseum_skippop
+```
+
+**Fix:**
+
+```asm
+BattleCommand_Present: ; 37874
+; present
+
+	push bc
+	push de
+	call BattleCommand_Stab
+	pop de
+	pop bc
+```
+
+
+## BRN/PSN/PAR do not affect catch rate
+
+This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+
+```asm
+.statuscheck
+; This routine is buggy. It was intended that SLP and FRZ provide a higher
+; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
+; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
+; benefit.
+; Uncomment the line below to fix this.
+	ld b, a
+	ld a, [EnemyMonStatus]
+	and 1 << FRZ | SLP
+	ld c, 10
+	jr nz, .addstatus
+	; ld a, [EnemyMonStatus]
+	and a
+	ld c, 5
+	jr nz, .addstatus
+	ld c, 0
+.addstatus
+	ld a, b
+	add c
+	jr nc, .max_1
+	ld a, $ff
+.max_1
+```
+
+**Fix:** Uncomment `ld a, [EnemyMonStatus]`.
+
+
+## Moon Ball does not boost catch rate
+
+This is a bug with `MoonBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+
+```asm
+MoonBallMultiplier:
+; This function is buggy.
+; Intent:  multiply catch rate by 4 if mon evolves with moon stone
+; Reality: no boost
+
+...
+
+; Moon Stone's constant from Pokémon Red is used.
+; No Pokémon evolve with Burn Heal,
+; so Moon Balls always have a catch rate of 1×.
+	push bc
+	ld a, BANK(EvosAttacks)
+	call GetFarByte
+	cp MOON_STONE_RED ; BURN_HEAL
+	pop bc
+	ret nz
+```
+
+**Fix:** Change `MOON_STONE_RED` to `MOON_STONE`.
+
+
+## Love Ball boosts catch rate for the wrong gender
+
+This is a bug with `LoveBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+
+```asm
+LoveBallMultiplier:
+; This function is buggy.
+; Intent:  multiply catch rate by 8 if mons are of same species, different sex
+; Reality: multiply catch rate by 8 if mons are of same species, same sex
+
+...
+
+	ld a, d
+	pop de
+	cp d
+	pop bc
+	ret nz ; for the intended effect, this should be "ret z"
+```
+
+**Fix:** Change `ret nz` to `ret z`.
+
+
+## Fast Ball only boosts catch rate for three Pokémon
+
+This is a bug with `FastBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+
+```asm
+FastBallMultiplier:
+; This function is buggy.
+; Intent:  multiply catch rate by 4 if enemy mon is in one of the three
+;          FleeMons tables.
+; Reality: multiply catch rate by 4 if enemy mon is one of the first three in
+;          the first FleeMons table.
+
+...
+
+	inc hl
+	cp -1
+	jr z, .next
+	cp c
+	jr nz, .next ; for the intended effect, this should be "jr nz, .loop"
+	sla b
+	jr c, .max
+```
+
+**Fix:** Change `jr nz, .next` to `jr nz, .loop`.
+
+
+## Friend Ball catches sent to the PC overwrite the wrong Pokémon's happiness
+
+This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+
+```asm
+	ld a, [CurItem]
+	cp FRIEND_BALL
+	jr nz, .SkipBoxMonFriendBall
+	; Bug: overwrites the happiness of the first mon in the box!
+	ld a, FRIEND_BALL_HAPPINESS
+	ld [sBoxMon1Happiness], a
+.SkipBoxMonFriendBall:
+```
+
+`sBoxMon1Happiness` is written *before* the Friend Ball Pokémon is deposited.
+
+
+## Dragon Scale, not Dragon Fang, boosts Dragon-type moves
+
+This is a bug with `ItemAttributes` in [items/item_attributes.asm](items/item_attributes.asm):
+
+```asm
+; DRAGON FANG
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+
+...
+
+; DRAGON SCALE
+	item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+```
+
+**Fix:** Move `HELD_DRAGON_BOOST` to the `DRAGON FANG` attributes and `0` to `DRAGON SCALE`.
+
+
+## Daisy's massages don't always increase happiness
+
+This is a bug with `MassageOrHaircut` in [event/special.asm](event/special.asm):
+
+```asm
+; Bug: Subtracting $ff from $ff fails to set c.
+; This can result in overflow into the next data array.
+; In the case of getting a massage from Daisy, we bleed
+; into CopyPokemonName_Buffer1_Buffer3, which passes
+; $d0 to ChangeHappiness and returns $73 to the script.
+; The end result is that there is a 0.4% chance your
+; Pokemon's happiness will not change at all.
+.loop
+	sub [hl]
+	jr c, .ok
+	inc hl
+	inc hl
+	inc hl
+	jr .loop
+
+.ok
+	inc hl
+	ld a, [hli]
+	ld [ScriptVar], a
+	ld c, [hl]
+	call ChangeHappiness
+	ret
+
+...
+
+Data_DaisyMassage: ; 746b
+	db $ff, 2, HAPPINESS_MASSAGE ; 99.6% chance
+
+CopyPokemonName_Buffer1_Buffer3: ; 746e
+	ld hl, StringBuffer1
+	ld de, StringBuffer3
+	ld bc, PKMN_NAME_LENGTH
+	jp CopyBytes
+```
+
+**Fix:**
+
+```asm
+Data_DaisyMassage: ; 746b
+	db $80, 2, HAPPINESS_MASSAGE ; 50% chance
+	db $ff, 2, HAPPINESS_MASSAGE ; 50% chance
+```
+
+
+## Magikarp in Lake of Rage are shorter, not longer
+
+This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](battle/core.asm):
+
+```asm
+.CheckMagikarpArea:
+; The z checks are supposed to be nz
+; Instead, all maps in GROUP_LAKE_OF_RAGE (mahogany area)
+; and routes 20 and 44 are treated as Lake of Rage
+
+; This also means Lake of Rage Magikarp can be smaller than ones
+; caught elsewhere rather than the other way around
+
+; Intended behavior enforces a minimum size at Lake of Rage
+; The real behavior prevents size flooring in the Lake of Rage area
+	ld a, [MapGroup]
+	cp GROUP_LAKE_OF_RAGE
+	jr z, .Happiness
+	ld a, [MapNumber]
+	cp MAP_LAKE_OF_RAGE
+	jr z, .Happiness
+```
+
+**Fix:** Change both `jr z, .Happiness` to `jr nz, .Happiness`.
+
+
+## Battle transitions fail to account for the enemy's level
+
+([Video](https://www.youtube.com/watch?v=eij_1060SMc))
+
+This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle_start.asm](engine/battle_start.asm):
+
+```asm
+StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
+; The screen flashes a different number of times depending on the level of
+; your lead Pokemon relative to the opponent's.
+; BUG: BattleMonLevel and EnemyMonLevel are not set at this point, so whatever
+; values happen to be there will determine the animation.
+	ld de, 0
+	ld a, [BattleMonLevel]
+	add 3
+	ld hl, EnemyMonLevel
+	cp [hl]
+	jr nc, .okay
+	set 0, e
+.okay
+	ld a, [wPermission]
+	cp CAVE
+	jr z, .okay2
+	cp PERM_5
+	jr z, .okay2
+	cp DUNGEON
+	jr z, .okay2
+	set 1, e
+.okay2
+	ld hl, .StartingPoints
+	add hl, de
+	ld a, [hl]
+	ld [wJumptableIndex], a
+	ret
+; 8c38f (23:438f)
+
+.StartingPoints: ; 8c38f
+	db 1,  9
+	db 16, 24
+; 8c393
+```
+
+*To do:* Fix this bug.
+
+
+## No bump noise if standing on tile `$3E`
+
+This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](engine/player_movement.asm):
+
+```asm
+; Bug: Since no case is made for STANDING here, it will check
+; [.edgewarps + $ff]. This resolves to $3e at $8035a.
+; This causes wd041 to be nonzero when standing on tile $3e,
+; making bumps silent.
+
+	ld a, [WalkingDirection]
+	ld e, a
+	ld d, 0
+	ld hl, .EdgeWarps
+	add hl, de
+	ld a, [PlayerStandingTile]
+	cp [hl]
+	jr nz, .not_warp
+
+	ld a, 1
+	ld [wd041], a
+	ld a, [WalkingDirection]
+	cp STANDING
+	jr z, .not_warp
+```
+
+**Fix:**
+
+```asm
+	ld a, [WalkingDirection]
+	cp STANDING
+	jr z, .not_warp
+	ld e, a
+	ld d, 0
+	ld hl, .EdgeWarps
+	add hl, de
+	ld a, [PlayerStandingTile]
+	cp [hl]
+	jr nz, .not_warp
+
+	ld a, 1
+	ld [wd041], a
+	ld a, [WalkingDirection]
+```
+
+
+## `LoadMetatiles` wrap around past 128 blocks
+
+[home/map.asm](home/map.asm):
+
+```asm
+	; Set hl to the address of the current metatile data ([TilesetBlocksAddress] + (a) tiles).
+	; This is buggy; it wraps around past 128 blocks.
+	; To fix, uncomment the line below.
+	add a ; Comment or delete this line to fix the above bug.
+	ld l, a
+	ld h, 0
+	; add hl, hl
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	ld a, [TilesetBlocksAddress]
+	add l
+	ld l, a
+	ld a, [TilesetBlocksAddress + 1]
+	adc h
+	ld h, a
+```
+
+**Fix:** Delete `add a` and uncomment `add hl, hl`.
+
+
+## Surfing directly across a map connection does not load the new map
+
+([Video](https://www.youtube.com/watch?v=XFOWvMNG-zw))
+
+*To do:* Identify specific code causing this bug and fix it.
+
+
+## `CheckOwnMon` only checks the first five letters of OT names
+
+([Video](https://www.youtube.com/watch?v=GVTTmReM4nQ))
+
+This bug can allow you to talk to Eusine in Celadon City and encounter Ho-Oh with only traded legendary beasts.
+
+[engine/search.asm](engine/search.asm):
+
+```asm
+; check OT
+; This only checks five characters, which is fine for the Japanese version,
+; but in the English version the player name is 7 characters, so this is wrong.
+
+	ld hl, PlayerName
+
+rept NAME_LENGTH_JAPANESE +- 2 ; should be PLAYER_NAME_LENGTH +- 2
+	ld a, [de]
+	cp [hl]
+	jr nz, .notfound
+	cp "@"
+	jr z, .found ; reached end of string
+	inc hl
+	inc de
+endr
+
+	ld a, [de]
+	cp [hl]
+	jr z, .found
+
+.notfound
+	pop de
+	pop hl
+	pop bc
+	and a
+	ret
+```
+
+**Fix:** Change `rept NAME_LENGTH_JAPANESE +- 2` to `rept PLAYER_NAME_LENGTH +- 2`.
+
+
+## `HELD_CATCH_CHANCE` has no effect
+
+This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+
+```asm
+	; BUG: callba overwrites a,
+	; and GetItemHeldEffect takes b anyway.
+
+	; This is probably the reason
+	; the HELD_CATCH_CHANCE effect
+	; is never used.
+
+	; Uncomment the line below to fix.
+
+	ld a, [BattleMonItem]
+;	ld b, a
+	callba GetItemHeldEffect
+	ld a, b
+	cp HELD_CATCH_CHANCE
+```
+
+**Fix:** Uncomment `ld b, a`.
+
+
+## `ScriptCall` can overflow `wScriptStack` and crash
+
+[engine/scripting.asm](engine/scripting.asm):
+
+```asm
+ScriptCall:
+; Bug: The script stack has a capacity of 5 scripts, yet there is
+; nothing to stop you from pushing a sixth script.  The high part
+; of the script address can then be overwritten by modifications
+; to ScriptDelay, causing the script to return to the rst/interrupt
+; space.
+
+	push de
+	ld hl, wScriptStackSize
+	ld e, [hl]
+	inc [hl]
+	ld d, $0
+	ld hl, wScriptStack
+	add hl, de
+	add hl, de
+	add hl, de
+	pop de
+	ld a, [ScriptBank]
+	ld [hli], a
+	ld a, [ScriptPos]
+	ld [hli], a
+	ld a, [ScriptPos + 1]
+	ld [hl], a
+	ld a, b
+	ld [ScriptBank], a
+	ld a, e
+	ld [ScriptPos], a
+	ld a, d
+	ld [ScriptPos + 1], a
+	ret
+```
+
+
+## `LoadSpriteGFX` does not limit the capacity of `UsedSprites`
+
+[engine/overworld.asm](engine/overworld.asm):
+
+```asm
+LoadSpriteGFX: ; 14306
+; Bug: b is not preserved, so
+; it's useless as a next count.
+
+	ld hl, UsedSprites
+	ld b, SPRITE_GFX_LIST_CAPACITY
+.loop
+	ld a, [hli]
+	and a
+	jr z, .done
+	push hl
+	call .LoadSprite
+	pop hl
+	ld [hli], a
+	dec b
+	jr nz, .loop
+
+.done
+	ret
+
+.LoadSprite:
+	call GetSprite
+	ld a, l
+	ret
+; 1431e
+```
+
+`GetSprite` modifies `b`. Surround it with `push bc`/`pop bc` to fix.
+
+
+## `ChooseWildEncounter` doesn't really validate the wild Pokémon species
+
+[engine/wildmons.asm](engine/wildmons.asm):
+
+```asm
+ChooseWildEncounter: ; 2a14f
+...
+
+	ld a, b
+	ld [CurPartyLevel], a
+	ld b, [hl]
+	; ld a, b
+	call ValidateTempWildMonSpecies
+	jr c, .nowildbattle
+
+	ld a, b ; This is in the wrong place.
+	cp UNOWN
+	jr nz, .done
+
+...
+
+ValidateTempWildMonSpecies: ; 2a4a0
+; Due to a development oversight, this function is called with the wild Pokemon's level, not its species, in a.
+```
+
+**Fix:**
+
+```asm
+	ld a, b
+	ld [CurPartyLevel], a
+	ld b, [hl]
+	ld a, b
+	call ValidateTempWildMonSpecies
+	jr c, .nowildbattle
+
+	cp UNOWN
+	jr nz, .done
+```
+
+## `TryObjectEvent` arbitrary code execution
+
+[engine/events.asm](engine/events.asm):
+
+```asm
+; Bug: If IsInArray returns nc, data at bc will be executed as code.
+	push bc
+	ld de, 3
+	ld hl, .pointers
+	call IsInArray
+	jr nc, .nope_bugged
+	pop bc
+
+	inc hl
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+.nope_bugged
+	; pop bc
+	xor a
+	ret
+```
+
+**Fix:** Uncomment `pop bc`.
+
+
+## `Special_CheckBugContestContestantFlag` can read beyond its data table
+
+[event/bug_contest_2.asm](event/bug_contest_2.asm):
+
+```asm
+Special_CheckBugContestContestantFlag: ; 139ed
+; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
+
+; Bug: If a >= 10 when this is called, it will read beyond the table.
+
+	ld hl, BugCatchingContestantEventFlagTable
+	ld e, a
+	ld d, 0
+	add hl, de
+	add hl, de
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld b, CHECK_FLAG
+	call EventFlagAction
+	ret
+; 139fe
+
+BugCatchingContestantEventFlagTable: ; 139fe
+	dw EVENT_BUG_CATCHING_CONTESTANT_1A
+	dw EVENT_BUG_CATCHING_CONTESTANT_2A
+	dw EVENT_BUG_CATCHING_CONTESTANT_3A
+	dw EVENT_BUG_CATCHING_CONTESTANT_4A
+	dw EVENT_BUG_CATCHING_CONTESTANT_5A
+	dw EVENT_BUG_CATCHING_CONTESTANT_6A
+	dw EVENT_BUG_CATCHING_CONTESTANT_7A
+	dw EVENT_BUG_CATCHING_CONTESTANT_8A
+	dw EVENT_BUG_CATCHING_CONTESTANT_9A
+	dw EVENT_BUG_CATCHING_CONTESTANT_10A
+; 13a12
+```
+
+
+## `ClearWRAM` only clears WRAM bank 1
+
+[home/init.asm](home/init.asm):
+
+```asm
+ClearWRAM:: ; 25a
+; Wipe swappable WRAM banks (1-7)
+; Assumes CGB or AGB
+
+	ld a, 1
+.bank_loop
+	push af
+	ld [rSVBK], a
+	xor a
+	ld hl, $d000
+	ld bc, $1000
+	call ByteFill
+	pop af
+	inc a
+	cp 8
+	jr nc, .bank_loop ; Should be jr c
+	ret
+; 270
+```
+
+**Fix:** Change `jr nc, .bank_loop` to `jr c, .bank_loop`.
+
+
+## `GetForestTreeFrame` works, but it's still bad
+
+[tilesets/animations.asm](tilesets/animations.asm):
+
+```asm
+GetForestTreeFrame: ; fc54c
+; Return 0 if a is even, or 2 if odd.
+	and a
+	jr z, .even
+	cp 1
+	jr z, .odd
+	cp 2
+	jr z, .even
+	cp 3
+	jr z, .odd
+	cp 4
+	jr z, .even
+	cp 5
+	jr z, .odd
+	cp 6
+	jr z, .even
+.odd
+	ld a, 2
+	scf
+	ret
+.even
+	xor a
+	ret
+; fc56d
+```
+
+**Fix:**
+
+```asm
+GetForestTreeFrame: ; fc54c
+; Return 0 if a is even, or 2 if odd.
+	and 1
+	add a
+	ret
+; fc56d
+```
--- /dev/null
+++ b/docs/event_commands.md
@@ -1,0 +1,345 @@
+# Event Commands
+
+## `$00`: `scall` *script*
+
+## `$01`: `farscall` *script*
+
+## `$02`: `ptcall` *script*
+
+## `$03`: `jump` *script*
+
+## `$04`: `farjump` *script*
+
+## `$05`: `ptjump` *script*
+
+## `$06`: `if_equal` *byte*, *script*
+
+## `$07`: `if_not_equal` *byte*, *script*
+
+## `$08`: `iffalse` *script*
+
+## `$09`: `iftrue` *script*
+
+## `$0A`: `if_greater_than` *byte*, *script*
+
+## `$0B`: `if_less_than` *byte*, *script*
+
+## `$0C`: `jumpstd` *std_script*
+
+## `$0D`: `callstd` *std_script*
+
+## `$0E`: `callasm` *asm*
+
+## `$0F`: `special` *special_pointer*
+
+## `$10`: `ptcallasm` *asm*
+
+## `$11`: `checkmaptriggers` *map*
+
+## `$12`: `domaptrigger` *map*, *trigger_id*
+
+## `$13`: `checktriggers`
+
+## `$14`: `dotrigger` *trigger_id*
+
+## `$15`: `writebyte` *value*
+
+## `$16`: `addvar` *value*
+
+## `$17`: `random` *value*
+
+## `$18`: `checkver`
+
+## `$19`: `copybytetovar` *address*
+
+## `$1A`: `copyvartobyte` *address*
+
+## `$1B`: `loadvar` *address*, *value*
+
+## `$1C`: `checkcode` *variable*
+
+## `$1D`: `writevarcode` *variable*
+
+## `$1E`: `writecode` *variable*, *value*
+
+## `$1F`: `giveitem` *item_id*[, *quantity*=1]
+
+## `$20`: `takeitem` *item_id*[, *quantity*=1]
+
+## `$21`: `checkitem` *item_id*
+
+## `$22`: `givemoney` *account*, *value*
+
+## `$23`: `takemoney` *account*, *value*
+
+## `$24`: `checkmoney` *account*, *value*
+
+## `$25`: `givecoins` *value*
+
+## `$26`: `takecoins` *value*
+
+## `$27`: `checkcoins` *value*
+
+## `$28`: `addcellnum` *contact_id*
+
+## `$29`: `delcellnum` *contact_id*
+
+## `$2A`: `checkcellnum` *contact_id*
+
+## `$2B`: `checktime` *time*
+
+- **`checkmorn`:** `checktime MORN`
+- **`checkday`:** `checktime DAY`
+- **`checknite`:** `checktime NITE`
+
+## `$2C`: `checkpoke` *mon_id*
+
+## `$2D`: `givepoke` *mon_id*, *level*[, *item*=0[, *trainer*=0, *ot_name*, *nickname*]]
+
+## `$2E`: `giveegg` *mon_id*, *level*
+
+## `$2F`: `givepokeitem` *pointer*
+
+## `$30`: `checkpokeitem` *pointer*
+
+## `$31`: `checkevent` *event_flag*
+
+## `$32`: `clearevent` *event_flag*
+
+## `$33`: `setevent` *event_flag*
+
+## `$34`: `checkflag` *engine_flag*
+
+## `$35`: `clearflag` *engine_flag*
+
+## `$36`: `setflag` *engine_flag*
+
+## `$37`: `wildon`
+
+## `$38`: `wildoff`
+
+## `$39`: `xycompare` *pointer*
+
+## `$3A`: `warpmod` *warp_id*, *map*
+
+## `$3B`: `blackoutmod` *map*
+
+## `$3C`: `warp` *map*, *x*, *y*
+
+## `$3D`: `readmoney` *account*, *memory*
+
+## `$3E`: `readcoins` *memory*
+
+## `$3F`: `RAM2MEM` *memory*
+
+## `$40`: `pokenamemem` *mon_id*, *memory*
+
+## `$41`: `itemtotext` *item_id*, *memory*
+
+## `$42`: `mapnametotext` *memory*
+
+## `$43`: `trainertotext` *trainer_id*, *trainer_group*, *memory*
+
+## `$44`: `stringtotext` *text_pointer*, *memory*
+
+## `$45`: `itemnotify`
+
+## `$46`: `pocketisfull`
+
+## `$47`: `opentext`
+
+## `$48`: `refreshscreen` *dummy*
+
+## `$49`: `closetext`
+
+## `$4A`: `loadbytec2cf` *byte*
+
+## `$4B`: `farwritetext` *text_pointer*
+
+## `$4C`: `writetext` *text_pointer*
+
+## `$4D`: `repeattext` *byte1*, *byte2*
+
+## `$4E`: `yesorno`
+
+## `$4F`: `loadmenudata` *data_pointer*
+
+## `$50`: `closewindow`
+
+## `$51`: `jumptextfaceplayer` *text_pointer*
+
+## `$52`: `farjumptext` *text_pointer*
+
+## `$53`: `jumptext` *text_pointer*
+
+## `$54`: `waitbutton`
+
+## `$55`: `buttonsound`
+
+## `$56`: `pokepic` *mon_id*
+
+## `$57`: `closepokepic`
+
+## `$58`: `_2dmenu`
+
+## `$59`: `verticalmenu`
+
+## `$5A`: `loadpikachudata`
+
+## `$5B`: `randomwildmon`
+
+## `$5C`: `loadmemtrainer`
+
+## `$5D`: `loadwildmon` *mon_id*, *level*
+
+## `$5E`: `loadtrainer` *trainer_group*, *trainer_id*
+
+## `$5F`: `startbattle`
+
+## `$60`: `reloadmapafterbattle`
+
+## `$61`: `catchtutorial` *byte*
+
+## `$62`: `trainertext` *which_text*
+
+## `$63`: `trainerflagaction` *action*
+
+## `$64`: `winlosstext` *win_text_pointer*, *loss_text_pointer*
+
+## `$65`: `scripttalkafter`
+
+## `$66`: `end_if_just_battled`
+
+## `$67`: `check_just_battled`
+
+## `$68`: `setlasttalked` *person*
+
+## `$69`: `applymovement` *person*, *data_pointer*
+
+## `$6A`: `applymovement2` *data_pointer*
+
+## `$6B`: `faceplayer`
+
+## `$6C`: `faceperson` *person1*, *person2*
+
+## `$6D`: `variablesprite` *variable_sprite_id*, *sprite_id*
+
+## `$6E`: `disappear` *person*
+
+## `$6F`: `appear` *person*
+
+## `$70`: `follow` *person2*, *person1*
+
+## `$71`: `stopfollow`
+
+## `$72`: `moveperson` *person*, *x*, *y*
+
+## `$73`: `writepersonxy` *person*
+
+## `$74`: `loademote` *emote_id*
+
+## `$75`: `showemote` *emote_id*, *person*, *length*
+
+## `$76`: `spriteface` *person*, *facing*
+
+## `$77`: `follownotexact` *person2*, *person1*
+
+## `$78`: `earthquake` *param*
+
+## `$79`: `changemap` *bank*, *blockdata_pointer*
+
+## `$7A`: `changeblock` *x*, *y*, *block*
+
+## `$7B`: `reloadmap`
+
+## `$7C`: `reloadmappart`
+
+## `$7D`: `writecmdqueue` *queue_pointer*
+
+## `$7E`: `delcmdqueue` *byte*
+
+## `$7F`: `playmusic` *music_id*
+
+## `$80`: `encountermusic`
+
+## `$81`: `musicfadeout` *music_id*, *length*
+
+## `$82`: `playmapmusic`
+
+## `$83`: `dontrestartmapmusic`
+
+## `$84`: `cry` *mon_id*
+
+## `$85`: `playsound` *sfx_id*
+
+## `$86`: `waitsfx`
+
+## `$87`: `warpsound`
+
+## `$88`: `specialsound`
+
+## `$89`: `passtoengine` *data_pointer*
+
+## `$8A`: `newloadmap` *which_method*
+
+## `$8B`: `pause` *length*
+
+## `$8C`: `deactivatefacing` *length*
+
+## `$8D`: `priorityjump` *script*
+
+## `$8E`: `warpcheck`
+
+## `$8F`: `ptpriorityjump` *script*
+
+## `$90`: `return`
+
+## `$91`: `end`
+
+## `$92`: `reloadandreturn` *which_method*
+
+## `$93`: `end_all`
+
+## `$94`: `pokemart` *dialog_id*, *mart_id*
+
+## `$95`: `elevator` *floor_list*
+
+## `$96`: `trade` *trade_id*
+
+## `$97`: `askforphonenumber` *contact_id*
+
+## `$98`: `phonecall` *call_id*
+
+## `$99`: `hangup`
+
+## `$9A`: `describedecoration` *byte*
+
+## `$9B`: `fruittree` *tree_id*
+
+## `$9C`: `specialphonecall` *call_id*
+
+## `$9D`: `checkphonecall`
+
+## `$9E`: `verbosegiveitem` *item_id*[, *quantity*=1]
+
+## `$9F`: `verbosegiveitem2` *item_id*, *variable*
+
+## `$A0`: `swarm` *swarm_id*, *map*
+
+## `$A1`: `halloffame`
+
+## `$A2`: `credits`
+
+## `$A3`: `warpfacing` *facing*, *map*, *x*, *y*
+
+## `$A4`: `battletowertext` *memory*
+
+## `$A5`: `landmarktotext` *landmark_id*, *memory*
+
+## `$A6`: `trainerclassname` *trainer_group*, *memory*
+
+## `$A7`: `name` *type*, *id*, *memory*
+
+## `$A8`: `wait` *duration*
+
+## `$A9`: `check_save`
--- a/docs/map_scripts.md
+++ b/docs/map_scripts.md
@@ -3,7 +3,7 @@
 
 ## `const_value set 2`
 
-### `const` *`MAPNAME_PERSONNAME`*
+- **`const` *`MAPNAME_PERSONNAME`***
 
 
 ## `MapName_MapScriptHeader:`
@@ -11,26 +11,47 @@
 
 ## `.MapTriggers: db` *N*
 
-### `maptrigger` *script*
+- **`maptrigger` *script***
 
 
 ## `.MapCallbacks: db` *N*
 
-### `dbw` *type*, *script*
+- **`dbw` *type*, *script***
 
+Callback types:
 
-## Scripts
+- **`MAPCALLBACK_NEWMAP`**
 
+- **`MAPCALLBACK_TILES`**
 
+- **`MAPCALLBACK_OBJECTS`**
+
+- **`MAPCALLBACK_SPRITES`**
+
+- **`MAPCALLBACK_CMDQUEUE`**
+
+  **`dbw CMDQUEUE_STONETABLE,` *table_pointer***
+  
+  **`stonetable` *warp_id*, *person*, *script***
+  
+  **`db -1 ; end`**
+
+
+## Event scripts
+
+[Event commands](event_commands.md)
+
+
 ## Text
 
-- **`text`**
-- **`line`**
-- **`cont`**
-- **`para`**
-- **`done`**
+[Text commands](text_commands.md)
 
 
+## Movement data
+
+[Movement commands](movement_commands.md)
+
+
 ## `MapName_MapEventHeader:`
 
 	; filler
@@ -39,19 +60,19 @@
 
 ## `.Warps: db` *N*
 
-### `warp_def` *y*, *x*, *warp_id*, *map*
+- **`warp_def` *y*, *x*, *warp_id*, *map***
 
 
 ## `.XYTriggers: db` *N*
 
-### `xy_trigger` *id*, *y*, *x*, `$0`, *script*, `$0`, `$0`
+- **`xy_trigger` *id*, *y*, *x*, `$0`, *script*, `$0`, `$0`**
 
 
 ## `.Signposts: db` *N*
 
-### `signpost` *y*, *x*, *type*, *script*
+- **`signpost` *y*, *x*, *type*, *script***
 
-#### Signpost types:
+Signpost types:
 
 - **`SIGNPOST_READ`**
 
@@ -69,9 +90,9 @@
 
 ## `.PersonEvents: db` *N*
 
-### `person_event` *sprite*, *y*, *x*, *movement*, *ry*, *rx*, *hour*, *daytime*, *palette*, *type*, *range*, *script*, *event_flag*
+- **`person_event` *sprite*, *y*, *x*, *movement*, *ry*, *rx*, *hour*, *daytime*, *palette*, *type*, *range*, *script*, *event_flag***
 
-#### Movement types:
+Movement types:
 
 - **`SPRITEMOVEDATA_ITEM_TREE`**
 
@@ -105,7 +126,7 @@
 
 - **`SPRITEMOVEDATA_LAPRAS`**
 
-#### Person types:
+Person types:
 
 - **`PERSONTYPE_SCRIPT`**
 
--- /dev/null
+++ b/docs/move_anim_commands.md
@@ -1,0 +1,99 @@
+# Move Animation Commands
+
+## `$00`−`$EF`: `anim_wait` *length*
+
+## `$D0`: `anim_obj` *object*, *x*, *y*, *param*
+
+## `$D1`: `anim_1gfx` *gfx*
+
+## `$D2`: `anim_2gfx` *gfx1*, *gfx2*
+
+## `$D3`: `anim_3gfx` *gfx1*, *gfx2*, *gfx3*
+
+## `$D4`: `anim_4gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*
+
+## `$D5`: `anim_5gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*, *gfx5*
+
+## `$D6`: `anim_incobj` *id*
+
+## `$D7`: `anim_setobj` *id*, *object*
+
+## `$D8`: `anim_incbgeffect` *effect*
+
+## `$D9`: `anim_enemyfeetobj`
+
+## `$DA`: `anim_playerheadobj`
+
+## `$DB`: `anim_checkpokeball`
+
+## `$DC`: `anim_transform`
+
+## `$DD`: `anim_raisesub`
+
+## `$DE`: `anim_dropsub`
+
+## `$DF`: `anim_resetobp0`
+
+## `$E0`: `anim_sound` *duration*, *tracks*, *id*
+
+## `$E1`: `anim_cry` *pitch*
+
+## `$E2`: `anim_minimizeopp`
+
+## `$E3`: `anim_oamon`
+
+## `$E4`: `anim_oamoff`
+
+## `$E5`: `anim_clearobjs`
+
+## `$E6`: `anim_beatup`
+
+## `$E7`: `anim_0xe7`
+
+## `$E8`: `anim_updateactorpic`
+
+## `$E9`: `anim_minimize`
+
+## `$EA`: `anim_0xea`
+
+## `$EB`: `anim_0xeb`
+
+## `$EC`: `anim_0xec`
+
+## `$ED`: `anim_0xed`
+
+## `$EE`: `anim_if_param_and` *value*, *address*
+
+## `$EF`: `anim_jumpuntil` *address*
+
+## `$F0`: `anim_bgeffect` *effect*, *unknown1*, *unknown2*, *unknown3*
+
+## `$F1`: `anim_bgp` *colors*
+
+## `$F2`: `anim_obp0` *colors*
+
+## `$F3`: `anim_obp1` *colors*
+
+## `$F4`: `anim_clearsprites`
+
+## `$F5`: `anim_0xf5`
+
+## `$F6`: `anim_0xf6`
+
+## `$F7`: `anim_0xf7`
+
+## `$F8`: `anim_if_param_equal` *value*, *address*
+
+## `$F9`: `anim_setvar` *value*
+
+## `$FA`: `anim_incvar`
+
+## `$FB`: `anim_if_var_equal` *value*, *address*
+
+## `$FC`: `anim_jump` *address*
+
+## `$FD`: `anim_loop` *count*, *address*
+
+## `$FE`: `anim_call` *address*
+
+## `$FF`: `anim_ret`
--- /dev/null
+++ b/docs/movement_commands.md
@@ -1,0 +1,81 @@
+# Movement Commands
+
+## `$00`−`$03`: `turn_head` *direction*
+
+## `$04`−`$07`: `turn_step` *direction*
+
+## `$08`−`$0B`: `slow_step` *direction*
+
+## `$0C`−`$0F`: `step` *direction*
+
+## `$10`−`$13`: `big_step` *direction*
+
+## `$14`−`$17`: `slow_slide_step` *direction*
+
+## `$18`−`$1B`: `slide_step` *direction*
+
+## `$1C`−`$1F`: `fast_slide_step` *direction*
+
+## `$20`−`$23`: `turn_away` *direction*
+
+## `$24`−`$27`: `turn_in` *direction*
+
+## `$28`−`$2B`: `turn_waterfall` *direction*
+
+## `$2C`−`$2F`: `slow_jump_step` *direction*
+
+## `$30`−`$33`: `jump_step` *direction*
+
+## `$34`−`$37`: `fast_jump_step` *direction*
+
+## `$38`: `remove_sliding`
+
+## `$39`: `set_sliding`
+
+## `$3A`: `remove_fixed_facing`
+
+## `$3B`: `fix_facing`
+
+## `$3C`: `show_person`
+
+## `$3D`: `hide_person`
+
+## `$3E`−`$46`: `step_sleep` *length*
+
+## `$47`: `step_end`
+
+## `$48`: `step_48` *param*
+
+## `$49`: `remove_person`
+
+## `$4A`: `step_loop`
+
+## `$4B`: `step_4b`
+
+## `$4C`: `teleport_from`
+
+## `$4D`: `teleport_to`
+
+## `$4E`: `skyfall`
+
+## `$4F`: `step_dig` *length*
+
+## `$50`: `step_bump`
+
+## `$51`: `fish_got_bite`
+
+## `$52`: `fish_cast_rod`
+
+## `$53`: `hide_emote`
+
+## `$54`: `show_emote`
+
+## `$55`: `step_shake` *displacement*
+
+## `$56`: `tree_shake`
+
+## `$57`: `rock_smash` *length*
+
+## `$58`: `return_dig` *length*
+
+## `$59`: `skyfall_top`
--- a/docs/scripting_commands.md
+++ /dev/null
@@ -1,345 +1,0 @@
-# Scripting Commands
-
-## `$00`: `scall` *script*
-
-## `$01`: `farscall` *script*
-
-## `$02`: `ptcall` *script*
-
-## `$03`: `jump` *script*
-
-## `$04`: `farjump` *script*
-
-## `$05`: `ptjump` *script*
-
-## `$06`: `if_equal` *byte*, *script*
-
-## `$07`: `if_not_equal` *byte*, *script*
-
-## `$08`: `iffalse` *script*
-
-## `$09`: `iftrue` *script*
-
-## `$0A`: `if_greater_than` *byte*, *script*
-
-## `$0B`: `if_less_than` *byte*, *script*
-
-## `$0C`: `jumpstd` *std_script*
-
-## `$0D`: `callstd` *std_script*
-
-## `$0E`: `callasm` *asm*
-
-## `$0F`: `special` *special_pointer*
-
-## `$10`: `ptcallasm` *asm*
-
-## `$11`: `checkmaptriggers` *map*
-
-## `$12`: `domaptrigger` *map*, *trigger_id*
-
-## `$13`: `checktriggers`
-
-## `$14`: `dotrigger` *trigger_id*
-
-## `$15`: `writebyte` *value*
-
-## `$16`: `addvar` *value*
-
-## `$17`: `random` *value*
-
-## `$18`: `checkver`
-
-## `$19`: `copybytetovar` *address*
-
-## `$1A`: `copyvartobyte` *address*
-
-## `$1B`: `loadvar` *address*, *value*
-
-## `$1C`: `checkcode` *variable*
-
-## `$1D`: `writevarcode` *variable*
-
-## `$1E`: `writecode` *variable*, *value*
-
-## `$1F`: `giveitem` *item_id*[, *quantity*=1]
-
-## `$20`: `takeitem` *item_id*[, *quantity*=1]
-
-## `$21`: `checkitem` *item_id*
-
-## `$22`: `givemoney` *account*, *value*
-
-## `$23`: `takemoney` *account*, *value*
-
-## `$24`: `checkmoney` *account*, *value*
-
-## `$25`: `givecoins` *value*
-
-## `$26`: `takecoins` *value*
-
-## `$27`: `checkcoins` *value*
-
-## `$28`: `addcellnum` *contact_id*
-
-## `$29`: `delcellnum` *contact_id*
-
-## `$2A`: `checkcellnum` *contact_id*
-
-## `$2B`: `checktime` *time*
-
-- **`checkmorn`:** `checktime MORN`
-- **`checkday`:** `checktime DAY`
-- **`checknite`:** `checktime NITE`
-
-## `$2C`: `checkpoke` *mon_id*
-
-## `$2D`: `givepoke` *mon_id*, *level*[, *item*=0[, *trainer*=0, *ot_name*, *nickname*]]
-
-## `$2E`: `giveegg` *mon_id*, *level*
-
-## `$2F`: `givepokeitem` *pointer*
-
-## `$30`: `checkpokeitem` *pointer*
-
-## `$31`: `checkevent` *event_flag*
-
-## `$32`: `clearevent` *event_flag*
-
-## `$33`: `setevent` *event_flag*
-
-## `$34`: `checkflag` *engine_flag*
-
-## `$35`: `clearflag` *engine_flag*
-
-## `$36`: `setflag` *engine_flag*
-
-## `$37`: `wildon`
-
-## `$38`: `wildoff`
-
-## `$39`: `xycompare` *pointer*
-
-## `$3A`: `warpmod` *warp_id*, *map*
-
-## `$3B`: `blackoutmod` *map*
-
-## `$3C`: `warp` *map*, *x*, *y*
-
-## `$3D`: `readmoney` *account*, *memory*
-
-## `$3E`: `readcoins` *memory*
-
-## `$3F`: `RAM2MEM` *memory*
-
-## `$40`: `pokenamemem` *mon_id*, *memory*
-
-## `$41`: `itemtotext` *item_id*, *memory*
-
-## `$42`: `mapnametotext` *memory*
-
-## `$43`: `trainertotext` *trainer_id*, *trainer_group*, *memory*
-
-## `$44`: `stringtotext` *text_pointer*, *memory*
-
-## `$45`: `itemnotify`
-
-## `$46`: `pocketisfull`
-
-## `$47`: `opentext`
-
-## `$48`: `refreshscreen` *dummy*
-
-## `$49`: `closetext`
-
-## `$4A`: `loadbytec2cf` *byte*
-
-## `$4B`: `farwritetext` *text_pointer*
-
-## `$4C`: `writetext` *text_pointer*
-
-## `$4D`: `repeattext` *byte1*, *byte2*
-
-## `$4E`: `yesorno`
-
-## `$4F`: `loadmenudata` *data_pointer*
-
-## `$50`: `closewindow`
-
-## `$51`: `jumptextfaceplayer` *text_pointer*
-
-## `$52`: `farjumptext` *text_pointer*
-
-## `$53`: `jumptext` *text_pointer*
-
-## `$54`: `waitbutton`
-
-## `$55`: `buttonsound`
-
-## `$56`: `pokepic` *mon_id*
-
-## `$57`: `closepokepic`
-
-## `$58`: `_2dmenu`
-
-## `$59`: `verticalmenu`
-
-## `$5A`: `loadpikachudata`
-
-## `$5B`: `randomwildmon`
-
-## `$5C`: `loadmemtrainer`
-
-## `$5D`: `loadwildmon` *mon_id*, *level*
-
-## `$5E`: `loadtrainer` *trainer_group*, *trainer_id*
-
-## `$5F`: `startbattle`
-
-## `$60`: `reloadmapafterbattle`
-
-## `$61`: `catchtutorial` *byte*
-
-## `$62`: `trainertext` *which_text*
-
-## `$63`: `trainerflagaction` *action*
-
-## `$64`: `winlosstext` *win_text_pointer*, *loss_text_pointer*
-
-## `$65`: `scripttalkafter`
-
-## `$66`: `end_if_just_battled`
-
-## `$67`: `check_just_battled`
-
-## `$68`: `setlasttalked` *person*
-
-## `$69`: `applymovement` *person*, *data_pointer*
-
-## `$6A`: `applymovement2` *data_pointer*
-
-## `$6B`: `faceplayer`
-
-## `$6C`: `faceperson` *person1*, *person2*
-
-## `$6D`: `variablesprite` *variable_sprite_id*, *sprite_id*
-
-## `$6E`: `disappear` *person*
-
-## `$6F`: `appear` *person*
-
-## `$70`: `follow` *person2*, *person1*
-
-## `$71`: `stopfollow`
-
-## `$72`: `moveperson` *person*, *x*, *y*
-
-## `$73`: `writepersonxy` *person*
-
-## `$74`: `loademote` *emote_id*
-
-## `$75`: `showemote` *emote_id*, *person*, *length*
-
-## `$76`: `spriteface` *person*, *facing*
-
-## `$77`: `follownotexact` *person2*, *person1*
-
-## `$78`: `earthquake` *param*
-
-## `$79`: `changemap` *bank*, *blockdata_pointer*
-
-## `$7A`: `changeblock` *x*, *y*, *block*
-
-## `$7B`: `reloadmap`
-
-## `$7C`: `reloadmappart`
-
-## `$7D`: `writecmdqueue` *queue_pointer*
-
-## `$7E`: `delcmdqueue` *byte*
-
-## `$7F`: `playmusic` *music_id*
-
-## `$80`: `encountermusic`
-
-## `$81`: `musicfadeout` *music_id*, *length*
-
-## `$82`: `playmapmusic`
-
-## `$83`: `dontrestartmapmusic`
-
-## `$84`: `cry` *mon_id*
-
-## `$85`: `playsound` *sfx_id*
-
-## `$86`: `waitsfx`
-
-## `$87`: `warpsound`
-
-## `$88`: `specialsound`
-
-## `$89`: `passtoengine` *data_pointer*
-
-## `$8A`: `newloadmap` *which_method*
-
-## `$8B`: `pause` *length*
-
-## `$8C`: `deactivatefacing` *length*
-
-## `$8D`: `priorityjump` *script*
-
-## `$8E`: `warpcheck`
-
-## `$8F`: `ptpriorityjump` *script*
-
-## `$90`: `return`
-
-## `$91`: `end`
-
-## `$92`: `reloadandreturn` *which_method*
-
-## `$93`: `end_all`
-
-## `$94`: `pokemart` *dialog_id*, *mart_id*
-
-## `$95`: `elevator` *floor_list*
-
-## `$96`: `trade` *trade_id*
-
-## `$97`: `askforphonenumber` *contact_id*
-
-## `$98`: `phonecall` *call_id*
-
-## `$99`: `hangup`
-
-## `$9A`: `describedecoration` *byte*
-
-## `$9B`: `fruittree` *tree_id*
-
-## `$9C`: `specialphonecall` *call_id*
-
-## `$9D`: `checkphonecall`
-
-## `$9E`: `verbosegiveitem` *item_id*[, *quantity*=1]
-
-## `$9F`: `verbosegiveitem2` *item_id*, *variable*
-
-## `$A0`: `swarm` *swarm_id*, *map*
-
-## `$A1`: `halloffame`
-
-## `$A2`: `credits`
-
-## `$A3`: `warpfacing` *facing*, *map*, *x*, *y*
-
-## `$A4`: `battletowertext` *memory*
-
-## `$A5`: `landmarktotext` *landmark_id*, *memory*
-
-## `$A6`: `trainerclassname` *trainer_group*, *memory*
-
-## `$A7`: `name` *type*, *id*, *memory*
-
-## `$A8`: `wait` *duration*
-
-## `$A9`: `check_save`
--- /dev/null
+++ b/docs/text_commands.md
@@ -1,0 +1,132 @@
+# Text Commands
+
+## `$00`: `text` *text*
+
+Start writing text until `"@"`.
+
+## `$4E`: `next` *text*
+
+Move a line down.
+
+## `$4F`: `line` *text*
+
+Start writing at the bottom line.
+
+## `$50`: `page` *text*
+
+Start a new Pokédex page.
+
+## `$51`: `para` *text*
+
+Start a new paragraph.
+
+## `$55`: `cont` *text*
+
+Scroll to the next line.
+
+## `$57`: `done`
+
+End a text box.
+
+## `$58`: `prompt`
+
+Prompt the player to end a text box (initiating some other event).
+
+## `$01`: `text_from_ram` *address*
+
+Write text from a RAM address.
+
+## `$02`: `text_bcd` *address*, *flags*
+
+Write [BCD](bcd) from an address, typically RAM.
+
+[bcd]: https://en.wikipedia.org/wiki/Binary-coded_decimal
+
+## `$03`: `text_move` *address*
+
+Move to a new tile.
+
+## `$04`: `text_box` *address*, *height*, *width*
+
+Draw a box.
+
+## `$05`: `text_low`
+
+Write text at (1, 16).
+
+## `$06`: `text_waitbutton`
+
+Wait for button press; show arrow.
+
+## `$07`: `text_scroll`
+
+Pushes text up two lines and sets the `bc` cursor to the border tile below the
+first character column of the text box.
+
+## `$08`: `start_asm`
+
+Start interpreting assembly code.
+
+## `$09`: `deciram` *address*, *bytes*, *digits*
+
+Read *bytes* bytes from *address* and print them as a *digits*-digit number.
+
+## `$0A`: `interpret_data`
+
+Exit.
+
+## `$0B`: `sound_dex_fanfare_50_79`
+
+Play `SFX_DEX_FANFARE_50_79`.
+
+## `$0C`: `limited_interpret_data` *number*
+
+Print *number* `"…"`s.
+
+## `$0D`: `link_wait_button`
+
+Wait for button press; show arrow.
+
+## `$0E`: `sound_dex_fanfare_20_49`
+
+Play `SFX_DEX_FANFARE_20_49`.
+
+## `$0F`: `sound_item`
+
+Play `SFX_ITEM`.
+
+## `$10`: `sound_caught_mon`
+
+Play `SFX_CAUGHT_MON`.
+
+## `$11`: `sound_dex_fanfare_80_109`
+
+Play `SFX_DEX_FANFARE_80_109`.
+
+## `$12`: `sound_fanfare`
+
+Play `SFX_FANFARE`.
+
+## `$13`: `sound_slot_machine_start`
+
+Play `SFX_SLOT_MACHINE_START`.
+
+## `$14`: `text_buffer` *id*
+
+Write text from one of the following addresses (listed in `StringBufferPointers`):
+
+0. `StringBuffer3`
+1. `StringBuffer4`
+2. `StringBuffer5`
+3. `StringBuffer2`
+4. `StringBuffer1`
+5. `EnemyMonNick`
+6. `BattleMonNick`
+
+## `$15`: `current_day`
+
+Print the weekday.
+
+## `$16`: `text_jump` *address*
+
+Write text from a different bank.
--- a/engine/anim_hp_bar.asm
+++ b/engine/anim_hp_bar.asm
@@ -382,7 +382,10 @@
 	and a
 	jr z, .return_zero
 	call AddNTimes
+
 	ld b, 0
+; This routine is buggy. If [wCurHPAnimMaxHP] * [wCurHPBarPixels] is divisible
+; by 48, the loop runs one extra time. To fix, uncomment the line below.
 .loop
 	ld a, l
 	sub 6 * 8
@@ -390,6 +393,7 @@
 	ld a, h
 	sbc $0
 	ld h, a
+	; jr z, .done
 	jr c, .done
 	inc b
 	jr .loop
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -196,9 +196,10 @@
 
 
 StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
-; The screen flashes a different number of
-; times depending on the level of your lead
-; Pokemon relative to the opponent's.
+; The screen flashes a different number of times depending on the level of
+; your lead Pokemon relative to the opponent's.
+; BUG: BattleMonLevel and EnemyMonLevel are not set at this point, so whatever
+; values happen to be there will determine the animation.
 	ld de, 0
 	ld a, [BattleMonLevel]
 	add 3
--- a/engine/intro_menu.asm
+++ b/engine/intro_menu.asm
@@ -1341,7 +1341,7 @@
 	ld h, 0
 	add hl, hl
 	add hl, hl
-	ld de, Data63ca
+	ld de, .Data63ca
 	add hl, de
 	; If bit 2 of [wTitleScreenTimer] is set, get the second dw; else, get the first dw
 	ld a, [wTitleScreenTimer]
@@ -1357,12 +1357,12 @@
 	ret z
 	ld e, a
 	ld d, [hl]
-	ld a, SPRITE_ANIM_INDEX_01
+	ld a, SPRITE_ANIM_INDEX_GS_TITLE_TRAIL
 	call _InitSpriteAnimStruct
 	ret
 ; 63ca
 
-Data63ca: ; 63ca
+.Data63ca: ; 63ca
 ; frame 0 y, x; frame 1 y, x
 	db 11 * 8 + 4, 10 * 8,  0 * 8,      0 * 8
 	db 11 * 8 + 4, 13 * 8, 11 * 8 + 4, 11 * 8
--- a/engine/items.asm
+++ b/engine/items.asm
@@ -554,7 +554,7 @@
 	ld a, [CurItem]
 	dec a
 	ld c, a
-	ld a, NUM_ITEMATTRS
+	ld a, ITEMATTR_STRUCT_LENGTH
 	call AddNTimes
 	ld a, BANK(ItemAttributes)
 	call GetFarByte
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -144,11 +144,11 @@
 	pop bc
 	pop hl
 	jr c, .mail
-	ld a, SPRITE_ANIM_FRAMESET_03
+	ld a, SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM
 	jr .okay
 
 .mail
-	ld a, SPRITE_ANIM_FRAMESET_02
+	ld a, SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL
 .okay
 	ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
 	add hl, bc
@@ -297,7 +297,7 @@
 	ld a, [wCurIconTile]
 GetIconGFX: ; 8e9de
 	call GetIcon_a
-	ld de, $80 ; 8 tiles
+	ld de, 8 tiles
 	add hl, de
 	ld de, HeldItemIcons
 	lb bc, BANK(HeldItemIcons), 2
@@ -468,9 +468,6 @@
 
 INCLUDE "data/mon_menu_icons.asm"
 
-
 INCLUDE "gfx/icon_pointers.asm"
 
-Icons:
 INCLUDE "gfx/icons.asm"
-
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -1,4 +1,5 @@
 MovementPointers: ; 5075
+; entries correspond to macros/movement.asm enumeration
 	dw Movement_turn_head_down        ; 00
 	dw Movement_turn_head_up          ; 01
 	dw Movement_turn_head_left        ; 02
--- a/engine/player_movement.asm
+++ b/engine/player_movement.asm
@@ -128,13 +128,13 @@
 
 .not_whirlpool
 	and $f0
-	cp $30 ; moving water
+	cp HI_NYBBLE_CURRENT
 	jr z, .water
-	cp $40 ; moving land 1
+	cp HI_NYBBLE_WALK
 	jr z, .land1
-	cp $50 ; moving land 2
+	cp HI_NYBBLE_WALK_ALT
 	jr z, .land2
-	cp $70 ; warps
+	cp HI_NYBBLE_WARPS
 	jr z, .warps
 	jr .no_walk
 
@@ -150,10 +150,10 @@
 	jr .continue_walk
 
 .water_table
-	db RIGHT
-	db LEFT
-	db UP
-	db DOWN
+	db RIGHT ; COLL_WATERFALL_RIGHT
+	db LEFT  ; COLL_WATERFALL_LEFT
+	db UP    ; COLL_WATERFALL_UP
+	db DOWN  ; COLL_WATERFALL
 
 .land1
 	ld a, c
@@ -169,14 +169,14 @@
 	jr .continue_walk
 
 .land1_table
-	db STANDING
-	db RIGHT
-	db LEFT
-	db UP
-	db DOWN
-	db STANDING
-	db STANDING
-	db STANDING
+	db STANDING ; COLL_BRAKE
+	db RIGHT    ; COLL_WALK_RIGHT
+	db LEFT     ; COLL_WALK_LEFT
+	db UP       ; COLL_WALK_UP
+	db DOWN     ; COLL_WALK_DOWN
+	db STANDING ; COLL_BRAKE_45
+	db STANDING ; COLL_BRAKE_46
+	db STANDING ; COLL_BRAKE_47
 
 .land2
 	ld a, c
@@ -192,24 +192,24 @@
 	jr .continue_walk
 
 .land2_table
-	db RIGHT
-	db LEFT
-	db UP
-	db DOWN
-	db STANDING
-	db STANDING
-	db STANDING
-	db STANDING
+	db RIGHT    ; COLL_WALK_RIGHT_ALT
+	db LEFT     ; COLL_WALK_LEFT_ALT
+	db UP       ; COLL_WALK_UP_ALT
+	db DOWN     ; COLL_WALK_DOWN_ALT
+	db STANDING ; COLL_BRAKE_ALT
+	db STANDING ; COLL_BRAKE_55
+	db STANDING ; COLL_BRAKE_56
+	db STANDING ; COLL_BRAKE_57
 
 .warps
 	ld a, c
-	cp $71 ; door
+	cp COLL_DOOR
 	jr z, .down
-	cp $79
+	cp COLL_DOOR_79
 	jr z, .down
-	cp $7a ; stairs
+	cp COLL_STAIRCASE
 	jr z, .down
-	cp $7b ; cave
+	cp COLL_CAVE
 	jr nz, .no_walk
 
 .down
@@ -365,7 +365,7 @@
 	ld a, [PlayerStandingTile]
 	ld e, a
 	and $f0
-	cp $a0 ; ledge
+	cp HI_NYBBLE_LEDGES
 	jr nz, .DontJump
 
 	ld a, e
@@ -391,14 +391,14 @@
 	ret
 
 .data_8021e
-	db FACE_RIGHT
-	db FACE_LEFT
-	db FACE_UP
-	db FACE_DOWN
-	db FACE_RIGHT | FACE_DOWN
-	db FACE_DOWN | FACE_LEFT
-	db FACE_UP | FACE_RIGHT
-	db FACE_UP | FACE_LEFT
+	db FACE_RIGHT             ; COLL_HOP_RIGHT
+	db FACE_LEFT              ; COLL_HOP_LEFT
+	db FACE_UP                ; COLL_HOP_UP
+	db FACE_DOWN              ; COLL_HOP_DOWN
+	db FACE_RIGHT | FACE_DOWN ; COLL_HOP_DOWN_RIGHT
+	db FACE_DOWN | FACE_LEFT  ; COLL_HOP_DOWN_LEFT
+	db FACE_UP | FACE_RIGHT   ; COLL_HOP_UP_RIGHT
+	db FACE_UP | FACE_LEFT    ; COLL_HOP_UP_LEFT
 ; 80226
 
 .CheckWarp: ; 80226
@@ -443,7 +443,10 @@
 	ret
 
 .EdgeWarps:
-	db $70, $78, $76, $7e
+	db COLL_WARP_CARPET_DOWN
+	db COLL_WARP_CARPET_UP
+	db COLL_WARP_CARPET_LEFT
+	db COLL_WARP_CARPET_RIGHT
 ; 8025f
 
 .DoStep:
@@ -759,7 +762,7 @@
 ; Return 0 if tile a is land. Otherwise, return carry.
 
 	call GetTileCollision
-	and a ; land
+	and a ; LANDTILE?
 	ret z
 	scf
 	ret
@@ -774,7 +777,7 @@
 	jr z, .Water
 
 ; Can walk back onto land from water.
-	and a
+	and a ; LANDTILE?
 	jr z, .Land
 
 	jr .Neither
--- a/engine/player_object.asm
+++ b/engine/player_object.asm
@@ -193,7 +193,7 @@
 	and $f0
 	jr z, .skip_color_override
 	swap a
-	and $7 ; OAM_PALETTE
+	and PALETTE_MASK
 	ld [wTempObjectCopyPalette], a
 
 .skip_color_override
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -141,7 +141,7 @@
 
 InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32)
 	depixel 4, 2, 4, 0
-	ld a, SPRITE_ANIM_INDEX_0D
+	ld a, SPRITE_ANIM_INDEX_POKEGEAR_ARROW
 	call _InitSpriteAnimStruct
 	ld hl, SPRITEANIMSTRUCT_TILE_ID
 	add hl, bc
@@ -685,7 +685,7 @@
 PokegearMap_InitCursor: ; 91098
 	push af
 	depixel 0, 0
-	ld a, SPRITE_ANIM_INDEX_0D
+	ld a, SPRITE_ANIM_INDEX_POKEGEAR_ARROW
 	call _InitSpriteAnimStruct
 	ld hl, SPRITEANIMSTRUCT_TILE_ID
 	add hl, bc
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -64,6 +64,7 @@
 
 
 ScriptCommandTable:
+; entries correspond to macros/event.asm enumeration
 	dw Script_scall                      ; 00
 	dw Script_farscall                   ; 01
 	dw Script_ptcall                     ; 02
--- a/engine/search.asm
+++ b/engine/search.asm
@@ -219,7 +219,7 @@
 
 	ld hl, PlayerName
 
-	rept 4
+rept NAME_LENGTH_JAPANESE +- 2 ; should be PLAYER_NAME_LENGTH +- 2
 	ld a, [de]
 	cp [hl]
 	jr nz, .notfound
@@ -227,7 +227,7 @@
 	jr z, .found ; reached end of string
 	inc hl
 	inc de
-	endr
+endr
 
 	ld a, [de]
 	cp [hl]
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -18,8 +18,8 @@
 	dw .PartyMon
 	dw .PartyMonSwitch
 	dw .PartyMonSelected
-	dw .sprite_anim_seq_04
-	dw .namingscreencursor
+	dw .GSTitleTrail
+	dw .NamingScreenCursor
 	dw .GameFreakLogo
 	dw .GSIntroStar
 	dw .GSIntroSparkle
@@ -27,9 +27,9 @@
 	dw .SlotsChansey
 	dw .SlotsChanseyEgg
 	dw .MailCursor
-	dw .sprite_anim_seq_0D
-	dw .sprite_anim_seq_0E
-	dw .sprite_anim_seq_0F
+	dw .ForUnusedCursor
+	dw .DummyGameCursor
+	dw .PokegearArrow
 	dw .TradePokeBall
 	dw .TradeTubeBulge
 	dw .TrademonInTube
@@ -132,7 +132,7 @@
 	ld [hl], 8 * 3
 	ret
 
-.sprite_anim_seq_04 ; 8d302 (23:5302)
+.GSTitleTrail ; 8d302 (23:5302)
 	call .AnonymousJumptable
 	jp hl
 ; 8d306 (23:5306)
@@ -217,7 +217,7 @@
 	ld [hl], a
 	ret
 
-.namingscreencursor ; 8d36c (23:536c)
+.NamingScreenCursor ; 8d36c (23:536c)
 	callab NamingScreen_AnimateCursor
 	ret
 
@@ -404,15 +404,15 @@
 	ld [hl], a
 	ret
 
-.sprite_anim_seq_0D ; 8d46e (23:546e)
+.ForUnusedCursor ; 8d46e (23:546e)
 	callab ret_e00ed
 	ret
 
-.sprite_anim_seq_0F ; 8d475 (23:5475)
+.PokegearArrow ; 8d475 (23:5475)
 	callab AnimatePokegearModeIndicatorArrow
 	ret
 
-.sprite_anim_seq_0E ; 8d47c (23:547c)
+.DummyGameCursor ; 8d47c (23:547c)
 	callab DummyGame_InterpretJoypad_AnimateCursor
 	ret
 
--- a/engine/tile_events.asm
+++ b/engine/tile_events.asm
@@ -1,12 +1,12 @@
 CheckWarpCollision:: ; 1499a
 ; Is this tile a warp?
 	ld a, [PlayerStandingTile]
-	cp $60
+	cp COLL_PIT
 	jr z, .warp
-	cp $68
+	cp COLL_PIT_68
 	jr z, .warp
 	and $f0
-	cp $70
+	cp HI_NYBBLE_WARPS
 	jr z, .warp
 	and a
 	ret
@@ -20,13 +20,13 @@
 ; If this is a directional warp, clear carry (press the designated button to warp).
 ; Else, set carry (immediate warp).
 	ld a, [PlayerStandingTile]
-	cp $70 ; Warp on down
+	cp COLL_WARP_CARPET_DOWN
 	jr z, .directional
-	cp $76 ; Warp on left
+	cp COLL_WARP_CARPET_LEFT
 	jr z, .directional
-	cp $78 ; Warp on up
+	cp COLL_WARP_CARPET_UP
 	jr z, .directional
-	cp $7e ; Warp on right
+	cp COLL_WARP_CARPET_RIGHT
 	jr z, .directional
 	scf
 	ret
@@ -45,15 +45,15 @@
 ; 149d3
 
 .blocks ; 149d3
-	db $71 ; door
-	db $79
-	db $7a ; stairs
-	db $73
-	db $7b ; cave entrance
-	db $74
-	db $7c ; warp pad
-	db $75
-	db $7d
+	db COLL_DOOR
+	db COLL_DOOR_79
+	db COLL_STAIRCASE
+	db COLL_STAIRCASE_73
+	db COLL_CAVE
+	db COLL_CAVE_74
+	db COLL_WARP_PANEL
+	db COLL_DOOR_75
+	db COLL_DOOR_7D
 	db -1
 ; 149dd
 
@@ -66,16 +66,16 @@
 ; 149ea
 
 .blocks ; 149ea
-	db $08
-	db $18 ; tall grass
-	db $14 ; tall grass
-	db $28
-	db $29
-	db $48
-	db $49
-	db $4a
-	db $4b
-	db $4c
+	db COLL_CUT_08
+	db COLL_TALL_GRASS
+	db COLL_LONG_GRASS
+	db COLL_CUT_28
+	db COLL_WATER
+	db COLL_GRASS_48
+	db COLL_GRASS_49
+	db COLL_GRASS_4A
+	db COLL_GRASS_4B
+	db COLL_GRASS_4C
 	db -1
 ; 149f5
 
@@ -88,12 +88,12 @@
 ; 14a00
 
 .blocks ; 14a00
-	db $12 ; cut tree
-	db $1a ; cut tree
-	db $10 ; tall grass
-	db $18 ; tall grass
-	db $14 ; tall grass
-	db $1c ; tall grass
+	db COLL_CUT_TREE
+	db COLL_CUT_TREE_1A
+	db COLL_TALL_GRASS_10
+	db COLL_TALL_GRASS
+	db COLL_LONG_GRASS
+	db COLL_LONG_GRASS_1C
 	db -1
 ; 14a07
 
@@ -100,10 +100,10 @@
 GetWarpSFX:: ; 14a07
 	ld a, [PlayerStandingTile]
 	ld de, SFX_ENTER_DOOR
-	cp $71 ; door
+	cp COLL_DOOR
 	ret z
 	ld de, SFX_WARP_TO
-	cp $7c ; warp pad
+	cp COLL_WARP_PANEL
 	ret z
 	ld de, SFX_EXIT_BUILDING
 	ret
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -236,6 +236,7 @@
 ; 290af
 
 .JumpTable: ; 290af
+; entries correspond to macros/trade_anim.asm enumeration
 	dw TradeAnim_AdvanceScriptPointer ; 00
 	dw TradeAnim_ShowGivemonData      ; 01
 	dw TradeAnim_ShowGetmonData       ; 02
--- a/engine/trainer_card.asm
+++ b/engine/trainer_card.asm
@@ -448,7 +448,7 @@
 	ret nz
 	hlcoord 15, 12
 	ld a, [hl]
-	xor %01010001 ; $7F (space) <--> $2E (colon)
+	xor $7f ^ $2e ; $7F (space) <--> $2E (colon)
 	ld [hl], a
 	ret
 
--- a/gbhw.asm
+++ b/gbhw.asm
@@ -29,25 +29,26 @@
 JOYPAD   EQU 4
 
 ; OAM attribute flags
-OAM_PALETTE   EQU %111
 OAM_TILE_BANK EQU 3
-OAM_OBP_NUM   EQU 4 ; Non CGB Mode Only
+OAM_OBP_NUM   EQU 4 ; non CGB Mode Only
 OAM_X_FLIP    EQU 5
 OAM_Y_FLIP    EQU 6
 OAM_PRIORITY  EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
 
-VRAM_BANK_1 EQU 1 << OAM_TILE_BANK
-X_FLIP      EQU 1 << OAM_X_FLIP
-Y_FLIP      EQU 1 << OAM_Y_FLIP
-BEHIND_BG   EQU 1 << OAM_PRIORITY
+PALETTE_MASK EQU %111
+VRAM_BANK_1  EQU 1 << OAM_TILE_BANK ; $08
+OBP_NUM      EQU 1 << OAM_OBP_NUM   ; $10
+X_FLIP       EQU 1 << OAM_X_FLIP    ; $20
+Y_FLIP       EQU 1 << OAM_Y_FLIP    ; $40
+BEHIND_BG    EQU 1 << OAM_PRIORITY  ; $80
 
 ; Hardware registers
 rJOYP       EQU $ff00 ; Joypad (R/W)
 rSB         EQU $ff01 ; Serial transfer data (R/W)
 rSC         EQU $ff02 ; Serial Transfer Control (R/W)
-rSC_ON    EQU 7
-rSC_CGB   EQU 1
-rSC_CLOCK EQU 0
+rSC_ON      EQU 7
+rSC_CGB     EQU 1
+rSC_CLOCK   EQU 0
 rDIV        EQU $ff04 ; Divider Register (R/W)
 rTIMA       EQU $ff05 ; Timer counter (R/W)
 rTMA        EQU $ff06 ; Timer Modulo (R/W)
--- a/gfx/icons.asm
+++ b/gfx/icons.asm
@@ -1,3 +1,4 @@
+Icons:
 NullIcon:
 PoliwagIcon:      INCBIN "gfx/icon/poliwag.2bpp" ; 0x8ec0d
 JigglypuffIcon:   INCBIN "gfx/icon/jigglypuff.2bpp" ; 0x8ec8d
--- a/home/map.asm
+++ b/home/map.asm
@@ -152,9 +152,12 @@
 	ld e, l
 	ld d, h
 	; Set hl to the address of the current metatile data ([TilesetBlocksAddress] + (a) tiles).
-	add a
+	; This is buggy; it wraps around past 128 blocks.
+	; To fix, uncomment the line below.
+	add a ; Comment or delete this line to fix the above bug.
 	ld l, a
 	ld h, 0
+	; add hl, hl
 	add hl, hl
 	add hl, hl
 	add hl, hl
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -120,23 +120,23 @@
 CheckGrassTile:: ; 1875
 	ld d, a
 	and $f0
-	cp $10
-	jr z, .ok_10
-	cp $20
-	jr z, .ok_20
+	cp HI_NYBBLE_TALL_GRASS
+	jr z, .grass
+	cp HI_NYBBLE_WATER
+	jr z, .water
 	scf
 	ret
 
-.ok_10
+.grass
 	ld a, d
-	and 7
+	and LO_NYBBLE_GRASS
 	ret z
 	scf
 	ret
 ; For some reason, the above code is duplicated down here.
-.ok_20
+.water
 	ld a, d
-	and 7
+	and LO_NYBBLE_GRASS
 	ret z
 	scf
 	ret
@@ -143,44 +143,44 @@
 ; 188e
 
 CheckSuperTallGrassTile:: ; 188e
-	cp $14
+	cp COLL_LONG_GRASS
 	ret z
-	cp $1c
+	cp COLL_LONG_GRASS_1C
 	ret
 ; 1894
 
 CheckCutTreeTile:: ; 1894
-	cp $12
+	cp COLL_CUT_TREE
 	ret z
-	cp $1a
+	cp COLL_CUT_TREE_1A
 	ret
 ; 189a
 
 CheckHeadbuttTreeTile:: ; 189a
-	cp $15
+	cp COLL_HEADBUTT_TREE
 	ret z
-	cp $1d
+	cp COLL_HEADBUTT_TREE_1D
 	ret
 ; 18a0
 
 CheckCounterTile:: ; 18a0
-	cp $90
+	cp COLL_COUNTER
 	ret z
-	cp $98
+	cp COLL_COUNTER_98
 	ret
 ; 18a6
 
 CheckPitTile:: ; 18a6
-	cp $60
+	cp COLL_PIT
 	ret z
-	cp $68
+	cp COLL_PIT_68
 	ret
 ; 18ac
 
 CheckIceTile:: ; 18ac
-	cp $23
+	cp COLL_ICE
 	ret z
-	cp $2b
+	cp COLL_ICE_2B
 	ret z
 	scf
 	ret
@@ -188,9 +188,9 @@
 
 CheckWhirlpoolTile:: ; 18b4
 	nop
-	cp $24
+	cp COLL_WHIRLPOOL
 	ret z
-	cp $2c
+	cp COLL_WHIRLPOOL_2C
 	ret z
 	scf
 	ret
@@ -197,21 +197,21 @@
 ; 18bd
 
 CheckWaterfallTile:: ; 18bd
-	cp $33
+	cp COLL_WATERFALL
 	ret z
-	cp $3b
+	cp COLL_CURRENT_DOWN
 	ret
 ; 18c3
 
 CheckStandingOnEntrance:: ; 18c3
 	ld a, [PlayerStandingTile]
-	cp $71 ; door
+	cp COLL_DOOR
 	ret z
-	cp $79
+	cp COLL_DOOR_79
 	ret z
-	cp $7a ; stairs
+	cp COLL_STAIRCASE
 	ret z
-	cp $7b ; cave
+	cp COLL_CAVE
 	ret
 ; 18d2
 
--- a/home/text.asm
+++ b/home/text.asm
@@ -748,6 +748,7 @@
 ; 1410
 
 TextCommands:: ; 1410
+; entries correspond to macros/text.asm enumeration
 	dw Text_TX
 	dw Text_TX_RAM
 	dw Text_TX_BCD
--- a/items/item_attributes.asm
+++ b/items/item_attributes.asm
@@ -5,774 +5,517 @@
 	dn \6, \7
 ENDM
 
-Item1Attributes:
-
+ItemAttributes: ; 67c1
+; entries correspond to constants/item_constants.asm
 ; MASTER BALL
-	item_attribute     0, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
-Item2Attributes:
-
+	item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; ULTRA BALL
-	item_attribute  1200, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; BRIGHTPOWDER
-	item_attribute    10, HELD_BRIGHTPOWDER,   20,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; GREAT BALL
-	item_attribute   600, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; # BALL
-	item_attribute   200, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BICYCLE
-	item_attribute     0, 0,                 0,               CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; MOON STONE
-	item_attribute     0, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; ANTIDOTE
-	item_attribute   100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; BURN HEAL
-	item_attribute   250, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; ICE HEAL
-	item_attribute   250, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; AWAKENING
-	item_attribute   250, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; PARLYZ HEAL
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; FULL RESTORE
-	item_attribute  3000, 0,                -1,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 3000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; MAX POTION
-	item_attribute  2500, 0,                -1,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 2500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; HYPER POTION
-	item_attribute  1200, 0,               200,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 1200, 0, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; SUPER POTION
-	item_attribute   700, 0,                50,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 700, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; POTION
-	item_attribute   300, 0,                20,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; ESCAPE ROPE
-	item_attribute   550, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; REPEL
-	item_attribute   350, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; MAX ELIXER
-	item_attribute  4500, 0,                -1,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 4500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; FIRE STONE
-	item_attribute  2100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; THUNDERSTONE
-	item_attribute  2100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; WATER STONE
-	item_attribute  2100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; HP UP
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; PROTEIN
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; IRON
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; CARBOS
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; LUCKY PUNCH
-	item_attribute    10, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; CALCIUM
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; RARE CANDY
-	item_attribute  4800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 4800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; X ACCURACY
-	item_attribute   950, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 950, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; LEAF STONE
-	item_attribute  2100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; METAL POWDER
-	item_attribute    10, HELD_METAL_POWDER,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; NUGGET
-	item_attribute 10000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 10000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; # DOLL
-	item_attribute  1000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; FULL HEAL
-	item_attribute   600, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 600, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; REVIVE
-	item_attribute  1500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 1500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; MAX REVIVE
-	item_attribute  4000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 4000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; GUARD SPEC.
-	item_attribute   700, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; SUPER REPEL
-	item_attribute   500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; MAX REPEL
-	item_attribute   700, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; DIRE HIT
-	item_attribute   650, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 650, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; FRESH WATER
-	item_attribute   200, 0,                50,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 200, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; SODA POP
-	item_attribute   300, 0,                60,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 300, 0, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; LEMONADE
-	item_attribute   350, 0,                80,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 350, 0, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; X ATTACK
-	item_attribute   500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; X DEFEND
-	item_attribute   550, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; X SPEED
-	item_attribute   350, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; X SPECIAL
-	item_attribute   350, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; COIN CASE
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; ITEMFINDER
-	item_attribute     0, 0,                 0,               CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; EXP.SHARE
-	item_attribute  3000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; OLD ROD
-	item_attribute     0, 0,                 0,               CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; GOOD ROD
-	item_attribute     0, 0,                 0,               CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; SILVER LEAF
-	item_attribute  1000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SUPER ROD
-	item_attribute     0, 0,                 0,               CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; PP UP
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; ETHER
-	item_attribute  1200, 0,                10,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 1200, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; MAX ETHER
-	item_attribute  2000, 0,                -1,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 2000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; ELIXER
-	item_attribute  3000, 0,                10,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 3000, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; RED SCALE
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SECRETPOTION
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; S.S.TICKET
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MYSTERY EGG
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; CLEAR BELL
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SILVER WING
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MOOMOO MILK
-	item_attribute   500, 0,               100,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 500, 0, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; QUICK CLAW
-	item_attribute   100, HELD_QUICK_CLAW,     60,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; PSNCUREBERRY
-	item_attribute    10, HELD_HEAL_POISON,     0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; GOLD LEAF
-	item_attribute  1000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SOFT SAND
-	item_attribute   100, HELD_GROUND_BOOST,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SHARP BEAK
-	item_attribute   100, HELD_FLYING_BOOST,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; PRZCUREBERRY
-	item_attribute    10, HELD_HEAL_PARALYZE,   0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; BURNT BERRY
-	item_attribute    10, HELD_HEAL_FREEZE,     0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; ICE BERRY
-	item_attribute    10, HELD_HEAL_BURN,       0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; POISON BARB
-	item_attribute   100, HELD_POISON_BOOST,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; KING'S ROCK
-	item_attribute   100, HELD_TRADE_EVOLVE,   30,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_TRADE_EVOLVE, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BITTER BERRY
-	item_attribute    10, HELD_HEAL_CONFUSION,  0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
 ; MINT BERRY
-	item_attribute    10, HELD_HEAL_SLEEP,      0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; RED APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TINYMUSHROOM
-	item_attribute   500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BIG MUSHROOM
-	item_attribute  5000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 5000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SILVERPOWDER
-	item_attribute   100, HELD_BUG_BOOST,      10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLU APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; AMULET COIN
-	item_attribute   100, HELD_AMULET_COIN,    10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; YLW APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; GRN APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; CLEANSE TAG
-	item_attribute   200, HELD_CLEANSE_TAG,     0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MYSTIC WATER
-	item_attribute   100, HELD_WATER_BOOST,    10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TWISTEDSPOON
-	item_attribute   100, HELD_PSYCHIC_BOOST,  10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; WHT APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLACKBELT
-	item_attribute   100, HELD_FIGHTING_BOOST, 10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLK APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; PNK APRICORN
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLACKGLASSES
-	item_attribute   100, HELD_DARK_BOOST,     10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SLOWPOKETAIL
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; PINK BOW
-	item_attribute   100, HELD_NORMAL_BOOST,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; STICK
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SMOKE BALL
-	item_attribute   200, HELD_ESCAPE,          0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; NEVERMELTICE
-	item_attribute   100, HELD_ICE_BOOST,      10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MAGNET
-	item_attribute   100, HELD_ELECTRIC_BOOST, 10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MIRACLEBERRY
-	item_attribute    10, HELD_HEAL_STATUS,     0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; PEARL
-	item_attribute  1400, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 1400, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BIG PEARL
-	item_attribute  7500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 7500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; EVERSTONE
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SPELL TAG
-	item_attribute   100, HELD_GHOST_BOOST,    10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; RAGECANDYBAR
-	item_attribute   300, 0,                20,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; GS BALL
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLUE CARD
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; MIRACLE SEED
-	item_attribute   100, HELD_GRASS_BOOST,    10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; THICK CLUB
-	item_attribute   500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; FOCUS BAND
-	item_attribute   200, HELD_FOCUS_BAND,     30,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; ENERGYPOWDER
-	item_attribute   500, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; ENERGY ROOT
-	item_attribute   800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; HEAL POWDER
-	item_attribute   450, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 450, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; REVIVAL HERB
-	item_attribute  2800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 2800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; HARD STONE
-	item_attribute   100, HELD_ROCK_BOOST,     10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LUCKY EGG
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; CARD KEY
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; MACHINE PART
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; EGG TICKET
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LOST ITEM
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; STARDUST
-	item_attribute  2000, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; STAR PIECE
-	item_attribute  9800, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BASEMENT KEY
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; PASS
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; CHARCOAL
-	item_attribute  9800, HELD_FIRE_BOOST,     10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BERRY JUICE
-	item_attribute   100, HELD_BERRY,          20,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; SCOPE LENS
-	item_attribute   200, HELD_CRITICAL_UP,     0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; METAL COAT
-	item_attribute   100, HELD_STEEL_BOOST,    10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; DRAGON FANG
-	item_attribute   100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LEFTOVERS
-	item_attribute   200, HELD_LEFTOVERS,      10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MYSTERYBERRY
-	item_attribute    10, HELD_RESTORE_PP,     -1,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; DRAGON SCALE
-	item_attribute  2100, HELD_DRAGON_BOOST,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BERSERK GENE
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SACRED ASH
-	item_attribute   200, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; HEAVY BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; FLOWER MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LEVEL BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; LURE BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; FAST BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LIGHT BALL
-	item_attribute   100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; FRIEND BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; MOON BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; LOVE BALL
-	item_attribute   150, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; NORMAL BOX
-	item_attribute    10, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; GORGEOUS BOX
-	item_attribute    10, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_CURRENT, ITEMMENU_NOUSE
-
+	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
 ; SUN STONE
-	item_attribute  2100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; POLKADOT BOW
-	item_attribute   100, HELD_NORMAL_BOOST,   10,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; UP-GRADE
-	item_attribute  2100, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BERRY
-	item_attribute    10, HELD_BERRY,          10,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; GOLD BERRY
-	item_attribute    10, HELD_BERRY,          30,             CANT_SELECT, ITEM,     ITEMMENU_PARTY,   ITEMMENU_PARTY
-
+	item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
 ; SQUIRTBOTTLE
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; PARK BALL
-	item_attribute     0, 0,                 0,             CANT_SELECT, BALL,     ITEMMENU_NOUSE,   ITEMMENU_CLOSE
-
+	item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
 ; RAINBOW WING
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BRICK PIECE
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; SURF MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LITEBLUEMAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; PORTRAITMAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; LOVELY MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; EON MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MORPH MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; BLUESKY MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MUSIC MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; MIRAGE MAIL
-	item_attribute    50, 0,                 0,             CANT_SELECT, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TM01
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM02
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM03
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM04
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TM05
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM06
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM07
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM08
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM09
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM10
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM11
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM12
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM13
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM14
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM15
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM16
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM17
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM18
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM19
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM20
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM21
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM22
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM23
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM24
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM25
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM26
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM27
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM28
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TM29
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM30
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM31
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM32
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM33
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM34
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM35
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM36
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM37
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM38
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM39
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM40
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM41
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM42
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM43
-	item_attribute  1000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM44
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM45
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM46
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM47
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM48
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM49
-	item_attribute  3000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TM50
-	item_attribute  2000, 0,                 0,             CANT_SELECT, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM01
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM02
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM03
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM04
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM05
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM06
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; HM07
-	item_attribute     0, 0,                 0, CANT_SELECT | CANT_TOSS, TM_HM,    ITEMMENU_PARTY,   ITEMMENU_NOUSE
-
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; TERU-SAMA
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
-
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
 ; ?
-	item_attribute $9999, 0,                 0,                       0, ITEM,     ITEMMENU_NOUSE,   ITEMMENU_NOUSE
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -1006,7 +1006,7 @@
 	pop de
 	cp d
 	pop bc
-	ret nz ; for the intended effect, this should be “ret z”
+	ret nz ; for the intended effect, this should be "ret z"
 
 	sla b
 	jr c, .max
@@ -1044,7 +1044,7 @@
 	cp -1
 	jr z, .next
 	cp c
-	jr nz, .next ; for the intended effect, this should be “jr nz, .loop”
+	jr nz, .next ; for the intended effect, this should be "jr nz, .loop"
 	sla b
 	jr c, .max
 
--- a/macros.asm
+++ b/macros.asm
@@ -13,10 +13,15 @@
 INCLUDE "macros/mobile.asm"
 INCLUDE "macros/trainer.asm"
 INCLUDE "macros/trade_anim.asm"
-INCLUDE "macros/pals.asm"
+INCLUDE "macros/tilesets.asm"
 
 RGB: MACRO
+rept _NARG / 3
 	dw ((\3) << 10) + ((\2) << 5) + (\1)
+	shift
+	shift
+	shift
+endr
 	ENDM
 
 
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -1,3 +1,4 @@
+; ScriptCommandTable indexes (see engine/scripting.asm)
 	enum_start
 
 	enum scall_command
--- a/macros/map.asm
+++ b/macros/map.asm
@@ -21,13 +21,10 @@
 ;\1: number: controlled by dotrigger/domaptrigger
 ;\2: y: top to bottom, starts at 0
 ;\3: x: left to right, starts at 0
-;\4: unknown1: $0
-;\5: script pointer
-;\6: unknown2: $0
-;\7: unknown3: $0
-	db \1, \2, \3, \4
-	dw \5
-	db \6, \7
+;\4: script pointer
+	db \1, \2, \3, $0
+	dw \4
+	db $0, $0
 endm
 
 signpost: macro
--- a/macros/move_anim.asm
+++ b/macros/move_anim.asm
@@ -5,6 +5,7 @@
 	db \1
 	endm
 
+; BattleAnimCommands indexes (see battle/anim_commands.asm)
 	enum_start $d0
 
 	enum anim_obj_command ; d0
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -1,3 +1,4 @@
+; MovementPointers indexes (see engine/movement.asm)
 	enum_start
 
 ; Directional movements
--- a/macros/pals.asm
+++ /dev/null
@@ -1,9 +1,0 @@
-tilepal: MACRO
-; vram bank, pals
-x = \1 << OAM_TILE_BANK
-rept (_NARG +- 1) / 2
-	dn (x | PAL_BG_\3), (x | PAL_BG_\2)
-	shift
-	shift
-endr
-endm
--- a/macros/sound.asm
+++ b/macros/sound.asm
@@ -23,7 +23,9 @@
 	dw \1, \2, \3
 	endm
 
+; MusicCommands indexes (see audio/engine.asm)
 	enum_start $d8
+
 	enum notetype_cmd
 octave: macro
 	db notetype_cmd - (\1)
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -1,15 +1,15 @@
 text   EQUS "db $00," ; Start writing text.
 next   EQUS "db $4e," ; Move a line down.
 line   EQUS "db $4f," ; Start writing at the bottom line.
-page   EQUS "db $50," ; Start a new Pokedex page.
+page   EQUS "db $50," ; Start a new Pokédex page.
 para   EQUS "db $51," ; Start a new paragraph.
 cont   EQUS "db $55," ; Scroll to the next line.
 done   EQUS "db $57"  ; End a text box.
 prompt EQUS "db $58"  ; Prompt the player to end a text box (initiating some other event).
 
-; TX_RAM EQU $01
-; TX_FAR EQU $16
-	enum_start 1
+; TextCommands indexes (see home/text.asm)
+	enum_start $01
+
 	enum TX_RAM
 text_from_ram: MACRO
 	db TX_RAM
--- /dev/null
+++ b/macros/tilesets.asm
@@ -1,0 +1,13 @@
+tilepal: MACRO
+; vram bank, pals
+x = \1 << OAM_TILE_BANK
+rept (_NARG +- 1) / 2
+	dn (x | PAL_BG_\3), (x | PAL_BG_\2)
+	shift
+	shift
+endr
+endm
+
+tilecoll: MACRO
+	db COLL_\1, COLL_\2, COLL_\3, COLL_\4
+endm
--- a/macros/trade_anim.asm
+++ b/macros/trade_anim.asm
@@ -1,4 +1,6 @@
+; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm)
 	enum_start
+
 	enum tradeanim_next_command
 tradeanim_next: macro
 	db tradeanim_next_command ; 00
--- a/main.asm
+++ b/main.asm
@@ -236,8 +236,6 @@
 	db -1 ; end
 
 INCLUDE "engine/math.asm"
-
-ItemAttributes: ; 67c1
 INCLUDE "items/item_attributes.asm"
 INCLUDE "engine/npc_movement.asm"
 INCLUDE "event/happiness_egg.asm"
@@ -508,7 +506,7 @@
 ; Checks to see if the tile you're facing has a std script associated with it.  If so, executes the script and returns carry.
 	ld a, c
 	ld de, 3
-	ld hl, .table1
+	ld hl, TileCollisionStdScripts
 	call IsInArray
 	jr nc, .notintable
 
@@ -529,16 +527,7 @@
 	xor a
 	ret
 
-.table1
-	dbw $91, magazinebookshelf
-	dbw $93, pcscript
-	dbw $94, radio1
-	dbw $95, townmap
-	dbw $96, merchandiseshelf
-	dbw $97, tv
-	dbw $9d, window
-	dbw $9f, incenseburner
-	db   -1 ; end
+INCLUDE "data/collision_stdscripts.asm"
 
 Script_JumpStdFromRAM: ; 0x1369a
 	jump wJumpStdScriptBuffer
@@ -1952,7 +1941,7 @@
 
 INCLUDE "tilesets/palette_maps.asm"
 
-INCLUDE "tilesets/collision.asm"
+INCLUDE "data/collision_permissions.asm"
 
 EmptyAllSRAMBanks: ; 4cf1f
 	ld a, $0
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -472,9 +472,9 @@
 
 .XYTriggers:
 	db 3
-	xy_trigger 1, $a, $5, $0, AzaleaTownRivalBattleTrigger1, $0, $0
-	xy_trigger 1, $b, $5, $0, AzaleaTownRivalBattleTrigger2, $0, $0
-	xy_trigger 2, $6, $9, $0, AzaleaTownCelebiTrigger, $0, $0
+	xy_trigger 1, $a, $5, AzaleaTownRivalBattleTrigger1
+	xy_trigger 1, $b, $5, AzaleaTownRivalBattleTrigger2
+	xy_trigger 2, $6, $9, AzaleaTownCelebiTrigger
 
 .Signposts:
 	db 9
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -302,7 +302,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 1, $9, $b, $0, BurnedTowerRivalBattleScript, $0, $0
+	xy_trigger 1, $9, $b, BurnedTowerRivalBattleScript
 
 .Signposts:
 	db 2
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -250,7 +250,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $6, $a, $0, ReleaseTheBeasts, $0, $0
+	xy_trigger 0, $6, $a, ReleaseTheBeasts
 
 .Signposts:
 	db 0
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -560,8 +560,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $6, $21, $0, CherrygroveSilverTriggerNorth, $0, $0
-	xy_trigger 1, $7, $21, $0, CherrygroveSilverTriggerSouth, $0, $0
+	xy_trigger 1, $6, $21, CherrygroveSilverTriggerNorth
+	xy_trigger 1, $7, $21, CherrygroveSilverTriggerSouth
 
 .Signposts:
 	db 4
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -396,7 +396,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 1, $10, $b, $0, CianwoodCitySuicuneAndEusine, $0, $0
+	xy_trigger 1, $10, $b, CianwoodCitySuicuneAndEusine
 
 .Signposts:
 	db 8
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -417,7 +417,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 1, $1e, $13, $0, DragonsDenB1F_ClairTrigger, $0, $0
+	xy_trigger 1, $1e, $13, DragonsDenB1F_ClairTrigger
 
 .Signposts:
 	db 4
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -291,8 +291,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $7, $4, $0, EcruteakHouse_XYTrigger1, $0, $0
-	xy_trigger 0, $7, $5, $0, EcruteakHouse_XYTrigger2, $0, $0
+	xy_trigger 0, $7, $4, EcruteakHouse_XYTrigger1
+	xy_trigger 0, $7, $5, EcruteakHouse_XYTrigger2
 
 .Signposts:
 	db 0
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -1381,14 +1381,14 @@
 
 .XYTriggers:
 	db 8
-	xy_trigger 1, $6, $4, $0, LabTryToLeaveScript, $0, $0
-	xy_trigger 1, $6, $5, $0, LabTryToLeaveScript, $0, $0
-	xy_trigger 3, $5, $4, $0, MeetCopScript, $0, $0
-	xy_trigger 3, $5, $5, $0, MeetCopScript2, $0, $0
-	xy_trigger 5, $8, $4, $0, AideScript_WalkPotions1, $0, $0
-	xy_trigger 5, $8, $5, $0, AideScript_WalkPotions2, $0, $0
-	xy_trigger 6, $8, $4, $0, AideScript_WalkBalls1, $0, $0
-	xy_trigger 6, $8, $5, $0, AideScript_WalkBalls2, $0, $0
+	xy_trigger 1, $6, $4, LabTryToLeaveScript
+	xy_trigger 1, $6, $5, LabTryToLeaveScript
+	xy_trigger 3, $5, $4, MeetCopScript
+	xy_trigger 3, $5, $5, MeetCopScript2
+	xy_trigger 5, $8, $4, AideScript_WalkPotions1
+	xy_trigger 5, $8, $5, AideScript_WalkPotions2
+	xy_trigger 6, $8, $4, AideScript_WalkBalls1
+	xy_trigger 6, $8, $5, AideScript_WalkBalls2
 
 .Signposts:
 	db 16
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -306,8 +306,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 2, $6, $18, $0, WorriedGrandpaTriggerLeft, $0, $0
-	xy_trigger 2, $6, $19, $0, WorriedGrandpaTriggerRight, $0, $0
+	xy_trigger 2, $6, $18, WorriedGrandpaTriggerLeft
+	xy_trigger 2, $6, $19, WorriedGrandpaTriggerRight
 
 .Signposts:
 	db 0
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -459,8 +459,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $7, $1e, $0, UnknownScript_0x7673c, $0, $0
-	xy_trigger 0, $7, $1f, $0, UnknownScript_0x76751, $0, $0
+	xy_trigger 0, $7, $1e, UnknownScript_0x7673c
+	xy_trigger 0, $7, $1f, UnknownScript_0x76751
 
 .Signposts:
 	db 1
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -390,7 +390,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 1, $5, $8, $0, WhitneyCriesScript, $0, $0
+	xy_trigger 1, $5, $8, WhitneyCriesScript
 
 .Signposts:
 	db 2
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -177,7 +177,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $6, $b, $0, Script_ArriveFromSaffron, $0, $0
+	xy_trigger 0, $6, $b, Script_ArriveFromSaffron
 
 .Signposts:
 	db 0
--- a/maps/GoldenrodPokecenter1F.asm
+++ b/maps/GoldenrodPokecenter1F.asm
@@ -817,8 +817,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $7, $3, $0, GoldenrodPokecenter1F_GSBallTriggerLeft, $0, $0
-	xy_trigger 0, $7, $4, $0, GoldenrodPokecenter1F_GSBallTriggerRight, $0, $0
+	xy_trigger 0, $7, $3, GoldenrodPokecenter1F_GSBallTriggerLeft
+	xy_trigger 0, $7, $4, GoldenrodPokecenter1F_GSBallTriggerRight
 
 .Signposts:
 	db 0
--- a/maps/IndigoPlateauPokecenter1F.asm
+++ b/maps/IndigoPlateauPokecenter1F.asm
@@ -315,8 +315,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $4, $10, $0, PlateauRivalBattle1, $0, $0
-	xy_trigger 0, $4, $11, $0, PlateauRivalBattle2, $0, $0
+	xy_trigger 0, $4, $10, PlateauRivalBattle1
+	xy_trigger 0, $4, $11, PlateauRivalBattle2
 
 .Signposts:
 	db 0
--- a/maps/KrissHouse1F.asm
+++ b/maps/KrissHouse1F.asm
@@ -397,8 +397,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $4, $8, $0, UnknownScript_0x7a4d8, $0, $0
-	xy_trigger 0, $4, $9, $0, UnknownScript_0x7a4db, $0, $0
+	xy_trigger 0, $4, $8, UnknownScript_0x7a4d8
+	xy_trigger 0, $4, $9, UnknownScript_0x7a4db
 
 .Signposts:
 	db 4
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -350,8 +350,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $5, $4, $0, Script_ApproachLanceFromLeft, $0, $0
-	xy_trigger 1, $5, $5, $0, Script_ApproachLanceFromRight, $0, $0
+	xy_trigger 1, $5, $4, Script_ApproachLanceFromLeft
+	xy_trigger 1, $5, $5, Script_ApproachLanceFromRight
 
 .Signposts:
 	db 0
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -258,8 +258,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $8, $13, $0, UnknownScript_0x190013, $0, $0
-	xy_trigger 0, $9, $13, $0, UnknownScript_0x190013, $0, $0
+	xy_trigger 0, $8, $13, UnknownScript_0x190013
+	xy_trigger 0, $9, $13, UnknownScript_0x190013
 
 .Signposts:
 	db 4
--- a/maps/MountMoonSquare.asm
+++ b/maps/MountMoonSquare.asm
@@ -145,7 +145,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $b, $7, $0, ClefairyDance, $0, $0
+	xy_trigger 0, $b, $7, ClefairyDance
 
 .Signposts:
 	db 2
--- a/maps/NewBarkTown.asm
+++ b/maps/NewBarkTown.asm
@@ -294,8 +294,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $8, $1, $0, NewBarkTown_TeacherStopsYouTrigger1, $0, $0
-	xy_trigger 0, $9, $1, $0, NewBarkTown_TeacherStopsYouTrigger2, $0, $0
+	xy_trigger 0, $8, $1, NewBarkTown_TeacherStopsYouTrigger1
+	xy_trigger 0, $9, $1, NewBarkTown_TeacherStopsYouTrigger2
 
 .Signposts:
 	db 4
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -307,8 +307,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $c, $d, $0, UnknownScript_0x1a8833, $0, $0
-	xy_trigger 0, $d, $d, $0, UnknownScript_0x1a886b, $0, $0
+	xy_trigger 0, $c, $d, UnknownScript_0x1a8833
+	xy_trigger 0, $d, $d, UnknownScript_0x1a886b
 
 .Signposts:
 	db 7
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -396,7 +396,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $f, $7, $0, UnknownScript_0x7491f, $0, $0
+	xy_trigger 0, $f, $7, UnknownScript_0x7491f
 
 .Signposts:
 	db 1
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -399,7 +399,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 1, $c, $5, $0, PowerPlantGuardPhoneScript, $0, $0
+	xy_trigger 1, $c, $5, PowerPlantGuardPhoneScript
 
 .Signposts:
 	db 2
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -431,8 +431,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $3, $0, $0, FakeDirectorScript, $0, $0
-	xy_trigger 1, $5, $10, $0, RadioTower5FRocketBossTrigger, $0, $0
+	xy_trigger 0, $3, $0, FakeDirectorScript
+	xy_trigger 1, $5, $10, RadioTower5FRocketBossTrigger
 
 .Signposts:
 	db 5
--- a/maps/Route16Gate.asm
+++ b/maps/Route16Gate.asm
@@ -73,8 +73,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $4, $5, $0, UnknownScript_0x733ed, $0, $0
-	xy_trigger 0, $5, $5, $0, UnknownScript_0x733ed, $0, $0
+	xy_trigger 0, $4, $5, UnknownScript_0x733ed
+	xy_trigger 0, $5, $5, UnknownScript_0x733ed
 
 .Signposts:
 	db 0
--- a/maps/Route1718Gate.asm
+++ b/maps/Route1718Gate.asm
@@ -64,8 +64,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $4, $5, $0, UnknownScript_0x73611, $0, $0
-	xy_trigger 0, $5, $5, $0, UnknownScript_0x73611, $0, $0
+	xy_trigger 0, $4, $5, UnknownScript_0x73611
+	xy_trigger 0, $5, $5, UnknownScript_0x73611
 
 .Signposts:
 	db 0
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -440,8 +440,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $6, $2a, $0, UnknownScript_0x19eea0, $0, $0
-	xy_trigger 1, $7, $2a, $0, UnknownScript_0x19eee0, $0, $0
+	xy_trigger 1, $6, $2a, UnknownScript_0x19eea0
+	xy_trigger 1, $7, $2a, UnknownScript_0x19eee0
 
 .Signposts:
 	db 2
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -479,8 +479,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $a, $12, $0, UnknownScript_0x1a0873, $0, $0
-	xy_trigger 0, $a, $13, $0, UnknownScript_0x1a0881, $0, $0
+	xy_trigger 0, $a, $12, UnknownScript_0x1a0873
+	xy_trigger 0, $a, $13, UnknownScript_0x1a0881
 
 .Signposts:
 	db 1
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -425,8 +425,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $8, $35, $0, Route29Tutorial1, $0, $0
-	xy_trigger 1, $9, $35, $0, Route29Tutorial2, $0, $0
+	xy_trigger 1, $8, $35, Route29Tutorial1
+	xy_trigger 1, $9, $35, Route29Tutorial2
 
 .Signposts:
 	db 2
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -943,8 +943,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $8, $12, $0, Route32CooltrainerMStopsYou, $0, $0
-	xy_trigger 1, $47, $7, $0, Route32WannaBuyASlowpokeTailScript, $0, $0
+	xy_trigger 0, $8, $12, Route32CooltrainerMStopsYou
+	xy_trigger 1, $47, $7, Route32WannaBuyASlowpokeTailScript
 
 .Signposts:
 	db 6
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -148,7 +148,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $7, $4, $0, UnknownScript_0x62d3d, $0, $0
+	xy_trigger 0, $7, $4, UnknownScript_0x62d3d
 
 .Signposts:
 	db 0
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -672,8 +672,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $7, $14, $0, Route36SuicuneScript, $0, $0
-	xy_trigger 1, $7, $16, $0, Route36SuicuneScript, $0, $0
+	xy_trigger 1, $7, $14, Route36SuicuneScript
+	xy_trigger 1, $7, $16, Route36SuicuneScript
 
 .Signposts:
 	db 4
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -333,7 +333,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 1, $e, $18, $0, Route42SuicuneScript, $0, $0
+	xy_trigger 1, $e, $18, Route42SuicuneScript
 
 .Signposts:
 	db 5
--- a/maps/RuinsOfAlphOutside.asm
+++ b/maps/RuinsOfAlphOutside.asm
@@ -302,8 +302,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 1, $e, $b, $0, RuinsOfAlphOutsideScientistTrigger1, $0, $0
-	xy_trigger 1, $f, $a, $0, RuinsOfAlphOutsideScientistTrigger2, $0, $0
+	xy_trigger 1, $e, $b, RuinsOfAlphOutsideScientistTrigger1
+	xy_trigger 1, $f, $a, RuinsOfAlphOutsideScientistTrigger2
 
 .Signposts:
 	db 3
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -228,7 +228,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $6, $b, $0, Script_ArriveFromGoldenrod, $0, $0
+	xy_trigger 0, $6, $b, Script_ArriveFromGoldenrod
 
 .Signposts:
 	db 0
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -339,7 +339,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $9, $b, $0, UnknownScript_0x184947, $0, $0
+	xy_trigger 0, $9, $b, UnknownScript_0x184947
 
 .Signposts:
 	db 6
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -742,38 +742,38 @@
 	db 30
 	; There are five security cameras in the base.
 	; Walking in front of one triggers two Rocket Grunts.
-	xy_trigger 0, $2, $18, $0, SecurityCamera1a, $0, $0
-	xy_trigger 0, $3, $18, $0, SecurityCamera1b, $0, $0
-	xy_trigger 0, $2, $6, $0, SecurityCamera2a, $0, $0
-	xy_trigger 0, $3, $6, $0, SecurityCamera2b, $0, $0
-	xy_trigger 0, $6, $18, $0, SecurityCamera3a, $0, $0
-	xy_trigger 0, $7, $18, $0, SecurityCamera3b, $0, $0
-	xy_trigger 0, $10, $16, $0, SecurityCamera4, $0, $0
-	xy_trigger 0, $10, $8, $0, SecurityCamera5, $0, $0
+	xy_trigger 0, $2, $18, SecurityCamera1a
+	xy_trigger 0, $3, $18, SecurityCamera1b
+	xy_trigger 0, $2, $6, SecurityCamera2a
+	xy_trigger 0, $3, $6, SecurityCamera2b
+	xy_trigger 0, $6, $18, SecurityCamera3a
+	xy_trigger 0, $7, $18, SecurityCamera3b
+	xy_trigger 0, $10, $16, SecurityCamera4
+	xy_trigger 0, $10, $8, SecurityCamera5
 	; There are spots on the floor that trigger a Pokémon battle.
 	; Each Pokémon (Voltorb, Koffing, Geodude) knows Selfdestruct.
-	xy_trigger 0, $7, $2, $0, ExplodingTrap1, $0, $0
-	xy_trigger 0, $7, $3, $0, ExplodingTrap2, $0, $0
-	xy_trigger 0, $7, $4, $0, ExplodingTrap3, $0, $0
-	xy_trigger 0, $8, $1, $0, ExplodingTrap4, $0, $0
-	xy_trigger 0, $8, $3, $0, ExplodingTrap5, $0, $0
-	xy_trigger 0, $8, $5, $0, ExplodingTrap6, $0, $0
-	xy_trigger 0, $9, $3, $0, ExplodingTrap7, $0, $0
-	xy_trigger 0, $9, $4, $0, ExplodingTrap8, $0, $0
-	xy_trigger 0, $a, $1, $0, ExplodingTrap9, $0, $0
-	xy_trigger 0, $a, $2, $0, ExplodingTrap10, $0, $0
-	xy_trigger 0, $a, $3, $0, ExplodingTrap11, $0, $0
-	xy_trigger 0, $a, $5, $0, ExplodingTrap12, $0, $0
-	xy_trigger 0, $b, $2, $0, ExplodingTrap13, $0, $0
-	xy_trigger 0, $b, $4, $0, ExplodingTrap14, $0, $0
-	xy_trigger 0, $c, $1, $0, ExplodingTrap15, $0, $0
-	xy_trigger 0, $c, $2, $0, ExplodingTrap16, $0, $0
-	xy_trigger 0, $c, $4, $0, ExplodingTrap17, $0, $0
-	xy_trigger 0, $c, $5, $0, ExplodingTrap18, $0, $0
-	xy_trigger 0, $d, $1, $0, ExplodingTrap19, $0, $0
-	xy_trigger 0, $d, $3, $0, ExplodingTrap20, $0, $0
-	xy_trigger 0, $d, $4, $0, ExplodingTrap21, $0, $0
-	xy_trigger 0, $d, $5, $0, ExplodingTrap22, $0, $0
+	xy_trigger 0, $7, $2, ExplodingTrap1
+	xy_trigger 0, $7, $3, ExplodingTrap2
+	xy_trigger 0, $7, $4, ExplodingTrap3
+	xy_trigger 0, $8, $1, ExplodingTrap4
+	xy_trigger 0, $8, $3, ExplodingTrap5
+	xy_trigger 0, $8, $5, ExplodingTrap6
+	xy_trigger 0, $9, $3, ExplodingTrap7
+	xy_trigger 0, $9, $4, ExplodingTrap8
+	xy_trigger 0, $a, $1, ExplodingTrap9
+	xy_trigger 0, $a, $2, ExplodingTrap10
+	xy_trigger 0, $a, $3, ExplodingTrap11
+	xy_trigger 0, $a, $5, ExplodingTrap12
+	xy_trigger 0, $b, $2, ExplodingTrap13
+	xy_trigger 0, $b, $4, ExplodingTrap14
+	xy_trigger 0, $c, $1, ExplodingTrap15
+	xy_trigger 0, $c, $2, ExplodingTrap16
+	xy_trigger 0, $c, $4, ExplodingTrap17
+	xy_trigger 0, $c, $5, ExplodingTrap18
+	xy_trigger 0, $d, $1, ExplodingTrap19
+	xy_trigger 0, $d, $3, ExplodingTrap20
+	xy_trigger 0, $d, $4, ExplodingTrap21
+	xy_trigger 0, $d, $5, ExplodingTrap22
 
 .Signposts:
 	db 9
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -923,15 +923,15 @@
 
 .XYTriggers:
 	db 9
-	xy_trigger 0, $e, $5, $0, LanceHealsScript1, $0, $0
-	xy_trigger 0, $d, $4, $0, LanceHealsScript2, $0, $0
-	xy_trigger 1, $b, $e, $0, UnknownScript_0x6cf95, $0, $0
-	xy_trigger 1, $b, $f, $0, UnknownScript_0x6cf9c, $0, $0
-	xy_trigger 2, $c, $e, $0, UnknownScript_0x6d075, $0, $0
-	xy_trigger 2, $c, $f, $0, UnknownScript_0x6d075, $0, $0
-	xy_trigger 2, $3, $c, $0, UnknownScript_0x6d07a, $0, $0
-	xy_trigger 2, $a, $c, $0, UnknownScript_0x6d07a, $0, $0
-	xy_trigger 2, $b, $c, $0, UnknownScript_0x6d07a, $0, $0
+	xy_trigger 0, $e, $5, LanceHealsScript1
+	xy_trigger 0, $d, $4, LanceHealsScript2
+	xy_trigger 1, $b, $e, UnknownScript_0x6cf95
+	xy_trigger 1, $b, $f, UnknownScript_0x6cf9c
+	xy_trigger 2, $c, $e, UnknownScript_0x6d075
+	xy_trigger 2, $c, $f, UnknownScript_0x6d075
+	xy_trigger 2, $3, $c, UnknownScript_0x6d07a
+	xy_trigger 2, $a, $c, UnknownScript_0x6d07a
+	xy_trigger 2, $b, $c, UnknownScript_0x6d07a
 
 .Signposts:
 	db 23
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -578,9 +578,9 @@
 
 .XYTriggers:
 	db 3
-	xy_trigger 2, $8, $a, $0, UnknownScript_0x6e04b, $0, $0
-	xy_trigger 2, $8, $b, $0, UnknownScript_0x6e052, $0, $0
-	xy_trigger 1, $a, $8, $0, RocketBaseRival, $0, $0
+	xy_trigger 2, $8, $a, UnknownScript_0x6e04b
+	xy_trigger 2, $8, $b, UnknownScript_0x6e052
+	xy_trigger 1, $a, $8, RocketBaseRival
 
 .Signposts:
 	db 10
--- a/maps/TrainerHouseB1F.asm
+++ b/maps/TrainerHouseB1F.asm
@@ -179,7 +179,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $3, $7, $0, TrainerHouseReceptionistScript, $0, $0
+	xy_trigger 0, $3, $7, TrainerHouseReceptionistScript
 
 .Signposts:
 	db 0
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -949,8 +949,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $4, $13, $0, UndergroundSilverTrigger1, $0, 0
-	xy_trigger 0, $5, $13, $0, UndergroundSilverTrigger2, $0, 0
+	xy_trigger 0, $4, $13, UndergroundSilverTrigger1
+	xy_trigger 0, $5, $13, UndergroundSilverTrigger2
 
 .Signposts:
 	db 6
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -310,7 +310,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $b, $7, $0, UnknownScript_0x74e20, $0, $0
+	xy_trigger 0, $b, $7, UnknownScript_0x74e20
 
 .Signposts:
 	db 1
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -259,8 +259,8 @@
 
 .XYTriggers:
 	db 2
-	xy_trigger 0, $8, $c, $0, UnknownScript_0x74492, $0, $0
-	xy_trigger 0, $8, $d, $0, UnknownScript_0x744b5, $0, $0
+	xy_trigger 0, $8, $c, UnknownScript_0x74492
+	xy_trigger 0, $8, $d, UnknownScript_0x744b5
 
 .Signposts:
 	db 2
--- a/maps/VictoryRoadGate.asm
+++ b/maps/VictoryRoadGate.asm
@@ -114,7 +114,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $b, $a, $0, VictoryRoadGateBadgeCheckTrigger, $0, $0
+	xy_trigger 0, $b, $a, VictoryRoadGateBadgeCheckTrigger
 
 .Signposts:
 	db 0
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -356,7 +356,7 @@
 
 .XYTriggers:
 	db 1
-	xy_trigger 0, $4, $7, $0, UnknownScript_0x985a3, $0, $0
+	xy_trigger 0, $4, $7, UnknownScript_0x985a3
 
 .Signposts:
 	db 0
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -526,7 +526,7 @@
 	call DelayFrames
 	call Function108bec
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_20
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
 	call _InitSpriteAnimStruct
 	ld de, SFX_BALL_POOF
 	call PlaySFX
@@ -561,7 +561,7 @@
 	ld a, $90
 	ld [hWY], a
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_21
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
 	call _InitSpriteAnimStruct
 	call Function108b45
 	ld a, $1
@@ -661,7 +661,7 @@
 	call DelayFrames
 	call Function108c2b
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_20
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
 	call _InitSpriteAnimStruct
 	ld de, SFX_BALL_POOF
 	call PlaySFX
@@ -705,7 +705,7 @@
 	ld a, $90
 	ld [hWY], a
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_21
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
 	call _InitSpriteAnimStruct
 	call Function108b45
 	ld a, $1
@@ -774,7 +774,7 @@
 	ld a, $90
 	ld [hWY], a
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_21
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
 	call _InitSpriteAnimStruct
 	call Function108b45
 	ld a, $1
@@ -960,7 +960,7 @@
 	cp $f8
 	jr nz, .next
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_22
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
 	call _InitSpriteAnimStruct
 
 .next
@@ -985,7 +985,7 @@
 
 .init
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_22
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
 	call _InitSpriteAnimStruct
 	xor a
 	call Function108ad4
@@ -1016,7 +1016,7 @@
 	call Function108af4
 	call Function108b5a
 	depixel 9, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_25
+	ld a, SPRITE_ANIM_INDEX_MOBILE_25
 	call _InitSpriteAnimStruct
 	ld de, SFX_FORESIGHT
 	call PlaySFX
@@ -1025,7 +1025,7 @@
 	xor a
 	ld [wcf64], a
 	depixel 9, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_23
+	ld a, SPRITE_ANIM_INDEX_MOBILE_23
 	call _InitSpriteAnimStruct
 .loop
 	ld a, [hSCY]
@@ -1052,7 +1052,7 @@
 	ld c, 60
 	call WaitMobileTradeSpriteAnims
 	depixel 30, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_24
+	ld a, SPRITE_ANIM_INDEX_MOBILE_24
 	call _InitSpriteAnimStruct
 	call GetMobileTradeAnimByte
 	ld de, SFX_THROW_BALL
@@ -1075,7 +1075,7 @@
 	ld c, 80
 	call DelayFrames
 	depixel 30, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_24
+	ld a, SPRITE_ANIM_INDEX_MOBILE_24
 	call _InitSpriteAnimStruct
 	call GetMobileTradeAnimByte
 	ld de, SFX_THROW_BALL
@@ -1099,7 +1099,7 @@
 .done
 	callba DeinitializeAllSprites
 	depixel 9, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_25
+	ld a, SPRITE_ANIM_INDEX_MOBILE_25
 	call _InitSpriteAnimStruct
 	ld de, SFX_GLASS_TING_2
 	call PlaySFX
@@ -1135,13 +1135,13 @@
 
 .asm_1088c5
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_22
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
 	call _InitSpriteAnimStruct
 	jr .asm_1088e7
 
 .asm_1088cf
 	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_22
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
 	call _InitSpriteAnimStruct
 	xor a
 	call Function108ad4
--- /dev/null
+++ b/tilesets/aerodactyl_word_room_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, WALL, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, WALL ; 1a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, PIT ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/aerodactyl_word_room_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/battle_tower_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+	tilecoll WALL, DOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 07
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 09
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll DOOR, WALL, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 12
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 15
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 16
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 18
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 19
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1f
+	tilecoll WALL, WALL, FLOOR, WALL ; 20
+	tilecoll WALL, WALL, WALL, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 22
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 25
+	tilecoll WALL, FLOOR, FLOOR, DOOR ; 26
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 27
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 28
+	tilecoll WALL, PC, FLOOR, FLOOR ; 29
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+	tilecoll WALL, WALL, WALL, FLOOR ; 2b
+	tilecoll WALL, WALL, FLOOR, WALL ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, DOOR ; 2d
+	tilecoll FLOOR, FLOOR, DOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll WALL, WALL, FLOOR, WALL ; 37
+	tilecoll WALL, WALL, WALL, FLOOR ; 38
+	tilecoll WALL, WALL, FLOOR, WALL ; 39
+	tilecoll WALL, WALL, WALL, WALL ; 3a
+	tilecoll WALL, WALL, WALL, FLOOR ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, WALL, FLOOR, WALL ; 3d
+	tilecoll WALL, WALL, FLOOR, WALL ; 3e
+	tilecoll WALL, WALL, WALL, FLOOR ; 3f
+	tilecoll WALL, WALL, FLOOR, WALL ; 40
binary files a/tilesets/battle_tower_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/battle_tower_outside_collision.asm
@@ -1,0 +1,128 @@
+	tilecoll 01, 01, 01, 01 ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, WALL, WALL ; 09
+	tilecoll WALL, WALL, WALL, WALL ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0d
+	tilecoll FLOOR, WALL, WALL, WALL ; 0e
+	tilecoll WALL, WALL, WALL, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 11
+	tilecoll WALL, WALL, FLOOR, WALL ; 12
+	tilecoll WALL, WALL, DOOR, DOOR ; 13
+	tilecoll WALL, WALL, WALL, FLOOR ; 14
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll WALL, WALL, DOOR, WALL ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, WALL ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 1d
+	tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 20
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 21
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll WALL, WALL, WALL, WALL ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, FLOOR, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll WALL, FLOOR, WALL, WALL ; 30
+	tilecoll WALL, WALL, WALL, WALL ; 31
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 32
+	tilecoll WALL, HEADBUTT_TREE, WALL, HEADBUTT_TREE ; 33
+	tilecoll WALL, WALL, WALL, WALL ; 34
+	tilecoll WHIRLPOOL, FLOOR, WHIRLPOOL, FLOOR ; 35
+	tilecoll WHIRLPOOL, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll 5B, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll 5B, 01, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 41
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 42
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 43
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 44
+	tilecoll FLOOR, FLOOR, BRAKE_45, FLOOR ; 45
+	tilecoll FLOOR, FLOOR, BRAKE_45, FLOOR ; 46
+	tilecoll FLOOR, FLOOR, BRAKE_45, FLOOR ; 47
+	tilecoll FLOOR, FLOOR, BRAKE_45, FLOOR ; 48
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 49
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 50
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 51
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 52
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 53
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 54
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 55
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 56
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 57
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 58
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 59
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 60
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 61
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 62
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 63
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 64
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 65
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 66
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 67
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 68
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 69
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 6a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 6b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 6c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 6d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 6e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 6f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 70
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 71
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 72
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 73
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 74
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 75
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 76
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 77
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 78
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 79
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 80
binary files a/tilesets/battle_tower_outside_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/beta_word_room_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, WALL, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, WALL ; 1a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, PIT ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/beta_word_room_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/cave_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 04
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 05
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 06
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 08
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 0c
+	tilecoll WALL, FLOOR, WALL, WALL ; 0d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, WALL, WALL ; 0f
+	tilecoll WATER, WATER, WATER, WATER ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 11
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, WALL, CAVE ; 14
+	tilecoll UP_WALL, UP_WALL, FLOOR, LADDER ; 15
+	tilecoll UP_WALL, UP_WALL, FLOOR, LADDER ; 16
+	tilecoll WALL, FLOOR, WALL, WARP_CARPET_DOWN ; 17
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, WALL, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1a
+	tilecoll WALL, WALL, FLOOR, WALL ; 1b
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 1c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 20
+	tilecoll WALL, FLOOR, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 22
+	tilecoll FLOOR, WALL, WALL, WALL ; 23
+	tilecoll UP_WALL, WALL, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 25
+	tilecoll WATER, WATER, WATER, WATER ; 26
+	tilecoll WATER, WATER, WATER, WATER ; 27
+	tilecoll WATER, WATER, WATER, WATER ; 28
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2a
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2c
+	tilecoll WATERFALL, WATERFALL, WATERFALL, WATERFALL ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WATER, WATER, WATER, WATER ; 33
+	tilecoll WATER, WATER, WATER, WATER ; 34
+	tilecoll WALL, WALL, WALL, WALL ; 35
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+	tilecoll WALL, WALL, WALL, CAVE ; 38
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 39
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 3a
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 3b
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 3c
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 3d
+	tilecoll WATER, WATER, WATER, WATER ; 3e
+	tilecoll WATER, WATER, WATER, WATER ; 3f
+	tilecoll FLOOR, FLOOR, PIT, FLOOR ; 40
binary files a/tilesets/cave_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/celadon_mansion_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 06
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 07
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0a
+	tilecoll WALL, WALL, FLOOR, WALL ; 0b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0c
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0d
+	tilecoll WALL, WALL, FLOOR, WALL ; 0e
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0f
+	tilecoll WALL, WALL, BOOKSHELF, INCENSE_BURNER ; 10
+	tilecoll WALL, WALL, WALL, WALL ; 11
+	tilecoll WALL, WALL, BOOKSHELF, WALL ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 15
+	tilecoll STAIRCASE, STAIRCASE, FLOOR, FLOOR ; 16
+	tilecoll STAIRCASE, STAIRCASE, FLOOR, FLOOR ; 17
+	tilecoll WALL, DOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, BOOKSHELF, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1c
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1e
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1f
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 20
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 21
+	tilecoll RIGHT_WALL, LEFT_WALL, WALL, FLOOR ; 22
+	tilecoll WALL, WALL, FLOOR, WALL ; 23
+	tilecoll WALL, WALL, STAIRCASE, LEFT_WALL ; 24
+	tilecoll WALL, WALL, WALL, STAIRCASE ; 25
+	tilecoll WALL, WALL, LEFT_WALL, FLOOR ; 26
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 27
+	tilecoll WALL, WALL, DOOR, WALL ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 29
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 2a
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll RIGHT_WALL, LEFT_WALL, RIGHT_WALL, LEFT_WALL ; 2d
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll WALL, WALL, WALL, FLOOR ; 30
+	tilecoll WALL, WALL, FLOOR, WALL ; 31
+	tilecoll WALL, WALL, FLOOR, WALL ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll WALL, WALL, WALL, FLOOR ; 34
+	tilecoll WALL, WALL, WALL, WALL ; 35
+	tilecoll FLOOR, WALL, WALL, WALL ; 36
+	tilecoll WALL, WALL, FLOOR, WALL ; 37
+	tilecoll WALL, FLOOR, WALL, WALL ; 38
+	tilecoll WALL, WALL, FLOOR, WALL ; 39
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll WALL, FLOOR, WALL, WALL ; 3e
+	tilecoll FLOOR, WALL, WALL, WALL ; 3f
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 40
binary files a/tilesets/celadon_mansion_collision.bin /dev/null differ
--- a/tilesets/collision.asm
+++ /dev/null
@@ -1,262 +1,0 @@
-NONTALKABLE EQUS "db"
-TALKABLE    EQUS "db TALK +"
-
-TileCollisionTable:: ; 4ce1f
-; entries correspond to collision ids
-	NONTALKABLE  LANDTILE ; 00
-	NONTALKABLE  LANDTILE ; 01
-	NONTALKABLE  LANDTILE ; 02
-	NONTALKABLE  LANDTILE ; 03
-	NONTALKABLE  LANDTILE ; 04
-	NONTALKABLE  LANDTILE ; 05
-	NONTALKABLE  LANDTILE ; 06
-	NONTALKABLE  WALLTILE ; 07
-	NONTALKABLE  LANDTILE ; 08
-	NONTALKABLE  LANDTILE ; 09
-	NONTALKABLE  LANDTILE ; 0a
-	NONTALKABLE  LANDTILE ; 0b
-	NONTALKABLE  LANDTILE ; 0c
-	NONTALKABLE  LANDTILE ; 0d
-	NONTALKABLE  LANDTILE ; 0e
-	NONTALKABLE  WALLTILE ; 0f
-	NONTALKABLE  LANDTILE ; 10
-	NONTALKABLE  LANDTILE ; 11
-	   TALKABLE  WALLTILE ; 12
-	NONTALKABLE  LANDTILE ; 13
-	NONTALKABLE  LANDTILE ; 14
-	   TALKABLE  WALLTILE ; 15
-	NONTALKABLE  LANDTILE ; 16
-	NONTALKABLE  LANDTILE ; 17
-	NONTALKABLE  LANDTILE ; 18
-	NONTALKABLE  LANDTILE ; 19
-	   TALKABLE  WALLTILE ; 1a
-	NONTALKABLE  LANDTILE ; 1b
-	NONTALKABLE  LANDTILE ; 1c
-	   TALKABLE  WALLTILE ; 1d
-	NONTALKABLE  LANDTILE ; 1e
-	NONTALKABLE  LANDTILE ; 1f
-	NONTALKABLE WATERTILE ; 20
-	NONTALKABLE WATERTILE ; 21
-	   TALKABLE WATERTILE ; 22
-	NONTALKABLE  LANDTILE ; 23
-	   TALKABLE WATERTILE ; 24
-	NONTALKABLE WATERTILE ; 25
-	NONTALKABLE WATERTILE ; 26
-	NONTALKABLE  WALLTILE ; 27
-	NONTALKABLE WATERTILE ; 28
-	NONTALKABLE WATERTILE ; 29
-	   TALKABLE WATERTILE ; 2a
-	NONTALKABLE  LANDTILE ; 2b
-	   TALKABLE WATERTILE ; 2c
-	NONTALKABLE WATERTILE ; 2d
-	NONTALKABLE WATERTILE ; 2e
-	NONTALKABLE  WALLTILE ; 2f
-	NONTALKABLE WATERTILE ; 30
-	NONTALKABLE WATERTILE ; 31
-	NONTALKABLE WATERTILE ; 32
-	NONTALKABLE WATERTILE ; 33
-	NONTALKABLE WATERTILE ; 34
-	NONTALKABLE WATERTILE ; 35
-	NONTALKABLE WATERTILE ; 36
-	NONTALKABLE WATERTILE ; 37
-	NONTALKABLE WATERTILE ; 38
-	NONTALKABLE WATERTILE ; 39
-	NONTALKABLE WATERTILE ; 3a
-	NONTALKABLE WATERTILE ; 3b
-	NONTALKABLE WATERTILE ; 3c
-	NONTALKABLE WATERTILE ; 3d
-	NONTALKABLE WATERTILE ; 3e
-	NONTALKABLE WATERTILE ; 3f
-	NONTALKABLE  LANDTILE ; 40
-	NONTALKABLE  LANDTILE ; 41
-	NONTALKABLE  LANDTILE ; 42
-	NONTALKABLE  LANDTILE ; 43
-	NONTALKABLE  LANDTILE ; 44
-	NONTALKABLE  LANDTILE ; 45
-	NONTALKABLE  LANDTILE ; 46
-	NONTALKABLE  LANDTILE ; 47
-	NONTALKABLE  LANDTILE ; 48
-	NONTALKABLE  LANDTILE ; 49
-	NONTALKABLE  LANDTILE ; 4a
-	NONTALKABLE  LANDTILE ; 4b
-	NONTALKABLE  LANDTILE ; 4c
-	NONTALKABLE  LANDTILE ; 4d
-	NONTALKABLE  LANDTILE ; 4e
-	NONTALKABLE  LANDTILE ; 4f
-	NONTALKABLE  LANDTILE ; 50
-	NONTALKABLE  LANDTILE ; 51
-	NONTALKABLE  LANDTILE ; 52
-	NONTALKABLE  LANDTILE ; 53
-	NONTALKABLE  LANDTILE ; 54
-	NONTALKABLE  LANDTILE ; 55
-	NONTALKABLE  LANDTILE ; 56
-	NONTALKABLE  LANDTILE ; 57
-	NONTALKABLE  LANDTILE ; 58
-	NONTALKABLE  LANDTILE ; 59
-	NONTALKABLE  LANDTILE ; 5a
-	NONTALKABLE  LANDTILE ; 5b
-	NONTALKABLE  LANDTILE ; 5c
-	NONTALKABLE  LANDTILE ; 5d
-	NONTALKABLE  LANDTILE ; 5e
-	NONTALKABLE  LANDTILE ; 5f
-	NONTALKABLE  LANDTILE ; 60
-	NONTALKABLE  LANDTILE ; 61
-	NONTALKABLE  WALLTILE ; 62
-	NONTALKABLE  LANDTILE ; 63
-	NONTALKABLE  LANDTILE ; 64
-	NONTALKABLE  LANDTILE ; 65
-	NONTALKABLE  LANDTILE ; 66
-	NONTALKABLE  LANDTILE ; 67
-	NONTALKABLE  LANDTILE ; 68
-	NONTALKABLE  LANDTILE ; 69
-	NONTALKABLE  WALLTILE ; 6a
-	NONTALKABLE  LANDTILE ; 6b
-	NONTALKABLE  LANDTILE ; 6c
-	NONTALKABLE  LANDTILE ; 6d
-	NONTALKABLE  LANDTILE ; 6e
-	NONTALKABLE  LANDTILE ; 6f
-	NONTALKABLE  LANDTILE ; 70
-	NONTALKABLE  LANDTILE ; 71
-	NONTALKABLE  LANDTILE ; 72
-	NONTALKABLE  LANDTILE ; 73
-	NONTALKABLE  LANDTILE ; 74
-	NONTALKABLE  LANDTILE ; 75
-	NONTALKABLE  LANDTILE ; 76
-	NONTALKABLE  LANDTILE ; 77
-	NONTALKABLE  LANDTILE ; 78
-	NONTALKABLE  LANDTILE ; 79
-	NONTALKABLE  LANDTILE ; 7a
-	NONTALKABLE  LANDTILE ; 7b
-	NONTALKABLE  LANDTILE ; 7c
-	NONTALKABLE  LANDTILE ; 7d
-	NONTALKABLE  LANDTILE ; 7e
-	NONTALKABLE  LANDTILE ; 7f
-	NONTALKABLE  WALLTILE ; 80
-	NONTALKABLE  WALLTILE ; 81
-	NONTALKABLE  WALLTILE ; 82
-	NONTALKABLE  WALLTILE ; 83
-	NONTALKABLE  WALLTILE ; 84
-	NONTALKABLE  LANDTILE ; 85
-	NONTALKABLE  LANDTILE ; 86
-	NONTALKABLE  LANDTILE ; 87
-	NONTALKABLE  WALLTILE ; 88
-	NONTALKABLE  WALLTILE ; 89
-	NONTALKABLE  WALLTILE ; 8a
-	NONTALKABLE  WALLTILE ; 8b
-	NONTALKABLE  WALLTILE ; 8c
-	NONTALKABLE  LANDTILE ; 8d
-	NONTALKABLE  LANDTILE ; 8e
-	NONTALKABLE  LANDTILE ; 8f
-	NONTALKABLE  WALLTILE ; 90
-	NONTALKABLE  WALLTILE ; 91
-	NONTALKABLE  WALLTILE ; 92
-	NONTALKABLE  WALLTILE ; 93
-	NONTALKABLE  WALLTILE ; 94
-	NONTALKABLE  WALLTILE ; 95
-	NONTALKABLE  WALLTILE ; 96
-	NONTALKABLE  WALLTILE ; 97
-	NONTALKABLE  WALLTILE ; 98
-	NONTALKABLE  WALLTILE ; 99
-	NONTALKABLE  WALLTILE ; 9a
-	NONTALKABLE  WALLTILE ; 9b
-	NONTALKABLE  WALLTILE ; 9c
-	NONTALKABLE  WALLTILE ; 9d
-	NONTALKABLE  WALLTILE ; 9e
-	NONTALKABLE  WALLTILE ; 9f
-	NONTALKABLE  LANDTILE ; a0
-	NONTALKABLE  LANDTILE ; a1
-	NONTALKABLE  LANDTILE ; a2
-	NONTALKABLE  LANDTILE ; a3
-	NONTALKABLE  LANDTILE ; a4
-	NONTALKABLE  LANDTILE ; a5
-	NONTALKABLE  LANDTILE ; a6
-	NONTALKABLE  LANDTILE ; a7
-	NONTALKABLE  LANDTILE ; a8
-	NONTALKABLE  LANDTILE ; a9
-	NONTALKABLE  LANDTILE ; aa
-	NONTALKABLE  LANDTILE ; ab
-	NONTALKABLE  LANDTILE ; ac
-	NONTALKABLE  LANDTILE ; ad
-	NONTALKABLE  LANDTILE ; ae
-	NONTALKABLE  LANDTILE ; af
-	NONTALKABLE  LANDTILE ; b0
-	NONTALKABLE  LANDTILE ; b1
-	NONTALKABLE  LANDTILE ; b2
-	NONTALKABLE  LANDTILE ; b3
-	NONTALKABLE  LANDTILE ; b4
-	NONTALKABLE  LANDTILE ; b5
-	NONTALKABLE  LANDTILE ; b6
-	NONTALKABLE  LANDTILE ; b7
-	NONTALKABLE  LANDTILE ; b8
-	NONTALKABLE  LANDTILE ; b9
-	NONTALKABLE  LANDTILE ; ba
-	NONTALKABLE  LANDTILE ; bb
-	NONTALKABLE  LANDTILE ; bc
-	NONTALKABLE  LANDTILE ; bd
-	NONTALKABLE  LANDTILE ; be
-	NONTALKABLE  LANDTILE ; bf
-	NONTALKABLE WATERTILE ; c0
-	NONTALKABLE WATERTILE ; c1
-	NONTALKABLE WATERTILE ; c2
-	NONTALKABLE WATERTILE ; c3
-	NONTALKABLE WATERTILE ; c4
-	NONTALKABLE WATERTILE ; c5
-	NONTALKABLE WATERTILE ; c6
-	NONTALKABLE WATERTILE ; c7
-	NONTALKABLE WATERTILE ; c8
-	NONTALKABLE WATERTILE ; c9
-	NONTALKABLE WATERTILE ; ca
-	NONTALKABLE WATERTILE ; cb
-	NONTALKABLE WATERTILE ; cc
-	NONTALKABLE WATERTILE ; cd
-	NONTALKABLE WATERTILE ; ce
-	NONTALKABLE WATERTILE ; cf
-	NONTALKABLE  LANDTILE ; d0
-	NONTALKABLE  LANDTILE ; d1
-	NONTALKABLE  LANDTILE ; d2
-	NONTALKABLE  LANDTILE ; d3
-	NONTALKABLE  LANDTILE ; d4
-	NONTALKABLE  LANDTILE ; d5
-	NONTALKABLE  LANDTILE ; d6
-	NONTALKABLE  LANDTILE ; d7
-	NONTALKABLE  LANDTILE ; d8
-	NONTALKABLE  LANDTILE ; d9
-	NONTALKABLE  LANDTILE ; da
-	NONTALKABLE  LANDTILE ; db
-	NONTALKABLE  LANDTILE ; dc
-	NONTALKABLE  LANDTILE ; dd
-	NONTALKABLE  LANDTILE ; de
-	NONTALKABLE  LANDTILE ; df
-	NONTALKABLE  LANDTILE ; e0
-	NONTALKABLE  LANDTILE ; e1
-	NONTALKABLE  LANDTILE ; e2
-	NONTALKABLE  LANDTILE ; e3
-	NONTALKABLE  LANDTILE ; e4
-	NONTALKABLE  LANDTILE ; e5
-	NONTALKABLE  LANDTILE ; e6
-	NONTALKABLE  LANDTILE ; e7
-	NONTALKABLE  LANDTILE ; e8
-	NONTALKABLE  LANDTILE ; e9
-	NONTALKABLE  LANDTILE ; ea
-	NONTALKABLE  LANDTILE ; eb
-	NONTALKABLE  LANDTILE ; ec
-	NONTALKABLE  LANDTILE ; ed
-	NONTALKABLE  LANDTILE ; ee
-	NONTALKABLE  LANDTILE ; ef
-	NONTALKABLE  LANDTILE ; f0
-	NONTALKABLE  LANDTILE ; f1
-	NONTALKABLE  LANDTILE ; f2
-	NONTALKABLE  LANDTILE ; f3
-	NONTALKABLE  LANDTILE ; f4
-	NONTALKABLE  LANDTILE ; f5
-	NONTALKABLE  LANDTILE ; f6
-	NONTALKABLE  LANDTILE ; f7
-	NONTALKABLE  LANDTILE ; f8
-	NONTALKABLE  LANDTILE ; f9
-	NONTALKABLE  LANDTILE ; fa
-	NONTALKABLE  LANDTILE ; fb
-	NONTALKABLE  LANDTILE ; fc
-	NONTALKABLE  LANDTILE ; fd
-	NONTALKABLE  LANDTILE ; fe
-	NONTALKABLE  WALLTILE ; ff
-; 4cf1f
--- a/tilesets/data.asm
+++ b/tilesets/data.asm
@@ -14,7 +14,7 @@
 ; 0x18e06
 
 TilesetKantoColl: ; 0x18e06
-INCBIN "tilesets/kanto_collision.bin"
+INCLUDE "tilesets/kanto_collision.asm"
 ; 0x19006
 
 Tileset0GFX: ; 0x19006
@@ -29,7 +29,7 @@
 
 Tileset0Coll: ; 0x1a40e
 TilesetJohto1Coll: ; 0x1a40e
-INCBIN "tilesets/johto_1_collision.bin"
+INCLUDE "tilesets/johto_1_collision.asm"
 ; 0x1a60e
 
 TilesetIcePathGFX: ; 0x1a60e
@@ -41,7 +41,7 @@
 ; 0x1b33e
 
 TilesetIcePathColl: ; 0x1b33e
-INCBIN "tilesets/ice_path_collision.bin"
+INCLUDE "tilesets/ice_path_collision.asm"
 ; 0x1b43e
 
 TilesetPlayersHouse2FGFX: ; 0x1b43e
@@ -53,7 +53,7 @@
 ; 0x1bcfe
 
 TilesetPlayersHouse2FColl: ; 0x1bcfe
-INCBIN "tilesets/players_house_2f_collision.bin"
+INCLUDE "tilesets/players_house_2f_collision.asm"
 ; 0x1bdfe
 
 
@@ -68,7 +68,7 @@
 ; 0x1cb3c
 
 TilesetPokecenterColl: ; 0x1cb3c
-INCBIN "tilesets/pokecenter_collision.bin"
+INCLUDE "tilesets/pokecenter_collision.asm"
 ; 0x1cc3c
 
 TilesetPortGFX: ; 0x1cc3c
@@ -80,7 +80,7 @@
 ; 0x1d44c
 
 TilesetPortColl: ; 0x1d44c
-INCBIN "tilesets/port_collision.bin"
+INCLUDE "tilesets/port_collision.asm"
 ; 0x1d54c
 
 TilesetPlayersHouseGFX: ; 0x1d54c
@@ -92,7 +92,7 @@
 ; 0x1dd2c
 
 TilesetPlayersHouseColl: ; 0x1dd2c
-INCBIN "tilesets/players_house_collision.bin"
+INCLUDE "tilesets/players_house_collision.asm"
 ; 0x1de2c
 
 TilesetCeladonMansionGFX: ; 0x1de2c
@@ -104,7 +104,7 @@
 ; 0x1e98c
 
 TilesetCeladonMansionColl: ; 0x1e98c
-INCBIN "tilesets/celadon_mansion_collision.bin"
+INCLUDE "tilesets/celadon_mansion_collision.asm"
 ; 0x1ea8c
 
 TilesetCaveGFX: ; 0x1ea8c
@@ -118,7 +118,7 @@
 
 TilesetCaveColl: ; 0x1f21c
 TilesetWhirlIslandsColl: ; 0x1f21c
-INCBIN "tilesets/cave_collision.bin"
+INCLUDE "tilesets/cave_collision.asm"
 ; 0x1f31c
 
 
@@ -133,7 +133,7 @@
 ; 0x20ae1
 
 TilesetSproutTowerColl: ; 0x20ae1
-INCBIN "tilesets/sprout_tower_collision.bin"
+INCLUDE "tilesets/sprout_tower_collision.asm"
 ; 0x20be1
 
 TilesetLabGFX: ; 0x20be1
@@ -145,7 +145,7 @@
 ; 0x217e1
 
 TilesetLabColl: ; 0x217e1
-INCBIN "tilesets/lab_collision.bin"
+INCLUDE "tilesets/lab_collision.asm"
 ; 0x218e1
 
 TilesetMartGFX: ; 0x218e1
@@ -157,7 +157,7 @@
 ; 0x22431
 
 TilesetMartColl: ; 0x22431
-INCBIN "tilesets/mart_collision.bin"
+INCLUDE "tilesets/mart_collision.asm"
 ; 0x22531
 
 TilesetGameCornerGFX: ; 0x22531
@@ -169,7 +169,7 @@
 ; 0x22ef1
 
 TilesetGameCornerColl: ; 0x22ef1
-INCBIN "tilesets/game_corner_collision.bin"
+INCLUDE "tilesets/game_corner_collision.asm"
 ; 0x22ff1
 
 TilesetTrainStationGFX: ; 0x22ff1
@@ -181,7 +181,7 @@
 ; 0x23791
 
 TilesetTrainStationColl: ; 0x23791
-INCBIN "tilesets/train_station_collision.bin"
+INCLUDE "tilesets/train_station_collision.asm"
 ; 0x23891
 
 TilesetIlexForestMeta: ; 0x23891
@@ -200,7 +200,7 @@
 ; 0x308e0
 
 TilesetGym1Coll: ; 0x308e0
-INCBIN "tilesets/gym_1_collision.bin"
+INCLUDE "tilesets/gym_1_collision.asm"
 ; 0x309e0
 
 TilesetParkGFX: ; 0x309e0
@@ -212,7 +212,7 @@
 ; 0x31280
 
 TilesetParkColl: ; 0x31280
-INCBIN "tilesets/park_collision.bin"
+INCLUDE "tilesets/park_collision.asm"
 ; 0x31380
 
 TilesetRadioTowerGFX: ; 0x31380
@@ -224,7 +224,7 @@
 ; 0x31ce0
 
 TilesetRadioTowerColl: ; 0x31ce0
-INCBIN "tilesets/radio_tower_collision.bin"
+INCLUDE "tilesets/radio_tower_collision.asm"
 ; 0x31de0
 
 TilesetUndergroundGFX: ; 0x31de0
@@ -236,7 +236,7 @@
 ; 0x325b0
 
 TilesetUndergroundColl: ; 0x325b0
-INCBIN "tilesets/underground_collision.bin"
+INCLUDE "tilesets/underground_collision.asm"
 ; 0x326b0
 
 TilesetWhirlIslandsGFX: ; 0x326b0
@@ -248,7 +248,7 @@
 ; 0x331f0
 
 UnusedTilesetWhirlIslandsColl: ; 0x331f0
-INCBIN "tilesets/unused_whirl_islands_collision.bin"
+INCLUDE "tilesets/unused_whirl_islands_collision.asm"
 ; 0x333f0
 
 
@@ -263,7 +263,7 @@
 ; 0xb4ca0
 
 TilesetPokeComCenterColl: ; 0xb4ca0
-INCBIN "tilesets/pokecom_center_collision.bin"
+INCLUDE "tilesets/pokecom_center_collision.asm"
 ; 0xb4da0
 
 TilesetBattleTowerGFX: ; 0xb4da0
@@ -275,7 +275,7 @@
 ; 0xb54e0
 
 TilesetBattleTowerColl: ; 0xb54e0
-INCBIN "tilesets/battle_tower_collision.bin"
+INCLUDE "tilesets/battle_tower_collision.asm"
 ; 0xb55e0
 
 TilesetGateGFX: ; 0xb55e0
@@ -287,7 +287,7 @@
 ; 0xb5de0
 
 TilesetGateColl: ; 0xb5de0
-INCBIN "tilesets/gate_collision.bin"
+INCLUDE "tilesets/gate_collision.asm"
 ; 0xb5ee0
 
 TilesetJohto2GFX: ; 0xb5ee0
@@ -300,7 +300,7 @@
 ; 0xb72e8
 
 TilesetJohto2Coll: ; 0xb72e8
-INCBIN "tilesets/johto_2_collision.bin"
+INCLUDE "tilesets/johto_2_collision.asm"
 ; 0xb74e8
 
 TilesetKurtsHouseGFX: ; 0xb74e8
@@ -312,7 +312,7 @@
 ; 0xb7da8
 
 TilesetKurtsHouseColl: ; 0xb7da8
-INCBIN "tilesets/kurts_house_collision.bin"
+INCLUDE "tilesets/kurts_house_collision.asm"
 ; 0xb7ea8
 
 
@@ -331,7 +331,7 @@
 ; 0xdd050
 
 TilesetOlivineGymColl: ; 0xdd050
-INCBIN "tilesets/olivine_gym_collision.bin"
+INCLUDE "tilesets/olivine_gym_collision.asm"
 ; 0xdd150
 
 TilesetHouse1GFX: ; 0xdd150
@@ -343,7 +343,7 @@
 ; 0xdda00
 
 TilesetHouse1Coll: ; 0xdda00
-INCBIN "tilesets/house_1_collision.bin"
+INCLUDE "tilesets/house_1_collision.asm"
 ; 0xddb00
 
 TilesetLighthouseGFX: ; 0xddb00
@@ -355,11 +355,11 @@
 ; 0xde370
 
 TilesetLighthouseColl: ; 0xde370
-INCBIN "tilesets/lighthouse_collision.bin"
+INCLUDE "tilesets/lighthouse_collision.asm"
 ; 0xde470
 
 TilesetIlexForestColl: ; 0xde470
-INCBIN "tilesets/ilex_forest_collision.bin"
+INCLUDE "tilesets/ilex_forest_collision.asm"
 ; 0xde570
 
 TilesetPowerPlantGFX: ; 0xde570
@@ -371,7 +371,7 @@
 ; 0xded90
 
 TilesetPowerPlantColl: ; 0xded90
-INCBIN "tilesets/power_plant_collision.bin"
+INCLUDE "tilesets/power_plant_collision.asm"
 ; 0xdee90
 
 TilesetBattleTowerOutsideMeta: ; 0xdee90
@@ -379,7 +379,7 @@
 ; 0xdf690
 
 TilesetBattleTowerOutsideColl: ; 0xdf690
-INCBIN "tilesets/battle_tower_outside_collision.bin"
+INCLUDE "tilesets/battle_tower_outside_collision.asm"
 ; 0xdf890
 
 TilesetBetaWordRoomMeta: ; 0xdf890
@@ -391,7 +391,7 @@
 TilesetKabutoWordRoomColl: ; 0xdfc90
 TilesetOmanyteWordRoomColl: ; 0xdfc90
 TilesetAerodactylWordRoomColl: ; 0xdfc90
-INCBIN "tilesets/beta_word_room_collision.bin"
+INCLUDE "tilesets/beta_word_room_collision.asm"
 ; 0xdfd90
 
 
@@ -411,7 +411,7 @@
 ; 0x1dd5a9
 
 TilesetRuinsOfAlphColl: ; 0x1dd5a9
-INCBIN "tilesets/ruins_of_alph_collision.bin"
+INCLUDE "tilesets/ruins_of_alph_collision.asm"
 ; 0x1dd6a9
 
 
--- /dev/null
+++ b/tilesets/game_corner_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll COUNTER, COUNTER, COUNTER, COUNTER ; 08
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 09
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 0a
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0e
+	tilecoll WALL, WALL, WALL, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, COUNTER, COUNTER ; 11
+	tilecoll WALL, WALL, COUNTER, COUNTER ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, COUNTER, FLOOR ; 14
+	tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 17
+	tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 18
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 19
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1b
+	tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 1c
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 1d
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 28
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 29
+	tilecoll WALL, WALL, FLOOR, WALL ; 2a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2b
+	tilecoll WALL, WALL, FLOOR, WALL ; 2c
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll WALL, WALL, FLOOR, WALL ; 30
+	tilecoll WALL, WALL, WALL, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/game_corner_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/gate_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+	tilecoll WALL, WALL, WALL, WALL ; 04
+	tilecoll DOOR, DOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 07
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+	tilecoll COUNTER, COUNTER, COUNTER, FLOOR ; 09
+	tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 0a
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0b
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 0c
+	tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 0d
+	tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 0e
+	tilecoll WALL, WALL, COUNTER, FLOOR ; 0f
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 10
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 11
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 12
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 13
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 14
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1b
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 20
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 24
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 26
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 29
+	tilecoll WALL, DOOR, FLOOR, FLOOR ; 2a
+	tilecoll DOOR, WALL, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 2c
+	tilecoll WALL, WALL, FLOOR, PC ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll DOOR, WALL, FLOOR, FLOOR ; 2f
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, COUNTER ; 31
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 32
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 33
+	tilecoll COUNTER, FLOOR, FLOOR, WALL ; 34
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 39
+	tilecoll WALL, WALL, WALL, WALL ; 3a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 3b
+	tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, COUNTER, FLOOR ; 3d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 3e
+	tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 3f
+	tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 40
binary files a/tilesets/gate_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/gym_1_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 04
+	tilecoll WALL, WALL, WALL, FLOOR ; 05
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 06
+	tilecoll WALL, WALL, FLOOR, WALL ; 07
+	tilecoll WALL, WALL, WALL, WALL ; 08
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, PIT, FLOOR ; 0a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 0c
+	tilecoll WALL, FLOOR, WALL, WALL ; 0d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, WALL, WALL ; 0f
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 11
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 14
+	tilecoll WALL, WALL, WALL, WALL ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll LADDER, LADDER, FLOOR, FLOOR ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 19
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+	tilecoll WALL, FLOOR, WALL, WALL ; 1c
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 21
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 22
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 23
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 26
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll WALL, WALL, WALL, WALL ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll ICE, ICE, ICE, FLOOR ; 2f
+	tilecoll ICE, ICE, FLOOR, ICE ; 30
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, ICE, ICE, ICE ; 32
+	tilecoll ICE, FLOOR, ICE, ICE ; 33
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 34
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 35
+	tilecoll ICE, WALL, ICE, WALL ; 36
+	tilecoll WALL, ICE, WALL, ICE ; 37
+	tilecoll WALL, WALL, WALL, WALL ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll ICE, ICE, ICE, ICE ; 3a
+	tilecoll WALL, FLOOR, FLOOR, WALL ; 3b
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll DOOR, DOOR, FLOOR, FLOOR ; 3d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3e
+	tilecoll WALL, WALL, WALL, WALL ; 3f
+	tilecoll WALL, WALL, WALL, WALL ; 40
binary files a/tilesets/gym_1_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/ho_oh_word_room_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, WALL, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, WALL ; 1a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, PIT ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/ho_oh_word_room_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/house_1_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 02
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 03
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 05
+	tilecoll WALL, WINDOW, FLOOR, FLOOR ; 06
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 07
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 08
+	tilecoll WALL, WINDOW, FLOOR, FLOOR ; 09
+	tilecoll WALL, WALL, FLOOR, BOOKSHELF ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0c
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0d
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll WALL, TOWN_MAP, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll WALL, WALL, PC, WALL ; 11
+	tilecoll WALL, WALL, WALL, FLOOR ; 12
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 13
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 14
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 15
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 16
+	tilecoll WINDOW, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, WARP_CARPET_LEFT, FLOOR ; 18
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 1a
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 1b
+	tilecoll WARP_CARPET_LEFT, FLOOR, FLOOR, FLOOR ; 1c
+	tilecoll WALL, WALL, FLOOR, PC ; 1d
+	tilecoll WALL, WALL, FLOOR, RADIO ; 1e
+	tilecoll WALL, TOWN_MAP, TV, FLOOR ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 22
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 23
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 24
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 25
+	tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 27
+	tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 28
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 29
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll WALL, WALL, FLOOR, WALL ; 30
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 31
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 32
+	tilecoll WALL, WINDOW, WALL, WALL ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/house_1_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/ice_path_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 04
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 05
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 06
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 08
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll WALL, FLOOR, WALL, WALL ; 0d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, WALL, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 11
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, WALL, CAVE ; 14
+	tilecoll WALL, WALL, WALL, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, WALL ; 17
+	tilecoll FLOOR, FLOOR, PIT, FLOOR ; 18
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+	tilecoll FLOOR, PIT, FLOOR, FLOOR ; 1c
+	tilecoll WALL, FLOOR, WALL, WALL ; 1d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1e
+	tilecoll FLOOR, WALL, WALL, WALL ; 1f
+	tilecoll ICE, ICE, ICE, ICE ; 20
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 22
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 24
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 25
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 26
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 27
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 28
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 29
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll WALL, ICE, ICE, ICE ; 2d
+	tilecoll ICE, ICE, WALL, ICE ; 2e
+	tilecoll ICE, WALL, ICE, ICE ; 2f
+	tilecoll ICE, ICE, ICE, WALL ; 30
+	tilecoll WALL, WALL, FLOOR, WALL ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WALL, WALL, WALL, FLOOR ; 33
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 39
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 3e
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 3f
+	tilecoll ICE, ICE, ICE, LADDER ; 40
binary files a/tilesets/ice_path_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/ilex_forest_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll WATER, WATER, WATER, WATER ; 03
+	tilecoll WATER, WATER, WATER, WATER ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 07
+	tilecoll WATER, WATER, WATER, WATER ; 08
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, FLOOR ; 09
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 0a
+	tilecoll WATER, WATER, WATER, WATER ; 0b
+	tilecoll WATER, WATER, WATER, WATER ; 0c
+	tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 0d
+	tilecoll WATER, WATER, WATER, WATER ; 0e
+	tilecoll FLOOR, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 0f
+	tilecoll FLOOR, FLOOR, CUT_TREE, HEADBUTT_TREE ; 10
+	tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 11
+	tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 12
+	tilecoll FLOOR, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 14
+	tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 15
+	tilecoll FLOOR, HEADBUTT_TREE, FLOOR, FLOOR ; 16
+	tilecoll FLOOR, FLOOR, HEADBUTT_TREE, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, HEADBUTT_TREE ; 18
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 19
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 1a
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 1b
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 1c
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, DOOR ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 29
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2f
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 31
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 32
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 33
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 34
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 35
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 36
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 37
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 38
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 39
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3f
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 40
binary files a/tilesets/ilex_forest_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/johto_1_collision.asm
@@ -1,0 +1,128 @@
+	tilecoll 01, 01, 01, 01 ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll LADDER, LADDER, LADDER, LADDER ; 07
+	tilecoll WHIRLPOOL, BUOY, WATER, BUOY ; 08
+	tilecoll WALL, WALL, WALL, WALL ; 09
+	tilecoll WALL, WALL, WALL, WALL ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 0d
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 0e
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, WALL, WALL ; 11
+	tilecoll WALL, WALL, WALL, WALL ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WALL, WALL, DOOR ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll WALL, WALL, WALL, DOOR ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, DOOR ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, DOOR, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, DOOR, WALL ; 28
+	tilecoll WALL, WALL, WALL, DOOR ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2b
+	tilecoll WALL, WALL, WALL, WALL ; 2c
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2d
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, DOOR ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll BUOY, BUOY, BUOY, WATER ; 31
+	tilecoll BUOY, BUOY, WATER, WATER ; 32
+	tilecoll BUOY, BUOY, WATER, BUOY ; 33
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 34
+	tilecoll BUOY, WATER, BUOY, WATER ; 35
+	tilecoll WATER, WATER, WATER, WATER ; 36
+	tilecoll WATER, BUOY, WATER, BUOY ; 37
+	tilecoll WALL, WALL, WALL, DOOR ; 38
+	tilecoll BUOY, WATER, BUOY, BUOY ; 39
+	tilecoll WATER, WATER, BUOY, BUOY ; 3a
+	tilecoll WATER, BUOY, BUOY, BUOY ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, HEADBUTT_TREE, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, HEADBUTT_TREE, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, HEADBUTT_TREE ; 40
+	tilecoll WALL, WALL, WALL, FLOOR ; 41
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 42
+	tilecoll WALL, WALL, FLOOR, WALL ; 43
+	tilecoll WATER, WATER, WATER, WATER ; 44
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 45
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 46
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 47
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 48
+	tilecoll WALL, FLOOR, WALL, WALL ; 49
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 4a
+	tilecoll FLOOR, WALL, WALL, WALL ; 4b
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 4c
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4d
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4e
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4f
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 50
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 51
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 52
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 53
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 54
+	tilecoll WATER, WATER, WATER, WATER ; 55
+	tilecoll WATER, WATER, WATER, WATER ; 56
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 57
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 58
+	tilecoll WATER, WATER, WATER, WATER ; 59
+	tilecoll WATER, WATER, WATER, WATER ; 5a
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5b
+	tilecoll HEADBUTT_TREE, CUT_TREE, FLOOR, FLOOR ; 5c
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, FLOOR ; 5d
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 5e
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 5f
+	tilecoll FLOOR, HEADBUTT_TREE, FLOOR, CUT_TREE ; 60
+	tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 61
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 62
+	tilecoll FLOOR, HEADBUTT_TREE, FLOOR, HEADBUTT_TREE ; 63
+	tilecoll FLOOR, FLOOR, CUT_TREE, HEADBUTT_TREE ; 64
+	tilecoll HEADBUTT_TREE, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 65
+	tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 66
+	tilecoll FLOOR, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 67
+	tilecoll CUT_TREE, FLOOR, HEADBUTT_TREE, FLOOR ; 68
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 69
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 6a
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 6b
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 6c
+	tilecoll WALL, FLOOR, WALL, WALL ; 6d
+	tilecoll FLOOR, WALL, WALL, WALL ; 6e
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6f
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 70
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 71
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 72
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 73
+	tilecoll FLOOR, FLOOR, CAVE, WALL ; 74
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 75
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 76
+	tilecoll WATER, WATER, WATER, WATER ; 77
+	tilecoll WALL, WALL, DOOR, WALL ; 78
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 79
+	tilecoll WATER, WATER, WATER, WATER ; 7a
+	tilecoll WATER, WATER, WATER, WATER ; 7b
+	tilecoll WALL, WALL, WALL, WALL ; 7c
+	tilecoll WALL, WALL, WALL, WALL ; 7d
+	tilecoll WALL, WALL, WALL, WALL ; 7e
+	tilecoll WALL, WALL, WALL, WALL ; 7f
+	tilecoll WALL, WALL, WALL, WALL ; 80
binary files a/tilesets/johto_1_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/johto_2_collision.asm
@@ -1,0 +1,128 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, WALL, WALL ; 09
+	tilecoll WALL, WALL, WALL, WALL ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 0d
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 0e
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, WALL, WALL ; 11
+	tilecoll WALL, WALL, WALL, WALL ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WALL, WALL, DOOR ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll WALL, WALL, WALL, DOOR ; 17
+	tilecoll WALL, WALL, DOOR, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, DOOR ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, DOOR, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, DOOR, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll WALL, WALL, WALL, WALL ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, WALL, DOOR ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, FLOOR, FLOOR ; 30
+	tilecoll BUOY, BUOY, BUOY, WATER ; 31
+	tilecoll BUOY, BUOY, WATER, WATER ; 32
+	tilecoll BUOY, BUOY, WATER, BUOY ; 33
+	tilecoll WALL, WALL, WALL, WALL ; 34
+	tilecoll BUOY, WATER, BUOY, WATER ; 35
+	tilecoll WATER, WATER, WATER, WATER ; 36
+	tilecoll WATER, BUOY, WATER, BUOY ; 37
+	tilecoll HEADBUTT_TREE, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll BUOY, WATER, BUOY, BUOY ; 39
+	tilecoll WATER, WATER, BUOY, BUOY ; 3a
+	tilecoll WATER, BUOY, BUOY, BUOY ; 3b
+	tilecoll FLOOR, FLOOR, HEADBUTT_TREE, HEADBUTT_TREE ; 3c
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3d
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, WALL, WALL ; 3e
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3f
+	tilecoll HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE, HEADBUTT_TREE ; 40
+	tilecoll WALL, WALL, WALL, FLOOR ; 41
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 42
+	tilecoll WALL, WALL, FLOOR, WALL ; 43
+	tilecoll WATER, WATER, WATER, WATER ; 44
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 45
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 46
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 47
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 48
+	tilecoll WALL, FLOOR, WALL, WALL ; 49
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 4a
+	tilecoll FLOOR, WALL, WALL, WALL ; 4b
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 4c
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4d
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4e
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4f
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 50
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 51
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 52
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 53
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 54
+	tilecoll WATER, WATER, WATER, WATER ; 55
+	tilecoll WATER, WATER, WATER, WATER ; 56
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 57
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 58
+	tilecoll WATER, WATER, WATER, WATER ; 59
+	tilecoll WATER, WATER, WATER, WATER ; 5a
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5b
+	tilecoll WALL, WALL, WALL, CAVE ; 5c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 5d
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 5e
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 5f
+	tilecoll WALL, WALL, WALL, WALL ; 60
+	tilecoll WATER, WATER, WALL, WALL ; 61
+	tilecoll WATER, WATER, WALL, WALL ; 62
+	tilecoll WATER, WATER, WALL, WALL ; 63
+	tilecoll WATER, WATER, WATER, WATER ; 64
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 65
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 66
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 67
+	tilecoll WALL, WALL, WALL, WALL ; 68
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 69
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 6a
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 6b
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 6c
+	tilecoll WALL, FLOOR, WALL, WALL ; 6d
+	tilecoll FLOOR, WALL, WALL, WALL ; 6e
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6f
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 70
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 71
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 72
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 73
+	tilecoll FLOOR, FLOOR, WALL, CAVE ; 74
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 75
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 76
+	tilecoll WATER, WATER, WATER, WATER ; 77
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 78
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 79
+	tilecoll WATER, WATER, WATER, WATER ; 7a
+	tilecoll WATER, WATER, WATER, WATER ; 7b
+	tilecoll WALL, WALL, WALL, WALL ; 7c
+	tilecoll WALL, WALL, WALL, WALL ; 7d
+	tilecoll WALL, WALL, WALL, WALL ; 7e
+	tilecoll WALL, WALL, WALL, WALL ; 7f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 80
binary files a/tilesets/johto_2_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/kabuto_word_room_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, WALL, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, WALL ; 1a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, PIT ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/kabuto_word_room_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/kanto_collision.asm
@@ -1,0 +1,128 @@
+	tilecoll CUT_TREE, CUT_TREE, CUT_TREE, CUT_TREE ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, WALL, DOOR ; 03
+	tilecoll WALL, WALL, WALL, WALL ; 04
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 05
+	tilecoll LADDER, LADDER, LADDER, LADDER ; 06
+	tilecoll FLOOR, FLOOR, CAVE, WALL ; 07
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 09
+	tilecoll WALL, WALL, WALL, WALL ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 0c
+	tilecoll WALL, WALL, WALL, WALL ; 0d
+	tilecoll WALL, WALL, WALL, WALL ; 0e
+	tilecoll WALL, WALL, WALL, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, WALL, WALL ; 11
+	tilecoll WALL, WALL, WALL, WALL ; 12
+	tilecoll WALL, WALL, DOOR, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WATER, WALL, WALL ; 15
+	tilecoll WATER, WALL, WALL, WALL ; 16
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 17
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 18
+	tilecoll WALL, WATER, WALL, WATER ; 19
+	tilecoll WATER, WALL, WATER, WALL ; 1a
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 1b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1d
+	tilecoll WATER, WATER, WATER, WATER ; 1e
+	tilecoll WATER, WATER, WATER, WATER ; 1f
+	tilecoll WATER, WATER, WATER, WATER ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll WALL, FLOOR, WALL, WALL ; 25
+	tilecoll FLOOR, WALL, WALL, WALL ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 29
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 2a
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll WATER, WATER, WATER, WATER ; 2e
+	tilecoll WATER, WATER, WATER, WATER ; 2f
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 30
+	tilecoll WALL, WALL, WALL, WALL ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll WALL, CUT_TREE, WALL, FLOOR ; 33
+	tilecoll WALL, WALL, FLOOR, CUT_TREE ; 34
+	tilecoll CUT_TREE, FLOOR, WALL, WALL ; 35
+	tilecoll FLOOR, CUT_TREE, WALL, FLOOR ; 36
+	tilecoll WALL, WALL, FLOOR, WALL ; 37
+	tilecoll WALL, WALL, WALL, WALL ; 38
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 39
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 3a
+	tilecoll WALL, WALL, DOOR, WALL ; 3b
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 3c
+	tilecoll WALL, WALL, WALL, DOOR ; 3d
+	tilecoll WALL, WALL, WALL, WALL ; 3e
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 3f
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 40
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 41
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 42
+	tilecoll HOP_DOWN, WALL, WALL, WALL ; 43
+	tilecoll WATER, WATER, WATER, WATER ; 44
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 45
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 46
+	tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 47
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 48
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 49
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 4a
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 4b
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 4c
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 4d
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 4e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 4f
+	tilecoll FLOOR, WALL, WALL, WALL ; 50
+	tilecoll WALL, FLOOR, WALL, WALL ; 51
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 52
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 53
+	tilecoll WALL, WALL, WALL, DOOR ; 54
+	tilecoll WALL, WALL, WALL, WALL ; 55
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 56
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 57
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 58
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 59
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 5a
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 5b
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 5c
+	tilecoll FLOOR, HOP_DOWN, FLOOR, WALL ; 5d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 5f
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 60
+	tilecoll FLOOR, WALL, CUT_TREE, WALL ; 61
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 62
+	tilecoll WALL, WALL, WALL, FLOOR ; 63
+	tilecoll WALL, WALL, FLOOR, WALL ; 64
+	tilecoll WATER, WATER, WATER, WATER ; 65
+	tilecoll WATER, WATER, WATER, WATER ; 66
+	tilecoll WALL, WALL, WALL, WALL ; 67
+	tilecoll WALL, WATER, WALL, WATER ; 68
+	tilecoll WALL, WALL, WALL, WALL ; 69
+	tilecoll WALL, WALL, WALL, WALL ; 6a
+	tilecoll WATER, WALL, WATER, WALL ; 6b
+	tilecoll WATER, WATER, WALL, WALL ; 6c
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 6d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 6e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 6f
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 70
+	tilecoll FLOOR, WALL, CAVE, WALL ; 71
+	tilecoll WALL, WALL, WALL, WALL ; 72
+	tilecoll WALL, WALL, WALL, WALL ; 73
+	tilecoll WALL, WALL, WALL, WALL ; 74
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 75
+	tilecoll WALL, WALL, WALL, WALL ; 76
+	tilecoll WALL, WALL, WALL, WALL ; 77
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 78
+	tilecoll WATER, WATER, WATER, WATER ; 79
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 7a
+	tilecoll WALL, WALL, WALL, WALL ; 7b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 7c
+	tilecoll WALL, WALL, WALL, DOOR ; 7d
+	tilecoll WALL, WALL, WALL, WALL ; 7e
+	tilecoll WALL, WALL, WALL, WALL ; 7f
+	tilecoll WALL, WALL, WALL, WALL ; 80
binary files a/tilesets/kanto_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/kurts_house_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, RADIO, FLOOR ; 02
+	tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 03
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 07
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+	tilecoll WALL, WALL, WALL, WALL ; 0a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 0c
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 13
+	tilecoll WALL, WALL, INCENSE_BURNER, BOOKSHELF ; 14
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 15
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 16
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 1a
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 1b
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 1c
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1e
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 20
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 22
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 23
+	tilecoll WALL, WALL, RADIO, FLOOR ; 24
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 25
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 27
+	tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, HOP_DOWN, HOP_DOWN ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 30
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll WALL, WALL, WALL, FLOOR ; 34
+	tilecoll WALL, WALL, WALL, FLOOR ; 35
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 36
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll WALL, WALL, FLOOR, WALL ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 39
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 3a
+	tilecoll 04, 03, 03, 03 ; 3b
+	tilecoll 03, 03, 03, 03 ; 3c
+	tilecoll 03, 03, 04, 04 ; 3d
+	tilecoll 04, 04, 04, 04 ; 3e
+	tilecoll 03, 03, 03, 03 ; 3f
+	tilecoll WARP_CARPET_DOWN, 04, 03, 03 ; 40
binary files a/tilesets/kurts_house_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/lab_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 03
+	tilecoll WALL, WALL, WALL, WALL ; 04
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 05
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 07
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 08
+	tilecoll WALL, WALL, WALL, WALL ; 09
+	tilecoll WINDOW, WALL, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 0f
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 12
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 13
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 15
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 1a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1f
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 20
+	tilecoll WINDOW, WINDOW, FLOOR, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/lab_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/lighthouse_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll WALL, WALL, WALL, WALL ; 03
+	tilecoll WALL, WALL, WALL, WALL ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 0a
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll WALL, WALL, WALL, WALL ; 0d
+	tilecoll WALL, WALL, WALL, WALL ; 0e
+	tilecoll WALL, WALL, WALL, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll 9C, FLOOR, COUNTER, FLOOR ; 11
+	tilecoll WALL, WALL, WALL, WALL ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WARP_CARPET_DOWN, WALL, WALL ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll 9C, FLOOR, COUNTER, FLOOR ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 19
+	tilecoll WALL, WALL, WALL, STAIRCASE ; 1a
+	tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 1b
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 21
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 22
+	tilecoll WALL, FLOOR, WALL, WALL ; 23
+	tilecoll FLOOR, WALL, WALL, WALL ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, PIT, PIT ; 29
+	tilecoll WALL, WALL, WINDOW, WINDOW ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2f
+	tilecoll WALL, WALL, WALL, BOOKSHELF ; 30
+	tilecoll WALL, WALL, FLOOR, WALL ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 34
+	tilecoll WALL, WALL, PC, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 36
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+	tilecoll WALL, WALL, WALL, WALL ; 38
+	tilecoll WALL, WALL, FLOOR, WALL ; 39
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, WALL, WALL, WALL ; 3d
+	tilecoll WALL, WALL, WINDOW, WALL ; 3e
+	tilecoll WALL, WALL, WALL, WALL ; 3f
+	tilecoll WALL, WALL, WALL, WALL ; 40
binary files a/tilesets/lighthouse_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/mart_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 02
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 03
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 07
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 09
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0a
+	tilecoll WALL, WALL, COUNTER, FLOOR ; 0b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 0c
+	tilecoll FLOOR, COUNTER, FLOOR, FLOOR ; 0d
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 0e
+	tilecoll COUNTER, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, WALL, WALL, WALL ; 10
+	tilecoll COUNTER, COUNTER, COUNTER, FLOOR ; 11
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 13
+	tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 14
+	tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 15
+	tilecoll WALL, WALL, MART_SHELF, MART_SHELF ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 18
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 1a
+	tilecoll COUNTER, COUNTER, COUNTER, FLOOR ; 1b
+	tilecoll COUNTER, COUNTER, FLOOR, COUNTER ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 1f
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 20
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 23
+	tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 26
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 27
+	tilecoll WALL, WALL, COUNTER, MART_SHELF ; 28
+	tilecoll FLOOR, MART_SHELF, FLOOR, MART_SHELF ; 29
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll COUNTER, COUNTER, FLOOR, MART_SHELF ; 2d
+	tilecoll FLOOR, MART_SHELF, COUNTER, COUNTER ; 2e
+	tilecoll COUNTER, FLOOR, COUNTER, COUNTER ; 2f
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 30
+	tilecoll WALL, WALL, WALL, WALL ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll WALL, FLOOR, WALL, WALL ; 34
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 35
+	tilecoll FLOOR, WALL, WALL, WALL ; 36
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, STAIRCASE ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, WALL, WALL, WALL ; 3d
+	tilecoll WALL, WALL, WALL, WALL ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll WALL, WALL, WALL, WALL ; 40
binary files a/tilesets/mart_collision.bin /dev/null differ
--- a/tilesets/ob.pal
+++ b/tilesets/ob.pal
@@ -1,171 +1,39 @@
-; morn
+	; morn
+	RGB 28,31,16, 31,19,10, 31,07,01, 00,00,00 ; red
+	RGB 28,31,16, 31,19,10, 10,09,31, 00,00,00 ; blue
+	RGB 28,31,16, 31,19,10, 07,23,03, 00,00,00 ; green
+	RGB 28,31,16, 31,19,10, 15,10,03, 00,00,00 ; brown
+	RGB 28,31,16, 31,19,10, 30,10,06, 00,00,00 ; pink
+	RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+	RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; tree
+	RGB 28,31,16, 24,18,07, 20,15,03, 07,07,07 ; rock
 
-; red
-	RGB 28, 31, 16
-	RGB 31, 19, 10
-	RGB 31, 07, 01
-	RGB 00, 00, 00
-; blue
-	RGB 28, 31, 16
-	RGB 31, 19, 10
-	RGB 10, 09, 31
-	RGB 00, 00, 00
-; green
-	RGB 28, 31, 16
-	RGB 31, 19, 10
-	RGB 07, 23, 03
-	RGB 00, 00, 00
-; brown
-	RGB 28, 31, 16
-	RGB 31, 19, 10
-	RGB 15, 10, 03
-	RGB 00, 00, 00
-; pink
-	RGB 28, 31, 16
-	RGB 31, 19, 10
-	RGB 30, 10, 06
-	RGB 00, 00, 00
-; silver
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 13, 13, 13
-	RGB 00, 00, 00
-; tree
-	RGB 22, 31, 10
-	RGB 12, 25, 01
-	RGB 05, 14, 00
-	RGB 07, 07, 07
-; rock
-	RGB 28, 31, 16
-	RGB 24, 18, 07
-	RGB 20, 15, 03
-	RGB 07, 07, 07
+	; day
+	RGB 27,31,27, 31,19,10, 31,07,01, 00,00,00 ; red
+	RGB 27,31,27, 31,19,10, 10,09,31, 00,00,00 ; blue
+	RGB 27,31,27, 31,19,10, 07,23,03, 00,00,00 ; green
+	RGB 27,31,27, 31,19,10, 15,10,03, 00,00,00 ; brown
+	RGB 27,31,27, 31,19,10, 30,10,06, 00,00,00 ; pink
+	RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+	RGB 22,31,10, 12,25,01, 05,14,00, 07,07,07 ; tree
+	RGB 27,31,27, 24,18,07, 20,15,03, 07,07,07 ; rock
 
-; day
+	; nite
+	RGB 15,14,24, 31,19,10, 31,07,01, 00,00,00 ; red
+	RGB 15,14,24, 31,19,10, 10,09,31, 00,00,00 ; blue
+	RGB 15,14,24, 31,19,10, 07,23,03, 00,00,00 ; green
+	RGB 15,14,24, 31,19,10, 15,10,03, 00,00,00 ; brown
+	RGB 15,14,24, 31,19,10, 30,10,06, 00,00,00 ; pink
+	RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+	RGB 15,14,24, 08,13,19, 00,11,13, 00,00,00 ; tree
+	RGB 15,14,24, 12,09,15, 08,04,05, 00,00,00 ; rock
 
-; red
-	RGB 27, 31, 27
-	RGB 31, 19, 10
-	RGB 31, 07, 01
-	RGB 00, 00, 00
-; blue
-	RGB 27, 31, 27
-	RGB 31, 19, 10
-	RGB 10, 09, 31
-	RGB 00, 00, 00
-; green
-	RGB 27, 31, 27
-	RGB 31, 19, 10
-	RGB 07, 23, 03
-	RGB 00, 00, 00
-; brown
-	RGB 27, 31, 27
-	RGB 31, 19, 10
-	RGB 15, 10, 03
-	RGB 00, 00, 00
-; pink
-	RGB 27, 31, 27
-	RGB 31, 19, 10
-	RGB 30, 10, 06
-	RGB 00, 00, 00
-; silver
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 13, 13, 13
-	RGB 00, 00, 00
-; tree
-	RGB 22, 31, 10
-	RGB 12, 25, 01
-	RGB 05, 14, 00
-	RGB 07, 07, 07
-; rock
-	RGB 27, 31, 27
-	RGB 24, 18, 07
-	RGB 20, 15, 03
-	RGB 07, 07, 07
-
-; nite
-
-; red
-	RGB 15, 14, 24
-	RGB 31, 19, 10
-	RGB 31, 07, 01
-	RGB 00, 00, 00
-; blue
-	RGB 15, 14, 24
-	RGB 31, 19, 10
-	RGB 10, 09, 31
-	RGB 00, 00, 00
-; green
-	RGB 15, 14, 24
-	RGB 31, 19, 10
-	RGB 07, 23, 03
-	RGB 00, 00, 00
-; brown
-	RGB 15, 14, 24
-	RGB 31, 19, 10
-	RGB 15, 10, 03
-	RGB 00, 00, 00
-; pink
-	RGB 15, 14, 24
-	RGB 31, 19, 10
-	RGB 30, 10, 06
-	RGB 00, 00, 00
-; silver
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 13, 13, 13
-	RGB 00, 00, 00
-; tree
-	RGB 15, 14, 24
-	RGB 08, 13, 19
-	RGB 00, 11, 13
-	RGB 00, 00, 00
-; rock
-	RGB 15, 14, 24
-	RGB 12, 09, 15
-	RGB 08, 04, 05
-	RGB 00, 00, 00
-
-; dark
-
-; red
-	RGB 01, 01, 02
-	RGB 31, 19, 10
-	RGB 31, 07, 01
-	RGB 00, 00, 00
-; blue
-	RGB 01, 01, 02
-	RGB 31, 19, 10
-	RGB 10, 09, 31
-	RGB 00, 00, 00
-; green
-	RGB 01, 01, 02
-	RGB 31, 19, 10
-	RGB 07, 23, 03
-	RGB 00, 00, 00
-; brown
-	RGB 01, 01, 02
-	RGB 31, 19, 10
-	RGB 15, 10, 03
-	RGB 00, 00, 00
-; pink
-	RGB 01, 01, 02
-	RGB 31, 19, 10
-	RGB 30, 10, 06
-	RGB 00, 00, 00
-; silver
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 13, 13, 13
-	RGB 00, 00, 00
-; tree
-	RGB 01, 01, 02
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-; rock
-	RGB 01, 01, 02
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
+	; dark
+	RGB 01,01,02, 31,19,10, 31,07,01, 00,00,00 ; red
+	RGB 01,01,02, 31,19,10, 10,09,31, 00,00,00 ; blue
+	RGB 01,01,02, 31,19,10, 07,23,03, 00,00,00 ; green
+	RGB 01,01,02, 31,19,10, 15,10,03, 00,00,00 ; brown
+	RGB 01,01,02, 31,19,10, 30,10,06, 00,00,00 ; pink
+	RGB 31,31,31, 31,31,31, 13,13,13, 00,00,00 ; silver
+	RGB 01,01,02, 00,00,00, 00,00,00, 00,00,00 ; tree
+	RGB 01,01,02, 00,00,00, 00,00,00, 00,00,00 ; rock
--- /dev/null
+++ b/tilesets/olivine_gym_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, FLOOR, WALL ; 02
+	tilecoll WALL, WALL, WALL, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 04
+	tilecoll WALL, WALL, WALL, WALL ; 05
+	tilecoll WALL, WALL, COUNTER, FLOOR ; 06
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 07
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 09
+	tilecoll WALL, FLOOR, FLOOR, WALL ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll WALL, WALL, LADDER, LADDER ; 0c
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0d
+	tilecoll WALL, WALL, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll WALL, WALL, WALL, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll WALL, WALL, FLOOR, WALL ; 14
+	tilecoll WALL, FLOOR, WALL, WALL ; 15
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 16
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 19
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 1d
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 1e
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 20
+	tilecoll WALL, FLOOR, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, WALL, WALL, WALL ; 23
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 24
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 35
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 36
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+	tilecoll FLOOR, WALL, WALL, WALL ; 38
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 39
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 3a
+	tilecoll WALL, WALL, WALL, WALL ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll WALL, FLOOR, WALL, WALL ; 3f
+	tilecoll FLOOR, WALL, WALL, WALL ; 40
binary files a/tilesets/olivine_gym_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/omanyte_word_room_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, WALL, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, WALL ; 1a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, PIT ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/omanyte_word_room_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/park_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll WALL, WALL, WALL, WALL ; 07
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 08
+	tilecoll WALL, WALL, WALL, WALL ; 09
+	tilecoll WALL, WALL, WALL, WALL ; 0a
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0b
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0c
+	tilecoll WALL, WALL, WALL, WALL ; 0d
+	tilecoll WALL, WALL, WALL, WALL ; 0e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0f
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll WALL, WALL, WALL, FLOOR ; 11
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 12
+	tilecoll WALL, WALL, FLOOR, WALL ; 13
+	tilecoll LONG_GRASS, LONG_GRASS, LONG_GRASS, LONG_GRASS ; 14
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 15
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 16
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 17
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 18
+	tilecoll WALL, FLOOR, WALL, WALL ; 19
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 1a
+	tilecoll FLOOR, WALL, WALL, WALL ; 1b
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1c
+	tilecoll WALL, WALL, WALL, FLOOR ; 1d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, FLOOR, WALL ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 20
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll WALL, FLOOR, WALL, WALL ; 25
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 26
+	tilecoll FLOOR, WALL, WALL, WALL ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 30
+	tilecoll WALL, WALL, WALL, WALL ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll LONG_GRASS, LONG_GRASS, LONG_GRASS, LONG_GRASS ; 34
+	tilecoll WALL, WALL, WALL, WALL ; 35
+	tilecoll WALL, WALL, WALL, WALL ; 36
+	tilecoll WALL, WALL, WALL, WALL ; 37
+	tilecoll WALL, WALL, WALL, WALL ; 38
+	tilecoll WALL, WALL, WALL, WALL ; 39
+	tilecoll WALL, WALL, WALL, WALL ; 3a
+	tilecoll WALL, WALL, WALL, WALL ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, WALL, WALL, WALL ; 3d
+	tilecoll WALL, WALL, WALL, WALL ; 3e
+	tilecoll WALL, WALL, WALL, WALL ; 3f
+	tilecoll LONG_GRASS, LONG_GRASS, LONG_GRASS, LONG_GRASS ; 40
binary files a/tilesets/park_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/players_house_2f_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 03
+	tilecoll WALL, WALL, TV, BOOKSHELF ; 04
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 15
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 16
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 17
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 18
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1f
+	tilecoll TOWN_MAP, STAIRCASE, FLOOR, FLOOR ; 20
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 21
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 23
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 24
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 25
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 26
+	tilecoll FF, FF, FF, FF ; 27
+	tilecoll FF, FF, FF, FF ; 28
+	tilecoll FF, FF, FF, FF ; 29
+	tilecoll FF, FF, FF, FF ; 2a
+	tilecoll FF, FF, FF, FF ; 2b
+	tilecoll FF, FF, FF, FF ; 2c
+	tilecoll FF, FF, FF, FF ; 2d
+	tilecoll FF, FF, FF, FF ; 2e
+	tilecoll FF, FF, FF, FF ; 2f
+	tilecoll FF, FF, FF, FF ; 30
+	tilecoll FF, FF, FF, FF ; 31
+	tilecoll FF, FF, FF, FF ; 32
+	tilecoll FF, FF, FF, FF ; 33
+	tilecoll FF, FF, FF, FF ; 34
+	tilecoll FF, FF, FF, FF ; 35
+	tilecoll FF, FF, FF, FF ; 36
+	tilecoll FF, FF, FF, FF ; 37
+	tilecoll FF, FF, FF, FF ; 38
+	tilecoll FF, FF, FF, FF ; 39
+	tilecoll FF, FF, FF, FF ; 3a
+	tilecoll FF, FF, FF, FF ; 3b
+	tilecoll FF, FF, FF, FF ; 3c
+	tilecoll FF, FF, FF, FF ; 3d
+	tilecoll FF, FF, FF, FF ; 3e
+	tilecoll FF, FF, FF, FF ; 3f
+	tilecoll FF, FF, FF, FF ; 40
binary files a/tilesets/players_house_2f_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/players_house_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WINDOW, WALL, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, FLOOR, TV ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, WALL, WALL ; 05
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 07
+	tilecoll WALL, WALL, WALL, WALL ; 08
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 09
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 0a
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 0b
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0d
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, PC, FLOOR ; 11
+	tilecoll WALL, WALL, TV, WALL ; 12
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 13
+	tilecoll FLOOR, TV, FLOOR, WALL ; 14
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 15
+	tilecoll WALL, WALL, FLOOR, WALL ; 16
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 17
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, RADIO, PC ; 19
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+	tilecoll WALL, WALL, RADIO, FLOOR ; 1b
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 1c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, VIRTUAL_BOY, FLOOR ; 1f
+	tilecoll WALL, WALL, PC, RADIO ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, TV, BOOKSHELF ; 22
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 23
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 24
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 25
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 26
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 27
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/players_house_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/pokecenter_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll WALL, WALL, WALL, FLOOR ; 03
+	tilecoll WALL, WALL, FLOOR, WALL ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 06
+	tilecoll WALL, COUNTER, FLOOR, FLOOR ; 07
+	tilecoll COUNTER, WALL, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, PC ; 09
+	tilecoll WALL, WALL, FLOOR, WALL ; 0a
+	tilecoll WALL, DOOR, FLOOR, FLOOR ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0d
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0e
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 0f
+	tilecoll WALL, WALL, FLOOR, WALL ; 10
+	tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 12
+	tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 13
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 14
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 15
+	tilecoll WALL, DOOR, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, FLOOR, WALL ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, WALL ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1f
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, FLOOR, PC ; 22
+	tilecoll WALL, WALL, WALL, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 25
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 26
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 28
+	tilecoll WALL, WALL, FLOOR, WALL ; 29
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll WALL, WALL, WALL, FLOOR ; 2b
+	tilecoll WALL, DOOR, FLOOR, FLOOR ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2f
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 30
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 31
+	tilecoll WALL, WALL, FLOOR, WALL ; 32
+	tilecoll PC, WALL, FLOOR, WALL ; 33
+	tilecoll FLOOR, WARP_PANEL, FLOOR, FLOOR ; 34
+	tilecoll DOOR, WALL, FLOOR, FLOOR ; 35
+	tilecoll DOOR, WALL, FLOOR, WALL ; 36
+	tilecoll DOOR, WALL, FLOOR, FLOOR ; 37
+	tilecoll DOOR, WALL, FLOOR, WALL ; 38
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 39
+	tilecoll WALL, WALL, FLOOR, WALL ; 3a
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll WALL, WALL, FLOOR, WALL ; 3c
+	tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll WARP_PANEL, FLOOR, FLOOR, FLOOR ; 3e
+	tilecoll WARP_PANEL, WARP_PANEL, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, WARP_PANEL, FLOOR, FLOOR ; 40
binary files a/tilesets/pokecenter_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/pokecom_center_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 03
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, WALL, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll WALL, WALL, WALL, FLOOR ; 07
+	tilecoll WALL, WALL, FLOOR, PC ; 08
+	tilecoll WALL, WALL, WALL, FLOOR ; 09
+	tilecoll WALL, COUNTER, FLOOR, FLOOR ; 0a
+	tilecoll WALL, COUNTER, FLOOR, FLOOR ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll WALL, WALL, FLOOR, WALL ; 0d
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 0f
+	tilecoll WALL, WALL, FLOOR, WALL ; 10
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 11
+	tilecoll WALL, WALL, WALL, FLOOR ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WALL, WALL, WALL ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, WALL, WALL ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, FLOOR, WALL ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 2d
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 2e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll WALL, WALL, WALL, WALL ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 34
+	tilecoll WALL, WALL, WALL, WALL ; 35
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 36
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 38
+	tilecoll WALL, WALL, WALL, WALL ; 39
+	tilecoll WALL, WALL, WALL, WALL ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 3c
+	tilecoll WALL, WALL, WALL, WALL ; 3d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 3e
+	tilecoll WALL, WALL, WALL, WALL ; 3f
+	tilecoll WALL, WALL, WALL, WALL ; 40
binary files a/tilesets/pokecom_center_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/port_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll BUOY, WATER, BUOY, WATER ; 03
+	tilecoll WATER, BUOY, WATER, BUOY ; 04
+	tilecoll LADDER, LADDER, LADDER, LADDER ; 05
+	tilecoll WALL, WALL, WALL, WATER ; 06
+	tilecoll WALL, WALL, WATER, WATER ; 07
+	tilecoll WALL, WALL, WATER, WALL ; 08
+	tilecoll WATER, WATER, WATER, WATER ; 09
+	tilecoll WALL, WATER, WALL, WATER ; 0a
+	tilecoll WATER, WATER, WATER, WATER ; 0b
+	tilecoll WATER, WALL, WATER, WALL ; 0c
+	tilecoll WATER, WATER, FLOOR, FLOOR ; 0d
+	tilecoll WALL, WATER, WALL, WALL ; 0e
+	tilecoll WATER, WATER, WALL, WALL ; 0f
+	tilecoll WATER, WALL, WALL, WALL ; 10
+	tilecoll WATER, WATER, WATER, WATER ; 11
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 12
+	tilecoll WATER, WATER, WATER, WATER ; 13
+	tilecoll WATER, FLOOR, WATER, FLOOR ; 14
+	tilecoll WATER, FLOOR, WATER, FLOOR ; 15
+	tilecoll WATER, WATER, WATER, WATER ; 16
+	tilecoll WATER, WATER, WATER, WATER ; 17
+	tilecoll WATER, FLOOR, WALL, WARP_CARPET_DOWN ; 18
+	tilecoll WATER, WATER, WALL, WALL ; 19
+	tilecoll WATER, FLOOR, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, WALL ; 1b
+	tilecoll WALL, WATER, WALL, WALL ; 1c
+	tilecoll WATER_21, WATER_21, WALL, WALL ; 1d
+	tilecoll WATER_21, WATER_21, WALL, WALL ; 1e
+	tilecoll WATER_21, WATER_21, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WATER ; 20
+	tilecoll WALL, FLOOR, WATER, WARP_CARPET_DOWN ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 22
+	tilecoll BUOY, BUOY, BUOY, WATER ; 23
+	tilecoll BUOY, BUOY, WATER, BUOY ; 24
+	tilecoll BUOY, BUOY, WATER, WATER ; 25
+	tilecoll BUOY, BUOY, WATER, WATER ; 26
+	tilecoll LADDER, LADDER, LADDER, LADDER ; 27
+	tilecoll FLOOR, FLOOR, WATER, WATER ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, WATER ; 29
+	tilecoll FLOOR, FLOOR, WATER, FLOOR ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2c
+	tilecoll FLOOR, WATER, FLOOR, FLOOR ; 2d
+	tilecoll WATER, FLOOR, FLOOR, FLOOR ; 2e
+	tilecoll FLOOR, WATER, FLOOR, WATER ; 2f
+	tilecoll WATER, FLOOR, WATER, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, WATER, WATER ; 31
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 34
+	tilecoll FLOOR, WATER, FLOOR, WATER ; 35
+	tilecoll WALL, WALL, FLOOR, LADDER ; 36
+	tilecoll WATER, WATER, WATER, WATER ; 37
+	tilecoll FLOOR, WATER, FLOOR, WATER ; 38
+	tilecoll WATER, FLOOR, WATER, FLOOR ; 39
+	tilecoll WATER, WATER, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3b
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3c
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 40
binary files a/tilesets/port_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/power_plant_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, WALL, WALL ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 06
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 09
+	tilecoll WALL, WALL, WALL, FLOOR ; 0a
+	tilecoll WALL, WALL, FLOOR, WALL ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 0e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 11
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 15
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 16
+	tilecoll WALL, WALL, WALL, WALL ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, FLOOR ; 1b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 1f
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 20
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 21
+	tilecoll WALL, WALL, WALL, FLOOR ; 22
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 23
+	tilecoll WALL, FLOOR, WALL, WALL ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 25
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 29
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2a
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2c
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2f
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 31
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 32
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 34
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 35
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 36
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 38
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 39
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, WALL, WALL, WALL ; 3b
+	tilecoll WALL, WALL, FLOOR, WALL ; 3c
+	tilecoll WALL, WALL, WALL, FLOOR ; 3d
+	tilecoll WALL, WALL, FLOOR, WALL ; 3e
+	tilecoll WALL, FLOOR, WALL, WALL ; 3f
+	tilecoll FLOOR, COUNTER, COUNTER, COUNTER ; 40
binary files a/tilesets/power_plant_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/radio_tower_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 03
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, WALL, COUNTER ; 06
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 07
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 08
+	tilecoll COUNTER, COUNTER, FLOOR, FLOOR ; 09
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 0a
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 0d
+	tilecoll WALL, STAIRCASE, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, FLOOR, FLOOR, COUNTER ; 0f
+	tilecoll FLOOR, FLOOR, COUNTER, FLOOR ; 10
+	tilecoll FLOOR, COUNTER, FLOOR, FLOOR ; 11
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 12
+	tilecoll WALL, WALL, PC, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 14
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 15
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 16
+	tilecoll WALL, WALL, WALL, WALL ; 17
+	tilecoll FLOOR, FLOOR, COUNTER, FLOOR ; 18
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, COUNTER ; 1a
+	tilecoll WALL, COUNTER, FLOOR, COUNTER ; 1b
+	tilecoll COUNTER, FLOOR, FLOOR, FLOOR ; 1c
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1d
+	tilecoll STAIRCASE, WALL, FLOOR, FLOOR ; 1e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1f
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 20
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 21
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 22
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, FLOOR, BOOKSHELF ; 25
+	tilecoll COUNTER, FLOOR, COUNTER, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 27
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 28
+	tilecoll WALL, WALL, FLOOR, WALL ; 29
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 2a
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 2c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2d
+	tilecoll FLOOR, COUNTER, FLOOR, COUNTER ; 2e
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 31
+	tilecoll WALL, WALL, FLOOR, WALL ; 32
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 33
+	tilecoll WALL, WALL, WALL, FLOOR ; 34
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 35
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 36
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 38
+	tilecoll FLOOR, FLOOR, COUNTER, COUNTER ; 39
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 3d
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 3e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/radio_tower_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/ruins_of_alph_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, FLOOR ; 02
+	tilecoll WALL, WALL, FLOOR, WALL ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, FLOOR ; 06
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 07
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, FLOOR, WALL ; 09
+	tilecoll WALL, FLOOR, WALL, WALL ; 0a
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0b
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0c
+	tilecoll FLOOR, WALL, WALL, WALL ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 0f
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 10
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 11
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 14
+	tilecoll WALL, FLOOR, WALL, WALL ; 15
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 16
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 17
+	tilecoll FLOOR, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, WALL, PIT ; 19
+	tilecoll WALL, WALL, PIT, WALL ; 1a
+	tilecoll FLOOR, FLOOR, LADDER, FLOOR ; 1b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1d
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 1e
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 1f
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 20
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 21
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 22
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 23
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, WALL, WALL, WALL ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WALL ; 2c
+	tilecoll FLOOR, FLOOR, WALL, WARP_CARPET_DOWN ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2f
+	tilecoll FLOOR, FLOOR, FLOOR, PIT ; 30
+	tilecoll CAVE, WALL, FLOOR, FLOOR ; 31
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 32
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 33
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll WALL, WALL, WALL, PIT ; 35
+	tilecoll WALL, WALL, PIT, WALL ; 36
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 37
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, FLOOR, GRASS_4A, FLOOR ; 39
+	tilecoll FLOOR, FLOOR, GRASS_4B, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, CUT_28, FLOOR ; 3b
+	tilecoll FLOOR, FLOOR, WATER, FLOOR ; 3c
+	tilecoll 64, FLOOR, WATERFALL_UP, FLOOR ; 3d
+	tilecoll 65, FLOOR, WATERFALL, FLOOR ; 3e
+	tilecoll WATERFALL_UP, FLOOR, WARP_CARPET_DOWN, FLOOR ; 3f
+	tilecoll WATERFALL, FLOOR, DOOR, FLOOR ; 40
binary files a/tilesets/ruins_of_alph_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/sprout_tower_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 04
+	tilecoll WALL, WALL, WALL, FLOOR ; 05
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 06
+	tilecoll WALL, WALL, FLOOR, WALL ; 07
+	tilecoll WALL, WALL, WALL, WALL ; 08
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll WALL, FLOOR, WALL, WALL ; 0d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, WALL, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 11
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 12
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 13
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 14
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 15
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 16
+	tilecoll WALL, FLOOR, WALL, WALL ; 17
+	tilecoll FLOOR, WALL, WALL, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 1e
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, FLOOR ; 1f
+	tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 20
+	tilecoll LADDER, FLOOR, FLOOR, FLOOR ; 21
+	tilecoll WALL, WALL, WALL, FLOOR ; 22
+	tilecoll WALL, WALL, FLOOR, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll FLOOR, FLOOR, WARP_PANEL, FLOOR ; 25
+	tilecoll WALL, WALL, PIT, FLOOR ; 26
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 27
+	tilecoll WARP_CARPET_UP, WARP_CARPET_UP, FLOOR, FLOOR ; 28
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 2a
+	tilecoll WALL, WALL, WALL, WALL ; 2b
+	tilecoll WALL, HOP_LEFT, WALL, WALL ; 2c
+	tilecoll HOP_RIGHT, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 2e
+	tilecoll WALL, WALL, WALL, FLOOR ; 2f
+	tilecoll WALL, WALL, FLOOR, WALL ; 30
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 31
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 32
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 33
+	tilecoll WALL, WALL, WALL, FLOOR ; 34
+	tilecoll WALL, WALL, FLOOR, WALL ; 35
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 36
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+	tilecoll PIT, PIT, FLOOR, FLOOR ; 38
+	tilecoll FLOOR, PIT, FLOOR, PIT ; 39
+	tilecoll PIT, FLOOR, PIT, FLOOR ; 3a
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 3b
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 3c
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 3d
+	tilecoll WALL, HOP_DOWN, WALL, WALL ; 3e
+	tilecoll HOP_DOWN, WALL, WALL, WALL ; 3f
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 40
binary files a/tilesets/sprout_tower_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/train_station_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll FF, FF, FF, FF ; 01
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 02
+	tilecoll UP_WALL, FLOOR, UP_WALL, FLOOR ; 03
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 07
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 08
+	tilecoll WALL, FLOOR, WALL, WALL ; 09
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 0d
+	tilecoll WALL, WALL, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, WALL, WALL ; 11
+	tilecoll WALL, WALL, DOOR, WALL ; 12
+	tilecoll WALL, WALL, WALL, DOOR ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WALL, WALL, WALL ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll WALL, WALL, WALL, WALL ; 17
+	tilecoll WALL, WALL, WALL, WALL ; 18
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 19
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1a
+	tilecoll WALL, WALL, WALL, WALL ; 1b
+	tilecoll WALL, WALL, WALL, WALL ; 1c
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 1d
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1f
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 22
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 23
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 24
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 25
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 26
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 27
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 28
+	tilecoll WALL, WALL, WALL, FLOOR ; 29
+	tilecoll WALL, WALL, FLOOR, WALL ; 2a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2b
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 2c
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 2d
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 30
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 31
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 32
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 33
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 34
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 35
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+	tilecoll WALL, WALL, WALL, FLOOR ; 37
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 38
+	tilecoll WALL, WALL, FLOOR, WALL ; 39
+	tilecoll WALL, FLOOR, WALL, WALL ; 3a
+	tilecoll WALL, WALL, WALL, WALL ; 3b
+	tilecoll FLOOR, WALL, WALL, WALL ; 3c
+	tilecoll WALL, WALL, WALL, WALL ; 3d
+	tilecoll WALL, WALL, WALL, WALL ; 3e
+	tilecoll WALL, WALL, WALL, WALL ; 3f
+	tilecoll WALL, WALL, WALL, WALL ; 40
binary files a/tilesets/train_station_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/underground_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 03
+	tilecoll FLOOR, LADDER, FLOOR, FLOOR ; 04
+	tilecoll WALL, WALL, WALL, FLOOR ; 05
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 06
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, PIT, PIT ; 08
+	tilecoll WALL, WALL, WALL, FLOOR ; 09
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 0a
+	tilecoll WALL, WALL, FLOOR, WALL ; 0b
+	tilecoll WALL, WALL, WALL, WALL ; 0c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0f
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_PANEL ; 10
+	tilecoll WALL, FLOOR, WALL, WALL ; 11
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 12
+	tilecoll FLOOR, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 14
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 15
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 16
+	tilecoll WALL, FLOOR, WALL, WALL ; 17
+	tilecoll FLOOR, WALL, WALL, WALL ; 18
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 19
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1b
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1c
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 1d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1e
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 1f
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 20
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 21
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 22
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 23
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, WARP_CARPET_DOWN, WARP_CARPET_DOWN ; 25
+	tilecoll WALL, WARP_CARPET_UP, FLOOR, FLOOR ; 26
+	tilecoll WARP_CARPET_UP, WALL, FLOOR, FLOOR ; 27
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 28
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 29
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 2a
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 2b
+	tilecoll WALL, WALL, WALL, WALL ; 2c
+	tilecoll WALL, WALL, WALL, WALL ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll WARP_CARPET_DOWN, WARP_CARPET_DOWN, WALL, WALL ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll WALL, WALL, WALL, WALL ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WALL, WALL, WALL, WALL ; 33
+	tilecoll WALL, WALL, WALL, WALL ; 34
+	tilecoll WALL, WALL, WALL, WALL ; 35
+	tilecoll WALL, WALL, WALL, WALL ; 36
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 37
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 38
+	tilecoll WALL, WALL, WALL, WALL ; 39
+	tilecoll WALL, WALL, WALL, WALL ; 3a
+	tilecoll WALL, WALL, WALL, WALL ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, WALL, WALL, WALL ; 3d
+	tilecoll WALL, WALL, BOOKSHELF, BOOKSHELF ; 3e
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 40
binary files a/tilesets/underground_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/unused_whirl_islands_collision.asm
@@ -1,0 +1,128 @@
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 01
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS_10, TALL_GRASS_10, TALL_GRASS_10, TALL_GRASS_10 ; 04
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 05
+	tilecoll WALL, WALL, WALL, WALL ; 06
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 08
+	tilecoll WALL, WALL, WALL, WALL ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll WALL, WALL, WALL, WALL ; 0b
+	tilecoll WARP_CARPET_LEFT, FLOOR, WARP_CARPET_LEFT, FLOOR ; 0c
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 0d
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0e
+	tilecoll FLOOR, WARP_CARPET_RIGHT, FLOOR, WARP_CARPET_RIGHT ; 0f
+	tilecoll WALL, WALL, WALL, WALL ; 10
+	tilecoll WALL, WALL, WALL, WALL ; 11
+	tilecoll WALL, WALL, WALL, WALL ; 12
+	tilecoll WALL, WALL, WALL, WALL ; 13
+	tilecoll WALL, WALL, WALL, WALL ; 14
+	tilecoll WALL, WALL, WALL, DOOR ; 15
+	tilecoll WALL, WALL, WALL, WALL ; 16
+	tilecoll WALL, WALL, WALL, DOOR ; 17
+	tilecoll WALL, WALL, TOWN_MAP, WALL ; 18
+	tilecoll WALL, WALL, WALL, WALL ; 19
+	tilecoll WALL, WALL, WALL, WALL ; 1a
+	tilecoll WALL, WALL, WALL, DOOR ; 1b
+	tilecoll WALL, WALL, TOWN_MAP, WALL ; 1c
+	tilecoll WALL, WALL, WALL, WALL ; 1d
+	tilecoll WALL, WALL, DOOR, WALL ; 1e
+	tilecoll WALL, WALL, WALL, WALL ; 1f
+	tilecoll WALL, WALL, WALL, WALL ; 20
+	tilecoll WALL, WALL, WALL, WALL ; 21
+	tilecoll WALL, WALL, WALL, WALL ; 22
+	tilecoll WALL, WALL, WALL, WALL ; 23
+	tilecoll WALL, WALL, WALL, WALL ; 24
+	tilecoll WALL, WALL, WALL, WALL ; 25
+	tilecoll WALL, WALL, WALL, WALL ; 26
+	tilecoll WALL, WALL, WALL, WALL ; 27
+	tilecoll WALL, WALL, WALL, WALL ; 28
+	tilecoll WALL, WALL, WALL, DOOR ; 29
+	tilecoll WALL, WALL, WALL, WALL ; 2a
+	tilecoll WALL, WALL, WALL, DOOR ; 2b
+	tilecoll WALL, WALL, WALL, WALL ; 2c
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 2d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, DOOR ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll BUOY, BUOY, BUOY, WATER_21 ; 31
+	tilecoll BUOY, BUOY, WATER_21, WATER_21 ; 32
+	tilecoll BUOY, BUOY, WATER_21, BUOY ; 33
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 34
+	tilecoll BUOY, WATER_21, BUOY, WATER_21 ; 35
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 36
+	tilecoll WATER_21, BUOY, WATER_21, BUOY ; 37
+	tilecoll WALL, WALL, WALL, WALL ; 38
+	tilecoll BUOY, WATER_21, BUOY, BUOY ; 39
+	tilecoll WATER_21, WATER_21, BUOY, BUOY ; 3a
+	tilecoll WATER_21, BUOY, BUOY, BUOY ; 3b
+	tilecoll WALL, WALL, WALL, WALL ; 3c
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 3d
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 3e
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 3f
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 40
+	tilecoll WALL, WALL, WALL, FLOOR ; 41
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 42
+	tilecoll WALL, WALL, FLOOR, WALL ; 43
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 44
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 45
+	tilecoll TOWN_MAP, FLOOR, FLOOR, FLOOR ; 46
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 47
+	tilecoll FLOOR, FLOOR, FLOOR, TOWN_MAP ; 48
+	tilecoll WALL, FLOOR, WALL, WALL ; 49
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 4a
+	tilecoll FLOOR, WALL, WALL, WALL ; 4b
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 4c
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4d
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 4e
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 4f
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 50
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 51
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 52
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 53
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 54
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 55
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 56
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 57
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 58
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 59
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 5a
+	tilecoll HOP_DOWN, FLOOR, WALL, FLOOR ; 5b
+	tilecoll WALL, CUT_TREE, FLOOR, FLOOR ; 5c
+	tilecoll WALL, WALL, WALL, FLOOR ; 5d
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 5e
+	tilecoll WALL, WALL, FLOOR, WALL ; 5f
+	tilecoll FLOOR, WALL, FLOOR, CUT_TREE ; 60
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 61
+	tilecoll WALL, WALL, WALL, WALL ; 62
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 63
+	tilecoll FLOOR, FLOOR, CUT_TREE, WALL ; 64
+	tilecoll WALL, FLOOR, WALL, WALL ; 65
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 66
+	tilecoll FLOOR, WALL, WALL, WALL ; 67
+	tilecoll CUT_TREE, FLOOR, WALL, FLOOR ; 68
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 69
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 6a
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 6b
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 6c
+	tilecoll WALL, FLOOR, WALL, WALL ; 6d
+	tilecoll FLOOR, WALL, WALL, WALL ; 6e
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 6f
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 70
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 71
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 72
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 73
+	tilecoll FLOOR, FLOOR, DOOR, WALL ; 74
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 75
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 76
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 77
+	tilecoll WALL, WALL, WALL, WALL ; 78
+	tilecoll WALL, WALL, WALL, WALL ; 79
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 7a
+	tilecoll WATER_21, WATER_21, WATER_21, WATER_21 ; 7b
+	tilecoll WALL, WALL, WALL, WALL ; 7c
+	tilecoll WALL, WALL, WALL, WALL ; 7d
+	tilecoll WALL, WALL, WALL, WALL ; 7e
+	tilecoll WALL, WALL, WALL, WALL ; 7f
+	tilecoll WALL, WALL, WALL, WALL ; 80
binary files a/tilesets/unused_whirl_islands_collision.bin /dev/null differ
--- /dev/null
+++ b/tilesets/whirl_islands_collision.asm
@@ -1,0 +1,64 @@
+	tilecoll WALL, WALL, WALL, WALL ; 01
+	tilecoll WALL, WALL, WALL, WALL ; 02
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 03
+	tilecoll TALL_GRASS, TALL_GRASS, TALL_GRASS, TALL_GRASS ; 04
+	tilecoll WALL, UP_WALL, WALL, FLOOR ; 05
+	tilecoll UP_WALL, UP_WALL, FLOOR, FLOOR ; 06
+	tilecoll UP_WALL, WALL, FLOOR, WALL ; 07
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 08
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 09
+	tilecoll FLOOR, FLOOR, FLOOR, FLOOR ; 0a
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 0b
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 0c
+	tilecoll WALL, FLOOR, WALL, WALL ; 0d
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 0e
+	tilecoll FLOOR, WALL, WALL, WALL ; 0f
+	tilecoll WATER, WATER, WATER, WATER ; 10
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 11
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 12
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 13
+	tilecoll FLOOR, FLOOR, WALL, CAVE ; 14
+	tilecoll UP_WALL, UP_WALL, FLOOR, LADDER ; 15
+	tilecoll UP_WALL, UP_WALL, FLOOR, LADDER ; 16
+	tilecoll WALL, FLOOR, WALL, WARP_CARPET_DOWN ; 17
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 18
+	tilecoll WALL, WALL, WALL, FLOOR ; 19
+	tilecoll WALL, WALL, FLOOR, FLOOR ; 1a
+	tilecoll WALL, WALL, FLOOR, WALL ; 1b
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 1c
+	tilecoll WALL, FLOOR, WALL, FLOOR ; 1d
+	tilecoll WALL, WALL, WALL, WALL ; 1e
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 1f
+	tilecoll FLOOR, FLOOR, FLOOR, LADDER ; 20
+	tilecoll WALL, FLOOR, WALL, WALL ; 21
+	tilecoll FLOOR, FLOOR, WALL, WALL ; 22
+	tilecoll FLOOR, WALL, WALL, WALL ; 23
+	tilecoll UP_WALL, WALL, FLOOR, FLOOR ; 24
+	tilecoll FLOOR, FLOOR, FLOOR, WARP_CARPET_DOWN ; 25
+	tilecoll WATER, WATER, WATER, WATER ; 26
+	tilecoll WATER, WATER, WATER, WATER ; 27
+	tilecoll WATER, WATER, WATER, WATER ; 28
+	tilecoll WALL, FLOOR, FLOOR, FLOOR ; 29
+	tilecoll FLOOR, FLOOR, WALL, FLOOR ; 2a
+	tilecoll FLOOR, WALL, FLOOR, FLOOR ; 2b
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 2c
+	tilecoll WATERFALL, WATERFALL, WATERFALL, WATERFALL ; 2d
+	tilecoll WALL, WALL, WALL, WALL ; 2e
+	tilecoll WALL, WALL, WALL, WALL ; 2f
+	tilecoll WALL, WALL, WALL, WALL ; 30
+	tilecoll FLOOR, FLOOR, FLOOR, WALL ; 31
+	tilecoll WALL, WALL, WALL, WALL ; 32
+	tilecoll WATER, WATER, WATER, WATER ; 33
+	tilecoll WATER, WATER, WATER, WATER ; 34
+	tilecoll WALL, WALL, WALL, WALL ; 35
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 36
+	tilecoll FLOOR, WALL, FLOOR, WALL ; 37
+	tilecoll WALL, WALL, WALL, CAVE ; 38
+	tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; 39
+	tilecoll HOP_DOWN, HOP_DOWN, WALL, WALL ; 3a
+	tilecoll HOP_DOWN_RIGHT, WALL, WALL, WALL ; 3b
+	tilecoll WALL, HOP_LEFT, WALL, HOP_LEFT ; 3c
+	tilecoll HOP_RIGHT, WALL, HOP_RIGHT, WALL ; 3d
+	tilecoll WATER, WATER, WATER, WATER ; 3e
+	tilecoll WATER, WATER, WATER, WATER ; 3f
+	tilecoll FLOOR, FLOOR, PIT, FLOOR ; 40
binary files a/tilesets/whirl_islands_collision.bin /dev/null differ