diff --git a/gfx/ED_tile.1bpp b/gfx/ED_tile.1bpp
new file mode 100755
index 00000000..7bbee183
--- /dev/null
+++ b/gfx/ED_tile.1bpp
@@ -0,0 +1 @@
+�����


\ No newline at end of file
diff --git a/gfx/emotion_bubbles.2bpp b/gfx/emotion_bubbles.2bpp
index c8a13e2f..b1900c58 100755
Binary files a/gfx/emotion_bubbles.2bpp and b/gfx/emotion_bubbles.2bpp differ
diff --git a/main.asm b/main.asm
index 0d81c646..b3e2074b 100755
--- a/main.asm
+++ b/main.asm
@@ -1299,7 +1299,7 @@ IsBikeRidingAllowed: ; 09c5 (0:09c5)
 	ret
 
 BikeRidingTilesets: ; 09e2 (0:09e2)
-db $00, $03, $0B, $0E, $11, $FF
+	db $00, $03, $0B, $0E, $11, $FF
 
 ; load the tile pattern data of the current tileset into VRAM
 LoadTilesetTilePatternData: ; 09e8 (0:09e8)
@@ -1787,24 +1787,24 @@ CheckForTilePairCollisions: ; 0c4a (0:0c4a)
 ; it's mainly used to simulate differences in elevation
 
 TilePairCollisionsLand: ; 0c7e (0:0c7e)
-db $11, $20, $05;
-db $11, $41, $05;
-db $03, $30, $2E;
-db $11, $2A, $05;
-db $11, $05, $21;
-db $03, $52, $2E;
-db $03, $55, $2E;
-db $03, $56, $2E;
-db $03, $20, $2E;
-db $03, $5E, $2E;
-db $03, $5F, $2E;
-db $FF;
+	db $11, $20, $05;
+	db $11, $41, $05;
+	db $03, $30, $2E;
+	db $11, $2A, $05;
+	db $11, $05, $21;
+	db $03, $52, $2E;
+	db $03, $55, $2E;
+	db $03, $56, $2E;
+	db $03, $20, $2E;
+	db $03, $5E, $2E;
+	db $03, $5F, $2E;
+	db $FF;
 
 TilePairCollisionsWater: ; 0ca0 (0:0ca0)
-db $03, $14, $2E;
-db $03, $48, $2E;
-db $11, $14, $05;
-db $FF;
+	db $03, $14, $2E;
+	db $03, $48, $2E;
+	db $11, $14, $05;
+	db $FF;
 
 ; this builds a tile map from the tile block map based on the current X/Y coordinates of the player's character
 LoadCurrentMapView: ; 0caa (0:0caa)
@@ -2867,7 +2867,7 @@ Func_12e7: ; 12e7 (0:12e7)
 	ld hl, $d728
 	res 0, [hl]
 	ret
-; 12ed (0:12ed)
+
 ;appears to be called twice inside function $C38B
 ;if $d700,$d11a == $1 then biking
 ;if $d700,$d11a == $2 then surfing
@@ -3056,7 +3056,6 @@ LoadFrontSpriteByMonIndex: ; 1389 (0:1389)
 	ld [H_LOADEDROMBANK], a
 	ld [$2000], a
 	ret
-; 13d0 (0:13d0)
 
 ; plays the cry of a pokemon
 ; INPUT:
@@ -3660,7 +3659,6 @@ InterlaceMergeSpriteBuffers: ; 16ea (0:16ea)
 	ld a, [H_LOADEDROMBANK]
 	ld b, a
 	jp CopyVideoData
-; 172f (0:172f)
 
 Tset0B_Coll: ; 172f (0:172f)
 	INCBIN "gfx/tilesets/0b.tilecoll"
@@ -3903,7 +3901,7 @@ InitScreenTileBufferTransferParameters: ; 18fc (0:18fc)
 	ld a, e
 	ld [H_VBCOPYBGSRC], a ; $FF00+$c1
 	ret
-; 190f (0:190f)
+
 ClearScreen: ; 190f (0:190f)
 ; clears all tiles in the tilemap,
 ; then wait three frames
@@ -4570,16 +4568,16 @@ TextCommand0B: ; 1c31 (0:1c31)
 
 ; format: text command ID, sound ID or cry ID
 TextCommandSounds: ; 1c64 (0:1c64)
-db $0B,$86
-db $12,$9A
-db $0E,$91
-db $0F,$86
-db $10,$89
-db $11,$94
-db $13,$98
-db $14,$A8
-db $15,$97
-db $16,$78
+	db $0B,$86
+	db $12,$9A
+	db $0E,$91
+	db $0F,$86
+	db $10,$89
+	db $11,$94
+	db $13,$98
+	db $14,$A8
+	db $15,$97
+	db $16,$78
 
 ; draw ellipses
 ; 0CAA
@@ -4646,20 +4644,20 @@ TextCommand17: ; 1ca3 (0:1ca3)
 	jp NextTextCommand
 
 TextCommandJumpTable: ; 1cc1 (0:1cc1)
-dw TextCommand00
-dw TextCommand01
-dw TextCommand02
-dw TextCommand03
-dw TextCommand04
-dw TextCommand05
-dw TextCommand06
-dw TextCommand07
-dw TextCommand08
-dw TextCommand09
-dw TextCommand0A
-dw TextCommand0B
-dw TextCommand0C
-dw TextCommand0D
+	dw TextCommand00
+	dw TextCommand01
+	dw TextCommand02
+	dw TextCommand03
+	dw TextCommand04
+	dw TextCommand05
+	dw TextCommand06
+	dw TextCommand07
+	dw TextCommand08
+	dw TextCommand09
+	dw TextCommand0A
+	dw TextCommand0B
+	dw TextCommand0C
+	dw TextCommand0D
 
 ; this function seems to be used only once
 ; it store the address of a row and column of the VRAM background map in hl
@@ -5165,7 +5163,6 @@ SoftReset: ; 1f49 (0:1f49)
 	call DelayFrames
 	;fall through
 
-; 1f54 (0:1f54)
 ; initialization code
 ; explanation for %11100011 (value stored in rLCDC)
 ; * LCD enabled
@@ -5279,7 +5276,6 @@ StopAllSounds: ; 200e (0:200e)
 	ld [$cfca], a
 	dec a
 	jp PlaySound
-; 2024 (0:2024)
 
 VBlankHandler: ; 2024 (0:2024)
 	push af
@@ -5978,7 +5974,6 @@ UpdateSprites: ; 2429 (0:2429)
 	ld [H_LOADEDROMBANK], a
 	ld [$2000], a
 	ret
-; 2442 (0:2442)
 
 ; mart inventories are below
 ; they are texts
@@ -6751,7 +6746,6 @@ Func_28cb: ; 28cb (0:28cb)
 	ld [$c0ee], a
 	jp PlaySound
 
-; 2920 (0:2920)
 ; this function is used to display sign messages, sprite dialog, etc.
 ; INPUT: [$ff8c] = sprite ID or text ID
 DisplayTextID: ; 2920 (0:2920)
@@ -6837,8 +6831,8 @@ DisplayTextID: ; 2920 (0:2920)
 	jp z,FuncTX_PokemonCenterPC
 	cp a,$f5   ; Vending Machine
 	jr nz,.notVendingMachine
-	ld b,BANK(Unknown_74ee0)
-	ld hl,Unknown_74ee0
+	ld b,BANK(Func_74ee0)
+	ld hl,Func_74ee0
 	call Bankswitch
 	jr AfterDisplayingTextID
 .notVendingMachine
@@ -6846,8 +6840,8 @@ DisplayTextID: ; 2920 (0:2920)
 	jp z,FuncTX_SlotMachine
 	cp a,$f6   ; cable connection NPC in Pokemon Center
 	jr nz,.notSpecialCase
-	ld hl, Unknown_71c5
-	ld b, BANK(Unknown_71c5)
+	ld hl, Func_71c5
+	ld b, BANK(Func_71c5)
 	call Bankswitch
 	jr AfterDisplayingTextID
 .notSpecialCase
@@ -7992,7 +7986,7 @@ Func_310e: ; 310e (0:310e)
 	add a
 	ld d, $0
 	ld e, a
-	ld hl, .unknown_3140
+	ld hl, .pointerTable_3140
 	add hl, de
 	ld a, [hli]
 	ld h, [hl]
@@ -8008,10 +8002,10 @@ Func_310e: ; 310e (0:310e)
 	ld [H_LOADEDROMBANK], a
 	ld [$2000], a
 	ret
-.unknown_3140 ; 0x3140
-	dw Unknown_1a442
-	dw Unknown_1a510
-	dw Unknown_1a57d
+.pointerTable_3140
+	dw PointerTable_1a442
+	dw PointerTable_1a510
+	dw PointerTable_1a57d
 .asm_3146
 	ld b, BANK(Func_1a3e0)
 	ld hl, Func_1a3e0
@@ -8114,7 +8108,6 @@ ReadTrainerHeaderInfo: ; 3193 (0:3193)
 HandleBitArray_Bank0: ; 31c7 (0:31c7)
 	ld a, $10
 	jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
-; 31cc (0:31cc)
 
 ; direct talking to a trainer (rather than getting seen by one)
 TalkToTrainer: ; 31cc (0:31cc)
@@ -8468,22 +8461,22 @@ PlayTrainerMusic: ; 33e8 (0:33e8)
 	jp PlaySound
 
 FemaleTrainerList: ; 3434 (0:3434)
-db $c8+LASS
-db $c8+JR__TRAINER_F
-db $c8+BEAUTY
-db $c8+COOLTRAINER_F
-db $FF
+	db $c8+LASS
+	db $c8+JR__TRAINER_F
+	db $c8+BEAUTY
+	db $c8+COOLTRAINER_F
+	db $FF
 
 EvilTrainerList: ; 3439 (0:3439)
-db $c8+JUGGLER_X
-db $c8+GAMBLER
-db $c8+ROCKER
-db $c8+JUGGLER
-db $c8+CHIEF
-db $c8+SCIENTIST
-db $c8+GIOVANNI
-db $c8+ROCKET
-db $FF
+	db $c8+JUGGLER_X
+	db $c8+GAMBLER
+	db $c8+ROCKER
+	db $c8+JUGGLER
+	db $c8+CHIEF
+	db $c8+SCIENTIST
+	db $c8+GIOVANNI
+	db $c8+ROCKET
+	db $FF
 
 Func_3442: ; 3442 (0:3442)
 	ld a, [hli]
@@ -8875,7 +8868,6 @@ CalcDifference: ; 3633 (0:3633)
 	add $1
 	scf
 	ret
-; 363a (0:363a)
 
 MoveSprite: ; 363a (0:363a)
 ; move the sprite [$FF8C] with the movement pointed to by de
@@ -8932,7 +8924,7 @@ Func_366b: ; 366b (0:366b)
 .asm_367e
 	pop hl
 	ret
-; 3680 (0:3680)
+
 ; copies the tile patterns for letters and numbers into VRAM
 LoadFontTilePatterns: ; 3680 (0:3680)
 	ld a,[rLCDC]
@@ -9046,7 +9038,6 @@ LoadScreenTilesFromBuffer1: ; 3725 (0:3725)
 	ld a, $1
 	ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
 	ret
-; 3739 (0:3739)
 
 DelayFrames: ; 3739 (0:3739)
 ; wait n frames, where n is the value in c
@@ -9079,7 +9070,6 @@ WaitForSoundToFinish: ; 3748 (0:3748)
 	jr nz, .asm_374f
 	pop hl
 	ret
-; 375d (0:375d)
 
 NamePointers: ; 375d (0:375d)
 	dw MonsterNames
@@ -9227,7 +9217,6 @@ CopyString: ; 3829 (0:3829)
 	cp "@"
 	jr nz, CopyString
 	ret
-; 3831 (0:3831)
 
 ; this function is used when lower button sensitivity is wanted (e.g. menus)
 ; OUTPUT: [$ffb5] = pressed buttons in usual format
@@ -9326,7 +9315,6 @@ ManualTextScroll: ; 3898 (0:3898)
 .inLinkBattle
 	ld c, $41
 	jp DelayFrames
-; 38ac (0:38ac)
 
 ; function to do multiplication
 ; all values are big endian
@@ -9691,7 +9679,6 @@ SkipFixedLengthTextEntries: ; 3a7d (0:3a7d)
 	dec a
 	jr nz, .skipLoop
 	ret
-; 3a87 (0:3a87)
 
 AddNTimes: ; 3a87 (0:3a87)
 ; add bc to hl a times
@@ -10410,7 +10397,6 @@ Func_3e08: ; 3e08 (0:3e08)
 	call LoadPlayerSpriteGraphics
 	call LoadFontTilePatterns
 	jp UpdateSprites
-; 3e2e (0:3e2e)
 
 GiveItem: ; 3e2e (0:3e2e)
 ; Give player quantity c of item b, and copy item name to $cf4b.
@@ -10640,38 +10626,38 @@ Func_3f0f: ; 3f0f (0:3f0f)
 SECTION "bank1",ROMX,BANK[$1]
 
 SpriteFacingAndAnimationTable: ; 4000 (1:4000)
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; facing down, walk animation frame 0
-dw SpriteFacingDownAndWalking, SpriteOAMParameters         ; facing down, walk animation frame 1
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; facing down, walk animation frame 2
-dw SpriteFacingDownAndWalking, SpriteOAMParametersFlipped  ; facing down, walk animation frame 3
-dw SpriteFacingUpAndStanding, SpriteOAMParameters          ; facing up, walk animation frame 0
-dw SpriteFacingUpAndWalking, SpriteOAMParameters           ; facing up, walk animation frame 1
-dw SpriteFacingUpAndStanding, SpriteOAMParameters          ; facing up, walk animation frame 2
-dw SpriteFacingUpAndWalking, SpriteOAMParametersFlipped    ; facing up, walk animation frame 3
-dw SpriteFacingLeftAndStanding, SpriteOAMParameters        ; facing left, walk animation frame 0
-dw SpriteFacingLeftAndWalking, SpriteOAMParameters         ; facing left, walk animation frame 1
-dw SpriteFacingLeftAndStanding, SpriteOAMParameters        ; facing left, walk animation frame 2
-dw SpriteFacingLeftAndWalking, SpriteOAMParameters         ; facing left, walk animation frame 3
-dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 0
-dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped  ; facing right, walk animation frame 1
-dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 2
-dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped  ; facing right, walk animation frame 3
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; ---
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; This table is used for sprites $a and $b.
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; All orientation and animation parameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; lead to the same result. Used for immobile
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; sprites like items on the ground
-dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; ---
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
-dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; facing down, walk animation frame 0
+	dw SpriteFacingDownAndWalking, SpriteOAMParameters         ; facing down, walk animation frame 1
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; facing down, walk animation frame 2
+	dw SpriteFacingDownAndWalking, SpriteOAMParametersFlipped  ; facing down, walk animation frame 3
+	dw SpriteFacingUpAndStanding, SpriteOAMParameters          ; facing up, walk animation frame 0
+	dw SpriteFacingUpAndWalking, SpriteOAMParameters           ; facing up, walk animation frame 1
+	dw SpriteFacingUpAndStanding, SpriteOAMParameters          ; facing up, walk animation frame 2
+	dw SpriteFacingUpAndWalking, SpriteOAMParametersFlipped    ; facing up, walk animation frame 3
+	dw SpriteFacingLeftAndStanding, SpriteOAMParameters        ; facing left, walk animation frame 0
+	dw SpriteFacingLeftAndWalking, SpriteOAMParameters         ; facing left, walk animation frame 1
+	dw SpriteFacingLeftAndStanding, SpriteOAMParameters        ; facing left, walk animation frame 2
+	dw SpriteFacingLeftAndWalking, SpriteOAMParameters         ; facing left, walk animation frame 3
+	dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 0
+	dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped  ; facing right, walk animation frame 1
+	dw SpriteFacingLeftAndStanding, SpriteOAMParametersFlipped ; facing right, walk animation frame 2
+	dw SpriteFacingLeftAndWalking, SpriteOAMParametersFlipped  ; facing right, walk animation frame 3
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; ---
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; This table is used for sprites $a and $b.
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; All orientation and animation parameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; lead to the same result. Used for immobile
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; sprites like items on the ground
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters        ; ---
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
+	dw SpriteFacingDownAndStanding, SpriteOAMParameters
 
 SpriteFacingDownAndStanding: ; 4080 (1:4080)
 	db $00,$01,$02,$03
@@ -10740,7 +10726,7 @@ Func_40b0: ; 40b0 (1:40b0)
 	ld [wJoypadForbiddenButtonsMask], a
 	ld a, $7
 	jp Predef ; indirect jump to HealParty (f6a5 (3:76a5))
-; 4112 (1:4112)
+
 MewPicFront: ; 4112 (1:4112)
 	INCBIN "pic/bmon/mew.pic"
 MewPicBack: ; 4205 (1:4205)
@@ -10877,7 +10863,6 @@ Func_42dd: ; 42dd (1:42dd)
 	ld a, BANK(PokemonLogoGraphics)
 	call FarCopyData2          ; second chunk
 	ld hl, Version_GFX ; $402f
-; 4335 (1:4335)
 IF _RED
 	ld de,$9600 ; where to put redgreenversion.2bpp in the VRAM
 	ld bc,$50 ; how big that file is
@@ -10933,13 +10918,12 @@ ENDC
 	jr .asm_438f
 
 .titlescreenTilemap ; 437f (1:437f)
-db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
+	db $41,$42,$43,$42,$44,$42,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E ; ©'95.'96.'98 GAME FREAK inc.
 
 .asm_438f
 	call SaveScreenTilesToBuffer2
 	call LoadScreenTilesFromBuffer2
 	call EnableLCD
-; 4398 (1:4398)
 IF _RED
 	ld a,CHARMANDER ; which Pokemon to show first on the title screen
 ENDC
@@ -11249,7 +11233,6 @@ PrintGameVersionOnTitleScreen: ; 4598 (1:4598)
 	ld hl, Coord
 	ld de, VersionOnTitleScreenText ; $45a1
 	jp PlaceString
-; 45a1 (1:45a1)
 
 ; these point to special tiles specifically loaded for that purpose ad are no usual text
 VersionOnTitleScreenText: ; 45a1 (1:45a1)
@@ -11987,7 +11970,35 @@ Func_4d72: ; 4d72 (1:4d72)
 DiagonalLines: ; 4d85 (1:4d85)
 	INCBIN "gfx/diagonal_lines.2bpp"
 
-INCBIN "baserom.gbc",$4da5,$4de1 - $4da5
+INCBIN "baserom.gbc",$4da5,$4da6 - $4da5
+
+Func_4da6: ; 4da6 (1:4da6)
+	call GBPalNormal
+	ld a, $80
+	ld [W_OBTAINEDBADGES], a
+	ld hl, W_FLAGS_D733
+	set 0, [hl]
+	ld hl, W_NUMINPARTY
+	xor a
+	ld [hli], a
+	dec a
+	ld [hl], a
+	ld a, $1
+	ld [$cf91], a
+	ld a, $14
+	ld [W_CURENEMYLVL], a
+	xor a
+	ld [$cc49], a
+	ld [W_CURMAP], a
+	call AddPokemonToParty
+	ld a, $1
+	ld [W_CUROPPONENT], a
+	ld a, $2c
+	call Predef
+	ld a, $1
+	ld [$cfcb], a
+	ld [H_AUTOBGTRANSFERENABLED], a
+	jr Func_4da6
 
 PickupItem: ; 4de1 (1:4de1)
 	call EnableAutoTextBoxDrawing
@@ -12132,7 +12143,16 @@ UpdatePlayerSprite: ; 4e31 (1:4e31)
 	ld [$c207], a
 	ret
 
-INCBIN "baserom.gbc",$4ec7,$4ed1 - $4ec7
+Func_4ec7: ; 4ec7 (1:4ec7)
+	push bc
+	push af
+	ld a, [$ffda]
+	ld c, a
+	pop af
+	add c
+	ld l, a
+	pop bc
+	ret
 
 Func_4ed1: ; 4ed1 (1:4ed1)
 	ld a, [H_CURRENTSPRITEOFFSET]
@@ -13815,7 +13835,7 @@ Func_5a5f: ; 5a5f (1:5a5f)
 Func_5aaf: ; 5aaf (1:5aaf)
 	ret
 
-Unknown_5ab0:
+Func_5ab0:
 	call Load16BitRegisters
 
 Func_5ab3: ; 5ab3 (1:5ab3)
@@ -14002,7 +14022,7 @@ Func_5c0a: ; 5c0a (1:5c0a)
 	ld [$d358], a
 	ld hl, $d72e
 	set 6, [hl]
-	ld hl, Unknown_6b20 ; $6b20
+	ld hl, TextTerminator_6b20 ; $6b20
 	call PrintText
 	call SaveScreenTilesToBuffer1
 	ld hl, UnnamedText_5d43 ; $5d43
@@ -14232,7 +14252,31 @@ Func_5db5: ; 5db5 (1:5db5)
 	ld c, $1e
 	jp DelayFrames
 
-INCBIN "baserom.gbc",$5def,$5e2f - $5def
+Func_5def: ; 5def (1:5def)
+	xor a
+	ld [H_AUTOBGTRANSFERENABLED], a
+	ld hl, $c3a4
+	ld b, $8
+	ld c, $e
+	call TextBoxBorder
+	call LoadTextBoxTilePatterns
+	call UpdateSprites
+	ld hl, $c3cd
+	ld de, SaveScreenInfoText
+	call PlaceString
+	ld hl, $c3d4
+	ld de, W_PLAYERNAME
+	call PlaceString
+	ld hl, $c401
+	call Func_5e2f
+	ld hl, $c428
+	call Func_5e42
+	ld hl, $c44d
+	call Func_5e55
+	ld a, $1
+	ld [H_AUTOBGTRANSFERENABLED], a
+	ld c, $1e
+	jp DelayFrames
 
 Func_5e2f: ; 5e2f (1:5e2f)
 	push hl
@@ -14594,7 +14638,6 @@ Func_60ca: ; 60ca (1:60ca)
 	ld de, W_RIVALNAME ; $d34a
 	ld bc, $b
 	jp CopyData
-; 6115 (1:6115)
 
 OakSpeech: ; 6115 (1:6115)
 	ld a,$FF
@@ -14832,20 +14875,20 @@ Func_62ff: ; 62ff (1:62ff)
 	ld a, [$d72d]
 	cp $ef
 	jr nz, .asm_6314
-	ld hl, Unknown_6428 ; $6428
+	ld hl, BattleCenterSpec1 ; $6428
 	ld a, [$FF00+$aa]
 	cp $2
 	jr z, .asm_6334
-	ld hl, Unknown_6430 ; $6430
+	ld hl, BattleCenterSpec2 ; $6430
 	jr .asm_6334
 .asm_6314
 	cp $f0
 	jr nz, .asm_6326
-	ld hl, Unknown_6438 ; $6438
+	ld hl, TradeCenterSpec1 ; $6438
 	ld a, [$FF00+$aa]
 	cp $2
 	jr z, .asm_6334
-	ld hl, Unknown_6440 ; $6440
+	ld hl, TradeCenterSpec2 ; $6440
 	jr .asm_6334
 .asm_6326
 	ld a, [$d732]
@@ -14885,7 +14928,7 @@ Func_62ff: ; 62ff (1:62ff)
 	ld [W_CURMAP], a ; $d35e
 	ld a, [$d71e]
 	ld c, a
-	ld hl, Unknown_63bf ; $63bf
+	ld hl, DungeonWarpList ; $63bf
 	ld de, $0
 	ld a, $6
 	ld [$d12f], a
@@ -14905,7 +14948,7 @@ Func_62ff: ; 62ff (1:62ff)
 	ld e, a
 	jr .asm_6376
 .asm_6388
-	ld hl, Unknown_63d8 ; $63d8
+	ld hl, DungeonWarpData ; $63d8
 	add hl, de
 	jr .asm_63a4
 .asm_638e
@@ -14944,32 +14987,63 @@ Func_62ff: ; 62ff (1:62ff)
 	ld [$d42f], a
 	ret
 
-Unknown_63bf: ; 63bf (1:63bf)
-INCBIN "baserom.gbc",$63bf,$63d8 - $63bf
+DungeonWarpList: ; 63bf (1:63bf)
+	db SEAFOAM_ISLANDS_2,$01
+	db SEAFOAM_ISLANDS_2,$02
+	db SEAFOAM_ISLANDS_3,$01
+	db SEAFOAM_ISLANDS_3,$02
+	db SEAFOAM_ISLANDS_4,$01
+	db SEAFOAM_ISLANDS_4,$02
+	db SEAFOAM_ISLANDS_5,$01
+	db SEAFOAM_ISLANDS_5,$02
+	db VICTORY_ROAD_2,$02
+	db MANSION_1,$01
+	db MANSION_1,$02
+	db MANSION_2,$03
+	db $FF
 
-Unknown_63d8: ; 63d8 (1:63d8)
-INCBIN "baserom.gbc",$63d8,$6420 - $63d8
+DungeonWarpData: ; 63d8 (1:63d8)
+	FLYWARP_DATA SEAFOAM_ISLANDS_2_WIDTH,7,18
+	FLYWARP_DATA SEAFOAM_ISLANDS_2_WIDTH,7,23
+	FLYWARP_DATA SEAFOAM_ISLANDS_3_WIDTH,7,19
+	FLYWARP_DATA SEAFOAM_ISLANDS_3_WIDTH,7,22
+	FLYWARP_DATA SEAFOAM_ISLANDS_4_WIDTH,7,18
+	FLYWARP_DATA SEAFOAM_ISLANDS_4_WIDTH,7,19
+	FLYWARP_DATA SEAFOAM_ISLANDS_5_WIDTH,14,4
+	FLYWARP_DATA SEAFOAM_ISLANDS_5_WIDTH,14,5
+	FLYWARP_DATA VICTORY_ROAD_2_WIDTH,16,22
+	FLYWARP_DATA MANSION_1_WIDTH,14,16
+	FLYWARP_DATA MANSION_1_WIDTH,14,16
+	FLYWARP_DATA MANSION_2_WIDTH,14,18
 
+;Format:
+;	db Map_id
+;	FLYWARP_DATA [Map Width][Y-pos][X-pos]
+;	db Tileset_id
 FirstMapSpec: ; 6420 (1:6420)
-	db REDS_HOUSE_2F ; RedsHouse2F
-; Original Format:
-;   [Event Displacement][Y-block][X-block][Y-sub_block][X-sub_block]
-; Macro Format:
-;   FLYWARP_DATA [Map Width][Y-pos][X-pos]
-	FLYWARP_DATA 4,6,3
-	db $04 ;Tileset_id
+	db REDS_HOUSE_2F
+	FLYWARP_DATA REDS_HOUSE_2F_WIDTH,6,3
+	db $04
 
-Unknown_6428: ; 6428 (1:6428)
-INCBIN "baserom.gbc",$6428,$6430 - $6428
+BattleCenterSpec1: ; 6428 (1:6428)
+	db BATTLE_CENTER
+	FLYWARP_DATA BATTLE_CENTER_WIDTH,4,3
+	db $15
 
-Unknown_6430: ; 6430 (1:6430)
-INCBIN "baserom.gbc",$6430,$6438 - $6430
+BattleCenterSpec2: ; 6430 (1:6430)
+	db BATTLE_CENTER
+	FLYWARP_DATA BATTLE_CENTER_WIDTH,4,6
+	db $15
 
-Unknown_6438: ; 6438 (1:6438)
-INCBIN "baserom.gbc",$6438,$6440 - $6438
+TradeCenterSpec1: ; 6438 (1:6438)
+	db TRADE_CENTER
+	FLYWARP_DATA TRADE_CENTER_WIDTH,4,3
+	db $15
 
-Unknown_6440: ; 6440 (1:6440)
-INCBIN "baserom.gbc",$6440,$6448 - $6440
+TradeCenterSpec2: ; 6440 (1:6440)
+	db TRADE_CENTER
+	FLYWARP_DATA TRADE_CENTER_WIDTH,4,6
+	db $15
 
 FlyWarpDataPtr: ; 6448 (1:6448)
 	db $00,0
@@ -15030,7 +15104,36 @@ Map0fFlyWarp: ; 64be (1:64be)
 Map15FlyWarp: ; 64c4 (1:64c4)
 	FLYWARP_DATA 10,20,11
 
-INCBIN "baserom.gbc",$64ca,$64ea - $64ca
+; This function appears to never be used.
+; It is likely a debugging feature to give the player Tsunekazu Ishihara's
+; favorite Pokemon. This is indicated by the overpowered Exeggutor, which
+; Ishihara (president of Creatures Inc.) said was his favorite Pokemon in an ABC
+; interview on February 8, 2000.
+; "Exeggutor is my favorite. That's because I was always using this character
+; while I was debugging the program."
+; http://www.ign.com/articles/2000/02/09/abc-news-pokamon-chat-transcript
+
+SetIshiharaTeam: ; 64ca (1:64ca)
+	ld de, IshiharaTeam
+.loop
+	ld a, [de]
+	cp $ff
+	ret z
+	ld [$cf91], a
+	inc de
+	ld a, [de]
+	ld [W_CURENEMYLVL], a
+	inc de
+	call AddPokemonToParty
+	jr .loop
+
+IshiharaTeam: ; 64df (1:64df)
+	db EXEGGUTOR,90
+	db MEW,20
+	db JOLTEON,56
+	db DUGTRIO,56
+	db ARTICUNO,57
+	db $FF
 
 Func_64ea: ; 64ea (1:64ea)
 	ret
@@ -15086,11 +15189,10 @@ AskForMonNickname: ; 64eb (1:64eb)
 	ld hl, $cd6d
 	ld bc, $000b
 	jp CopyData
-; 0x6557
 
 DoYouWantToNicknameText: ; 0x6557
 	TX_FAR _DoYouWantToNicknameText
-	db $50
+	db "@"
 
 Func_655c: ; 655c (1:655c)
 	ld hl, $cee9
@@ -15160,10 +15262,12 @@ Func_6596: ; 6596 (1:6596)
 .asm_65ed
 	call Func_676f
 	call GBPalNormal
+.asm_65f3
 	ld a, [$ceea]
 	and a
 	jr nz, .asm_662d
 	call Func_680e
+.asm_65fc
 	call PlaceMenuCursor
 .asm_65ff
 	ld a, [wCurrentMenuItem] ; $cc26
@@ -15177,7 +15281,7 @@ Func_6596: ; 6596 (1:6596)
 	ld a, [H_NEWLYPRESSEDBUTTONS]
 	and a
 	jr z, .asm_65ff
-	ld hl, .unknown_665e ; $665e
+	ld hl, .unknownPointerTable_665e ; $665e
 .asm_661a
 	sla a
 	jr c, .asm_6624
@@ -15217,13 +15321,29 @@ Func_6596: ; 6596 (1:6596)
 	ld b, BANK(Func_3ee5b)
 	jp Bankswitch ; indirect jump to Func_3ee5b (3ee5b (f:6e5b))
 
-.unknown_665e: ; 665e (1:665e)
-INCBIN "baserom.gbc",$665e,$667e - $665e
+.unknownPointerTable_665e: ; 665e (1:665e)
+	dw .asm_65fc
+	dw .asm_673e
+	dw .asm_65fc
+	dw .asm_672c
+	dw .asm_65fc
+	dw .asm_6718
+	dw .asm_65fc
+	dw .asm_6702
+	dw .asm_65f3
+	dw .asm_668c
+	dw .asm_65ed
+	dw .asm_6683
+	dw .asm_65f3
+	dw .asm_66f6
+	dw .asm_65f3
+	dw .asm_6692
 
 .asm_667e
 	pop de
 	ld de, .asm_65ed ; $65ed
 	push de
+.asm_6683
 	ld a, [$ceeb]
 	xor $1
 	ld [$ceeb], a
@@ -15232,6 +15352,7 @@ INCBIN "baserom.gbc",$665e,$667e - $665e
 	ld a, $1
 	ld [$ceea], a
 	ret
+.asm_6692
 	ld a, [wCurrentMenuItem] ; $cc26
 	cp $5
 	jr nz, .asm_66a0
@@ -15286,6 +15407,7 @@ INCBIN "baserom.gbc",$665e,$667e - $665e
 	ld a, $90
 	call PlaySound
 	ret
+.asm_66f6
 	ld a, [$cee9]
 	and a
 	ret z
@@ -15293,31 +15415,32 @@ INCBIN "baserom.gbc",$665e,$667e - $665e
 	dec hl
 	ld [hl], $50
 	ret
+.asm_6702
 	ld a, [wCurrentMenuItem] ; $cc26
 	cp $6
 	ret z
 	ld a, [wTopMenuItemX] ; $cc25
 	cp $11
-	jp z, Func_6714
+	jp z, .asm_6714
 	inc a
 	inc a
-	jr asm_6755
-
-Func_6714: ; 6714 (1:6714)
+	jr .asm_6755
+.asm_6714
 	ld a, $1
-	jr asm_6755
+	jr .asm_6755
+.asm_6718
 	ld a, [wCurrentMenuItem] ; $cc26
 	cp $6
 	ret z
 	ld a, [wTopMenuItemX] ; $cc25
 	dec a
-	jp z, Func_6728
+	jp z, .asm_6728
 	dec a
-	jr asm_6755
-
-Func_6728: ; 6728 (1:6728)
+	jr .asm_6755
+.asm_6728
 	ld a, $11
-	jr asm_6755
+	jr .asm_6755
+.asm_672c
 	ld a, [wCurrentMenuItem] ; $cc26
 	dec a
 	ld [wCurrentMenuItem], a ; $cc26
@@ -15326,7 +15449,8 @@ Func_6728: ; 6728 (1:6728)
 	ld a, $6
 	ld [wCurrentMenuItem], a ; $cc26
 	ld a, $1
-	jr asm_6755
+	jr .asm_6755
+.asm_673e
 	ld a, [wCurrentMenuItem] ; $cc26
 	inc a
 	ld [wCurrentMenuItem], a ; $cc26
@@ -15334,23 +15458,23 @@ Func_6728: ; 6728 (1:6728)
 	jr nz, .asm_6750
 	ld a, $1
 	ld [wCurrentMenuItem], a ; $cc26
-	jr asm_6755
+	jr .asm_6755
 .asm_6750
 	cp $6
 	ret nz
 	ld a, $1
-asm_6755: ; 6755 (1:6755)
+.asm_6755
 	ld [wTopMenuItemX], a ; $cc25
 	jp EraseMenuCursor
 
 Func_675b: ; 675b (1:675b)
-	ld de, Unknown_6767 ; $6767
+	ld de, ED_Tile
 	ld hl, $8f00
 	ld bc, $1
 	jp CopyVideoDataDouble
 
-Unknown_6767: ; 6767 (1:6767)
-INCBIN "baserom.gbc",$6767,$676f - $6767
+ED_Tile: ; 6767 (1:6767)
+	INCBIN "gfx/ED_tile.1bpp"
 
 Func_676f: ; 676f (1:676f)
 	xor a
@@ -15608,7 +15732,7 @@ Func_69ec: ; 69ec (1:69ec)
 	ld de, $67d
 	ld a, $ff
 	jr asm_6a19
-; 6a12 (1:6a12)
+
 Unnamed_6a12: ; 6a12 (1:6a12)
 	FuncCoord 5, 4 ; $c3f5
 	ld hl, Coord
@@ -15746,7 +15870,6 @@ Func_6ad6: ; 6ad6 (1:6ad6)
 	ld de, $cd6d
 	ld bc, $14
 	jp CopyData
-; 6af2 (1:6af2)
 IF _RED
 DefaultNamesPlayerList: ; 6af2 (1:6af2)
 	db "NEW NAME@RED@ASH@JACK@"
@@ -15760,7 +15883,7 @@ DefaultNamesRivalList: ; 6b08 (1:6b08)
 	db "NEW NAME@RED@ASH@JACK@"
 ENDC
 
-Unknown_6b20: ; 6b20 (1:6b20)
+TextTerminator_6b20: ; 6b20 (1:6b20)
 	db "@"
 
 ; subtracts the amount the player paid from their money
@@ -16670,25 +16793,25 @@ DrawStartMenu: ; 710b (1:710b)
 	ret
 
 StartMenuPokedexText: ; 718f (1:718f)
-db "POKéDEX@"
+	db "POKéDEX@"
 
 StartMenuPokemonText: ; 7197 (1:7197)
-db "POKéMON@"
+	db "POKéMON@"
 
 StartMenuItemText: ; 719f (1:719f)
-db "ITEM@"
+	db "ITEM@"
 
 StartMenuSaveText: ; 71a4 (1:71a4)
-db "SAVE@"
+	db "SAVE@"
 
 StartMenuResetText: ; 71a9 (1:71a9)
-db "RESET@"
+	db "RESET@"
 
 StartMenuExitText: ; 71af (1:71af)
-db "EXIT@"
+	db "EXIT@"
 
 StartMenuOptionText: ; 71b4 (1:71b4)
-db "OPTION@"
+	db "OPTION@"
 
 PrintStartMenuItem: ; 71bb (1:71bb)
 	push hl
@@ -16698,19 +16821,19 @@ PrintStartMenuItem: ; 71bb (1:71bb)
 	add hl,de
 	ret
 
-Unknown_71c5: ; 71c5 (1:71c5)
+Func_71c5: ; 71c5 (1:71c5)
 	ld hl, UnnamedText_72b8 ; $72b8
 	call PrintText
 	ld a, [$d74b]
 	bit 5, a
-	jp nz, Unknown_71e1
+	jp nz, Func_71e1
 	ld c, $3c
 	call DelayFrames
 	ld hl, UnnamedText_72d2 ; $72d2
 	call PrintText
 	jp Func_7298
 
-Unknown_71e1: ; 71e1 (1:71e1)
+Func_71e1: ; 71e1 (1:71e1)
 	ld a, $1
 	ld [$cc34], a
 	ld a, $5a
@@ -17510,7 +17633,7 @@ Function_76e1: ; 0x76e1, 1:36e1
 	add hl, de
 	ld de, PokemonMenuEntries ; $77c2
 	jp PlaceString
-; 778d (1:778d)
+
 FieldMoveNames: ; 778d (1:778d)
 	db "CUT@"
 	db "FLY@"
@@ -20882,7 +21005,7 @@ Func_c35f: ; c35f (3:435f)
 	dec c
 	jr nz, .asm_c368
 	ret
-; c38b (3:438b)
+
 CheckForceBikeOrSurf: ; c38b (3:438b)
 	ld hl, $D732
 	bit 5, [hl]
@@ -20936,15 +21059,15 @@ CheckForceBikeOrSurf: ; c38b (3:438b)
 
 ForcedBikeOrSurfMaps: ; c3e6 (3:43e6)
 ; map id, y, x
-db ROUTE_16,$0A,$11 
-db ROUTE_16,$0B,$11
-db ROUTE_18,$08,$21
-db ROUTE_18,$09,$21
-db SEAFOAM_ISLANDS_4,$07,$12 
-db SEAFOAM_ISLANDS_4,$07,$13 
-db SEAFOAM_ISLANDS_5,$0E,$04 
-db SEAFOAM_ISLANDS_5,$0E,$05
-db $FF ;end
+	db ROUTE_16,$0A,$11 
+	db ROUTE_16,$0B,$11
+	db ROUTE_18,$08,$21
+	db ROUTE_18,$09,$21
+	db SEAFOAM_ISLANDS_4,$07,$12 
+	db SEAFOAM_ISLANDS_4,$07,$13 
+	db SEAFOAM_ISLANDS_5,$0E,$04 
+	db SEAFOAM_ISLANDS_5,$0E,$05
+	db $FF ;end
 
 Func_c3ff: ; c3ff (3:43ff)
 	push hl
@@ -21432,9 +21555,7 @@ Func_c754: ; c754 (3:4754)
 	inc d
 .asm_c765
 	ld e, a
-; c766 (3:4766)
 	ld hl, TilesetsHeadPtr
-
 	add hl, de
 	ld de, $d52b
 	ld c, $b
@@ -21524,7 +21645,7 @@ Func_c8de: ; c8de (3:48de)
 	ld a, $50
 	ld [hl], a
 	ret
-; c8f5 (3:48f5)
+
 ; data for default hidden/shown
 ; objects for each map ($00-$F8)
 
@@ -22135,7 +22256,7 @@ Func_cdc0: ; cdc0 (3:4dc0)
 	and $3
 	cp $3
 	ret z
-	ld hl, Unknown_cdf7 ; $4df7
+	ld hl, CoordsData_cdf7 ; $4df7
 	call ArePlayerCoordsInArray
 	ret nc
 	ld hl, $d728
@@ -22148,8 +22269,8 @@ Func_cdc0: ; cdc0 (3:4dc0)
 	ld hl, UnnamedText_cdff ; $4dff
 	jp PrintText
 
-Unknown_cdf7: ; cdf7 (3:4df7)
-INCBIN "baserom.gbc",$cdf7,$cdfa - $cdf7
+CoordsData_cdf7: ; cdf7 (3:4df7)
+	db $0B,$07,$FF
 
 UnnamedText_cdfa: ; cdfa (3:4dfa)
 	TX_FAR _UnnamedText_cdfa
@@ -22159,7 +22280,6 @@ UnnamedText_cdff: ; cdff (3:4dff)
 	TX_FAR _UnnamedText_cdff
 	db "@"
 
-
 ; function to add an item (in varying quantities) to the player's bag or PC box
 ; INPUT:
 ; hl = address of inventory (either W_NUMBAGITEMS or W_NUMBOXITEMS)
@@ -28496,7 +28616,7 @@ GotOffBicycleText: ; e5fc (3:65fc)
 ; [$d11e] = mode
 ; 0: Pokemon Center healing
 ; 1: using a PP Up
-; [CURMENUITEMID] = index of move (when using a PP Up)
+; [wCurrentMenuItem] = index of move (when using a PP Up)
 RestoreBonusPP: ; e606 (3:6606)
 	ld hl,W_PARTYMON1_MOVE1
 	ld bc,44
@@ -28951,7 +29071,7 @@ Func_e7a4: ; e7a4 (3:67a4)
 	dec b
 	jr nz, .asm_e8b1
 	ret
-; e8b8 (3:68b8)
+
 ; checks if the tile in front of the player is a shore or water tile
 ; used for surfing and fishing
 ; unsets carry if it is, sets carry if not
@@ -28984,7 +29104,6 @@ WaterTilesets: ; e8e0 (3:68e0)
 	db $00,$03,$05,$07,$0d,$0e,$11,$16,$17
 	db $ff ; terminator
 
-; 68EA 0xe8ea
 ReadSuperRodData: ; e8ea (3:68ea)
 ; return e = 2 if no fish on this map
 ; return e = 1 if a bite, bc = level,species
@@ -29185,7 +29304,6 @@ Func_e9f0: ; e9f0 (3:69f0)
 	dec hl
 	ret
 
-
 DrawBadges: ; ea03 (3:6a03)
 ; Draw 4x2 gym leader faces, with the faces replaced by
 ; badges if they are owned. Used in the player status screen.
@@ -29241,7 +29359,6 @@ DrawBadges: ; ea03 (3:6a03)
 	ld de, $cd49 + 4
 ;	call .DrawBadgeRow
 ;	ret
-; ea4c
 
 .DrawBadgeRow ; ea4c (3:6a4c)
 ; Draw 4 badges.
@@ -29552,11 +29669,12 @@ Func_f04c: ; f04c (3:704c)
 asm_f055: ; f055 (3:7055)
 	call Func_f068
 	ld a, $9
-	ld de, Unknown_f060 ; $7060
+	ld de, UnknownOAM_f060 ; $7060
 	jp WriteOAMBlock
 
-Unknown_f060: ; f060 (3:7060)
-INCBIN "baserom.gbc",$f060,$f068 - $f060
+UnknownOAM_f060: ; f060 (3:7060)
+	db $FC,$10,$FD,$10
+	db $FE,$10,$FF,$10
 
 Func_f068: ; f068 (3:7068)
 	ld hl, $c104
@@ -29688,6 +29806,8 @@ Func_f113: ; f113 (3:7113)
 	add hl, bc
 	ld a, [hli]                ; load missable objects pointer in hl
 	ld h, [hl]
+
+Func_f132: ; f132 (3:7132)
 	ld l, a
 	push hl
 	ld de, MapHS00             ; calculate difference between out pointer and the base pointer
@@ -29767,7 +29887,6 @@ InitializeMissableObjectsFlags: ; f175 (3:7175)
 	inc hl
 	jr .missableObjectsLoop
 
-
 ; tests if current sprite is a missable object that is hidden/has been removed
 IsMissableObjectHidden: ; f1a6 (3:71a6)
 	ld a, [H_CURRENTSPRITEOFFSET]
@@ -29925,22 +30044,22 @@ Func_f225: ; f225 (3:7225)
 	jr z, .asm_f299
 	bit 7, b
 	ret z
-	ld de, Unknown_f2af ; $72af
+	ld de, MovementData_f2af
 	jr .asm_f29f
 .asm_f289
 	bit 6, b
 	ret z
-	ld de, Unknown_f2ad ; $72ad
+	ld de, MovementData_f2ad
 	jr .asm_f29f
 .asm_f291
 	bit 5, b
 	ret z
-	ld de, Unknown_f2b1 ; $72b1
+	ld de, MovementData_f2b1
 	jr .asm_f29f
 .asm_f299
 	bit 4, b
 	ret z
-	ld de, Unknown_f2b3 ; $72b3
+	ld de, MovementData_f2b3
 .asm_f29f
 	call MoveSprite
 	ld a, $a8
@@ -29949,17 +30068,17 @@ Func_f225: ; f225 (3:7225)
 	set 1, [hl]
 	ret
 
-Unknown_f2ad: ; f2ad (3:72ad)
-INCBIN "baserom.gbc",$f2ad,$f2af - $f2ad
+MovementData_f2ad: ; f2ad (3:72ad)
+	db $40,$FF
 
-Unknown_f2af: ; f2af (3:72af)
-INCBIN "baserom.gbc",$f2af,$f2b1 - $f2af
+MovementData_f2af: ; f2af (3:72af)
+	db $00,$FF
 
-Unknown_f2b1: ; f2b1 (3:72b1)
-INCBIN "baserom.gbc",$f2b1,$f2b3 - $f2b1
+MovementData_f2b1: ; f2b1 (3:72b1)
+	db $80,$FF
 
-Unknown_f2b3: ; f2b3 (3:72b3)
-INCBIN "baserom.gbc",$f2b3,$f2b5 - $f2b3
+MovementData_f2b3: ; f2b3 (3:72b3)
+	db $C0,$FF
 
 Func_f2b5: ; f2b5 (3:72b5)
 	ld a, [$d730]
@@ -30557,7 +30676,6 @@ _HandleBitArray: ; f669 (3:7669)
 	pop hl
 	ld c, a
 	ret
-; f6a5 (3:76a5)
 
 HealParty: ; f6a5 (3:76a5)
 	ld hl, W_PARTYMON1
@@ -31060,7 +31178,48 @@ Func_f929: ; f929 (3:7929)
 	ld [$FF00+$9d], a
 	ret
 
-INCBIN "baserom.gbc",$f9a0,$f9dc - $f9a0
+Func_f9a0: ; f9a0 (3:79a0)
+	ld a, [$ff95]
+	ld [$cd37], a
+	dec a
+	ld de, $ccd3
+	ld hl, $cc97
+	add l
+	ld l, a
+	jr nc, .asm_f9b1
+	inc h
+.asm_f9b1
+	ld a, [hld]
+	call Func_f9bf
+	ld [de], a
+	inc de
+	ld a, [$ff95]
+	dec a
+	ld [$ff95], a
+	jr nz, .asm_f9b1
+	ret
+
+Func_f9bf: ; f9bf (3:79bf)
+	push hl
+	ld b, a
+	ld hl, Unknown_f9d2
+.asm_f9c4
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_f9d0
+	cp b
+	jr z, .asm_f9cf
+	inc hl
+	jr .asm_f9c4
+.asm_f9cf
+	ld a, [hl]
+.asm_f9d0
+	pop hl
+	ret
+
+Unknown_f9d2: ; f9d2 (3:79d2)
+	;db $40, $40, $00, $80, $80, $20, $c0, $10, $ff, $c9
+INCBIN "baserom.gbc",$f9d2,$f9dc - $f9d2
 
 Func_f9dc: ; f9dc (3:79dc)
 	call Load16BitRegisters
@@ -31577,7 +31736,7 @@ Func_12924: ; 12924 (4:6924)
 	pop hl
 	pop de
 	ret
-; 12953 (4:6953)
+
 ; Predef 0x37
 StatusScreen: ; 12953 (4:6953)
 	call LoadMonData
@@ -32024,7 +32183,7 @@ Func_12ccb: ; 12ccb (4:6ccb)
 	dec c
 	jr nz, Func_12ccb
 	ret
-; 12cd2 (4:6cd2)
+
 ; [$D07D] = menu type / message ID
 ; if less than $F0, it is a menu type
 ; menu types:
@@ -32392,7 +32551,7 @@ Func_13074: ; 13074 (4:7074)
 	ld a, $2
 	ld [hl], a
 	ret
-; 13095 (4:7095)
+
 StartMenu_Pokedex: ; 13095 (4:7095)
 	ld a,$29
 	call Predef
@@ -33308,7 +33467,6 @@ TMToMove: ; 13763 (4:7763)
 	ld a, [hl]
 	ld [$d11e], a
 	ret
-; 13773 (4:7773)
 
 TechnicalMachines: ; 13773 (4:7773)
 	db MEGA_PUNCH
@@ -33669,7 +33827,7 @@ Func_13a58: ; 13a58 (4:7a58)
 	ld de, $d04a
 	ld bc, $d
 	jp CopyData
-; 13a8f (4:7a8f)
+
 GenRandom_: ; 13a8f (4:7a8f)
 ; generate a random 16-bit integer and store it at $FFD3,$FFD4
 	ld a,[rDIV]
@@ -33777,7 +33935,7 @@ LoadPokedexTilePatterns: ; 17840 (5:7840)
 	ld de,PokeballTileGraphics ; $697e
 	ld hl,$9720
 	ld bc,(BANK(PokeballTileGraphics) << 8) + $01
-	jp CopyVideoData ; load pokeball tile for marking cought mons
+	jp CopyVideoData ; load pokeball tile for marking caught mons
 
 ; Loads tile patterns for map's sprites.
 ; For outside maps, it loads one of several fixed sets of sprites.
@@ -34774,14 +34932,14 @@ Func_17c47: ; 17c47 (5:7c47)
 	ld a, [$cd50]
 	ld c, a
 	ld b, $0
-	ld hl, Unknown_17caf ; $7caf
+	ld hl, EmotionBubblesPointerTable ; $7caf
 	add hl, bc
 	add hl, bc
 	ld e, [hl]
 	inc hl
 	ld d, [hl]
 	ld hl, $8f80
-	ld bc, (BANK(Unknown_17caf) << 8) + $04
+	ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04
 	call CopyVideoData
 	ld a, [$cfcb]
 	push af
@@ -34817,7 +34975,7 @@ Func_17c47: ; 17c47 (5:7c47)
 	ld a, [hl]
 	add $8
 	ld c, a
-	ld de, EmotionBubbles ; $7cb5
+	ld de, EmotionBubblesOAM ; $7cb5
 	xor a
 	call WriteOAMBlock
 	ld c, $3c
@@ -34827,10 +34985,16 @@ Func_17c47: ; 17c47 (5:7c47)
 	call DelayFrame
 	jp UpdateSprites
 
-Unknown_17caf: ; 17caf (5:7caf)
-INCBIN "baserom.gbc",$17caf,$17cb5 - $17caf
+EmotionBubblesPointerTable: ; 17caf (5:7caf)
+	dw EmotionBubbles
+	dw EmotionBubbles + $40
+	dw EmotionBubbles + $80
 
-EmotionBubbles: ; 17cb5 (5:7cb5)
+EmotionBubblesOAM: ; 17cb5 (5:7cb5)
+	db $F8,$00,$F9,$00
+	db $FA,$00,$FB,$00
+
+EmotionBubbles: ; 17cbd (5:7cbd)
 	INCBIN "gfx/emotion_bubbles.2bpp"
 
 Func_17d7d: ; 17d7d (5:7d7d)
@@ -34856,7 +35020,7 @@ Func_17d7d: ; 17d7d (5:7d7d)
 	xor a
 	ld [W_ISLINKBATTLE], a ; $d12b
 	jp Func_2307
-; 17dad (5:7dad)
+
 SubstituteEffectHandler: ; 17dad (5:7dad)
 	ld c, 50
 	call DelayFrames		
@@ -35093,7 +35257,7 @@ SECTION "bank6",ROMX,BANK[$6]
 CeladonCity_h: ; 18000 (6:4000)
 	db $00 ; tileset
 	db CELADON_CITY_HEIGHT, CELADON_CITY_WIDTH ; dimensions (y, x)
-	dw CeladonCityBlocks, CeladonCityTexts, CeladonCityScript ; blocks, texts, scripts
+	dw CeladonCityBlocks, CeladonCityTextPointers, CeladonCityScript ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -35175,7 +35339,7 @@ CeladonCityBlocks: ; 180df (6:40df)
 PalletTown_h: ; 182a1 (6:42a1)
 	db $00 ; tileset
 	db PALLET_TOWN_HEIGHT, PALLET_TOWN_WIDTH ; dimensions
-	dw PalletTownBlocks, PalletTownTexts, PalletTownScript
+	dw PalletTownBlocks, PalletTownTextPointers, PalletTownScript
 	db NORTH | SOUTH ; connections
 
 	db ROUTE_1
@@ -35225,7 +35389,7 @@ PalletTownBlocks: ; 182fd (6:42fd)
 ViridianCity_h: ; 0x18357 to 0x18384 (45 bytes) (bank=6) (id=1)
 	db $00 ; tileset
 	db VIRIDIAN_CITY_HEIGHT, VIRIDIAN_CITY_WIDTH ; dimensions (y, x)
-	dw ViridianCityBlocks, ViridianCityTexts, ViridianCityScript ; blocks, texts, scripts
+	dw ViridianCityBlocks, ViridianCityTextPointers, ViridianCityScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST ; connections
 
 	; connections data
@@ -35295,7 +35459,7 @@ ViridianCityBlocks: ; 183ec (6:43ec)
 PewterCity_h: ; 0x18554 to 0x18576 (34 bytes) (bank=6) (id=2)
 	db $00 ; tileset
 	db PEWTER_CITY_HEIGHT, PEWTER_CITY_WIDTH ; dimensions (y, x)
-	dw PewterCityBlocks, PewterCityTexts, PewterCityScript ; blocks, texts, scripts
+	dw PewterCityBlocks, PewterCityTextPointers, PewterCityScript ; blocks, texts, scripts
 	db SOUTH | EAST ; connections
 
 	; connections data
@@ -35318,7 +35482,7 @@ PewterCity_h: ; 0x18554 to 0x18576 (34 bytes) (bank=6) (id=2)
 
 	dw PewterCityObject ; objects
 
-db $0
+	db $0
 
 PewterCityObject: ; 0x18577 (size=111)
 	db $a ; border tile
@@ -35363,7 +35527,7 @@ PewterCityBlocks: ; 185e6 (6:45e6)
 CeruleanCity_h: ; 0x1874e to 0x18786 (56 bytes) (bank=6) (id=3)
 	db $00 ; tileset
 	db CERULEAN_CITY_HEIGHT, CERULEAN_CITY_WIDTH ; dimensions (y, x)
-	dw CeruleanCityBlocks, CeruleanCityTexts, CeruleanCityScript ; blocks, texts, scripts
+	dw CeruleanCityBlocks, CeruleanCityTextPointers, CeruleanCityScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST | EAST ; connections
 
 	; connections data
@@ -35454,7 +35618,7 @@ CeruleanCityBlocks: ; 18830 (6:4830)
 VermilionCity_h: ; 0x18998 to 0x189ba (34 bytes) (bank=6) (id=5)
 	db $00 ; tileset
 	db VERMILION_CITY_HEIGHT, VERMILION_CITY_WIDTH ; dimensions (y, x)
-	dw VermilionCityBlocks, VermilionCityTexts, VermilionCityScript ; blocks, texts, scripts
+	dw VermilionCityBlocks, VermilionCityTextPointers, VermilionCityScript ; blocks, texts, scripts
 	db NORTH | EAST ; connections
 
 	; connections data
@@ -35525,7 +35689,7 @@ VermilionCityBlocks: ; 18a3f (6:4a3f)
 FuchsiaCity_h: ; 0x18ba7 to 0x18bd4 (45 bytes) (bank=6) (id=7)
 	db $00 ; tileset
 	db FUCHSIA_CITY_HEIGHT, FUCHSIA_CITY_WIDTH ; dimensions (y, x)
-	dw FuchsiaCityBlocks, FuchsiaCityTexts, FuchsiaCityScript ; blocks, texts, scripts
+	dw FuchsiaCityBlocks, FuchsiaCityTextPointers, FuchsiaCityScript ; blocks, texts, scripts
 	db SOUTH | WEST | EAST ; connections
 
 	; connections data
@@ -35672,7 +35836,7 @@ Func_18e36: ; 18e36 (6:4e36)
 	ld [H_NEWLYPRESSEDBUTTONS], a
 	ld [H_CURRENTPRESSEDBUTTONS], a
 	ret
-; 18e5b (6:4e5b)
+
 PalletTownScript: ; 18e5b (6:4e5b)
 	ld a,[$D74B]
 	bit 4,a
@@ -35686,9 +35850,15 @@ PalletTownScript: ; 18e5b (6:4e5b)
 	jp CallFunctionInTable
 
 PalletTownScriptPointers: ; 18e73 (6:4e73)
-	dw PalletTownScript1,PalletTownScript2,PalletTownScript3,PalletTownScript4,PalletTownScript5,PalletTownScript6,PalletTownScript7
+	dw PalletTownScript0
+	dw PalletTownScript1
+	dw PalletTownScript2
+	dw PalletTownScript3
+	dw PalletTownScript4
+	dw PalletTownScript5
+	dw PalletTownScript6
 
-PalletTownScript1: ; 18e81 (6:4e81)
+PalletTownScript0: ; 18e81 (6:4e81)
 	ld a,[$D747]
 	bit 0,a
 	ret nz
@@ -35715,7 +35885,7 @@ PalletTownScript1: ; 18e81 (6:4e81)
 	ld [W_PALLETTOWNCURSCRIPT],a
 	ret
 
-PalletTownScript2: ; 18eb2 (6:4eb2)
+PalletTownScript1: ; 18eb2 (6:4eb2)
 	xor a
 	ld [$CF0D],a
 	ld a,1
@@ -35733,7 +35903,7 @@ PalletTownScript2: ; 18eb2 (6:4eb2)
 	ld [W_PALLETTOWNCURSCRIPT],a
 	ret
 
-PalletTownScript3: ; 18ed2 (6:4ed2)
+PalletTownScript2: ; 18ed2 (6:4ed2)
 	ld a,1
 	ld [$FF8C],a
 	ld a,4
@@ -35765,7 +35935,7 @@ PalletTownScript3: ; 18ed2 (6:4ed2)
 	ld [W_PALLETTOWNCURSCRIPT],a
 	ret
 
-PalletTownScript4: ; 18f12 (6:4f12)
+PalletTownScript3: ; 18f12 (6:4f12)
 	ld a,[$D730]
 	bit 0,a
 	ret nz
@@ -35794,7 +35964,7 @@ PalletTownScript4: ; 18f12 (6:4f12)
 	ld [W_PALLETTOWNCURSCRIPT],a
 	ret
 
-PalletTownScript5: ; 18f4b (6:4f4b)
+PalletTownScript4: ; 18f4b (6:4f4b)
 	ld a,[$CC57]
 	and a
 	ret nz
@@ -35804,7 +35974,7 @@ PalletTownScript5: ; 18f4b (6:4f4b)
 	ld [W_PALLETTOWNCURSCRIPT],a
 	ret
 
-PalletTownScript6: ; 18f56 (6:4f56)
+PalletTownScript5: ; 18f56 (6:4f56)
 	ld a,[$D74A]
 	bit 2,a
 	jr nz,.next
@@ -35827,11 +35997,17 @@ PalletTownScript6: ; 18f56 (6:4f56)
 	ret z
 	ld hl,$D74B
 	set 6,[hl]
-PalletTownScript7: ; 18f87 (6:4f87)
+PalletTownScript6: ; 18f87 (6:4f87)
 	ret
 
-PalletTownTexts: ; 18f88 (6:4f88)
-	dw PalletTownText1,PalletTownText2,PalletTownText3,PalletTownText4,PalletTownText5,PalletTownText6,PalletTownText7
+PalletTownTextPointers: ; 18f88 (6:4f88)
+	dw PalletTownText1
+	dw PalletTownText2
+	dw PalletTownText3
+	dw PalletTownText4
+	dw PalletTownText5
+	dw PalletTownText6
+	dw PalletTownText7
 
 PalletTownText1: ; 18f96 (6:4f96)
 	db 8
@@ -35892,11 +36068,11 @@ PalletTownText7: ; 0x18fec sign by Blue’s house
 
 ViridianCityScript: ; 18ff1 (6:4ff1)
 	call EnableAutoTextBoxDrawing
-	ld hl, ViridianCityScripts
+	ld hl, ViridianCityScriptPointers
 	ld a, [W_VIRIDIANCITYCURSCRIPT]
 	jp CallFunctionInTable
 
-ViridianCityScripts: ; 18ffd (6:4ffd)
+ViridianCityScriptPointers: ; 18ffd (6:4ffd)
 	dw ViridianCityScript0
 	dw ViridianCityScript1
 	dw ViridianCityScript2
@@ -36019,8 +36195,22 @@ Function190cf: ; 190cf (6:50cf)
 	ld [wJoypadForbiddenButtonsMask], a
 	ret
 
-ViridianCityTexts: ; 190e4 (6:50e4)
-	dw ViridianCityText1, ViridianCityText2, ViridianCityText3, ViridianCityText4, ViridianCityText5, ViridianCityText6, ViridianCityText7, ViridianCityText8, ViridianCityText9, ViridianCityText10, MartSignText, PokeCenterSignText, ViridianCityText13, ViridianCityText14, ViridianCityText15
+ViridianCityTextPointers: ; 190e4 (6:50e4)
+	dw ViridianCityText1
+	dw ViridianCityText2
+	dw ViridianCityText3
+	dw ViridianCityText4
+	dw ViridianCityText5
+	dw ViridianCityText6
+	dw ViridianCityText7
+	dw ViridianCityText8
+	dw ViridianCityText9
+	dw ViridianCityText10
+	dw MartSignText
+	dw PokeCenterSignText
+	dw ViridianCityText13
+	dw ViridianCityText14
+	dw ViridianCityText15
 
 ViridianCityText1: ; 19102 (6:5102)
 	TX_FAR _ViridianCityText1
@@ -36212,11 +36402,11 @@ ViridianCityText14: ; 19232 (6:5232)
 
 PewterCityScript: ; 19237 (6:5237)
 	call EnableAutoTextBoxDrawing
-	ld hl, PewterCityScripts
+	ld hl, PewterCityScriptPointers
 	ld a, [W_PEWTERCITYCURSCRIPT]
 	jp CallFunctionInTable
 
-PewterCityScripts: ; 19243 (6:5243)
+PewterCityScriptPointers: ; 19243 (6:5243)
 	dw PewterCityScript0
 	dw PewterCityScript1
 	dw PewterCityScript2
@@ -36237,7 +36427,7 @@ Function1925e: ; 1925e (6:525e)
 	ld a, [$d755]
 	bit 7, a
 	ret nz
-	ld hl, CoordsData19277
+	ld hl, CoordsData_19277
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $f0
@@ -36246,7 +36436,7 @@ Function1925e: ; 1925e (6:525e)
 	ld [$ff00+$8c], a
 	jp DisplayTextID
 
-CoordsData19277: ; 19277 (6:5277)
+CoordsData_19277: ; 19277 (6:5277)
 	db $11,$23
 	db $11,$24
 	db $12,$25
@@ -36284,14 +36474,14 @@ PewterCityScript1: ; 19280 (6:5280)
 	call Func_32f9
 	ld a, $3
 	ld [$ff00+$8c], a
-	ld de, MovementData192ce ; $52ce
+	ld de, MovementData_192ce ; $52ce
 	call MoveSprite
 	ld a, $2
 	ld [W_PEWTERCITYCURSCRIPT], a
 	ret
 
-MovementData192ce: ; 192ce (6:52ce)
-	db 0,0,0,0,$ff
+MovementData_192ce: ; 192ce (6:52ce)
+	db $00,$00,$00,$00,$FF
 
 PewterCityScript2: ; 192d3 (6:52d3)
 	ld a, [$d730]
@@ -36350,14 +36540,14 @@ PewterCityScript4: ; 19305 (6:5305)
 	call Func_32f9
 	ld a, $5
 	ld [$ff00+$8c], a
-	ld de, MovementData19353
+	ld de, MovementData_19353
 	call MoveSprite
 	ld a, $5
 	ld [W_PEWTERCITYCURSCRIPT], a
 	ret
 
-MovementData19353: ; 19353 (6:5353)
-	db $c0,$c0,$c0,$c0,$c0,$ff
+MovementData_19353: ; 19353 (6:5353)
+	db $C0,$C0,$C0,$C0,$C0,$FF
 
 PewterCityScript5: ; 19359 (6:5359)
 	ld a, [$d730]
@@ -36385,8 +36575,21 @@ PewterCityScript6: ; 1936f (6:536f)
 	ld [W_PEWTERCITYCURSCRIPT], a
 	ret
 
-PewterCityTexts: ; 1938b (6:538b)
-	dw PewterCityText1, PewterCityText2, PewterCityText3, PewterCityText4, PewterCityText5, PewterCityText6, PewterCityText7, MartSignText, PokeCenterSignText, PewterCityText10, PewterCityText11, PewterCityText12, PewterCityText13, PewterCityText14
+PewterCityTextPointers: ; 1938b (6:538b)
+	dw PewterCityText1
+	dw PewterCityText2
+	dw PewterCityText3
+	dw PewterCityText4
+	dw PewterCityText5
+	dw PewterCityText6
+	dw PewterCityText7
+	dw MartSignText
+	dw PokeCenterSignText
+	dw PewterCityText10
+	dw PewterCityText11
+	dw PewterCityText12
+	dw PewterCityText13
+	dw PewterCityText14
 
 PewterCityText1: ; 193a7 (6:53a7)
 	TX_FAR _PewterCityText1
@@ -36523,7 +36726,7 @@ PewterCityText12: ; 1947b (6:547b)
 
 CeruleanCityScript: ; 19480 (6:5480)
 	call EnableAutoTextBoxDrawing
-	ld hl, CeruleanCityScripts
+	ld hl, CeruleanCityScriptPointers
 	ld a, [W_CERULEANCITYCURSCRIPT]
 	jp CallFunctionInTable
 
@@ -36536,7 +36739,7 @@ CeruleanCity_Unknown1948c: ; 1948c (6:548c)
 	ld a, $11
 	jp Predef
 
-CeruleanCityScripts: ; 1949d (6:549d)
+CeruleanCityScriptPointers: ; 1949d (6:549d)
 	dw CeruleanCityScript0
 	dw CeruleanCityScript1
 	dw CeruleanCityScript2
@@ -36635,7 +36838,7 @@ CeruleanCityCoords2: ; 19554 (6:5554)
 	db $ff
 
 CeruleanCityMovement1: ; 19559 (6:5559)
-	db 0,0,0,$ff
+	db $00,$00,$00,$FF
 
 CeruleanCityFunction1955d: ; 1955d (6:555d)
 	ld a,1
@@ -36722,10 +36925,10 @@ CeruleanCityScript2: ; 195b1 (6:55b1)
 	ret
 
 CeruleanCityMovement3: ; 19600 (6:5600)
-	db $80, $00, $00, $00, $00, $00, $00, $ff
+	db $80,$00,$00,$00,$00,$00,$00,$FF
 
 CeruleanCityMovement4: ; 19608 (6:5608)
-	db $c0, $00, $00, $00, $00, $00, $00, $ff
+	db $c0,$00,$00,$00,$00,$00,$00,$FF
 
 CeruleanCityScript3: ; 19610 (6:5610)
 	ld a, [$d730]
@@ -36742,8 +36945,24 @@ CeruleanCityScript3: ; 19610 (6:5610)
 	ld [W_CERULEANCITYCURSCRIPT], a
 	ret
 
-CeruleanCityTexts: ; 1962d (6:562d)
-	dw CeruleanCityText1, CeruleanCityText2, CeruleanCityText3, CeruleanCityText4, CeruleanCityText5, CeruleanCityText6, CeruleanCityText7, CeruleanCityText8, CeruleanCityText9, CeruleanCityText10, CeruleanCityText11, CeruleanCityText12, CeruleanCityText13, MartSignText, PokeCenterSignText, CeruleanCityText16, CeruleanCityText17
+CeruleanCityTextPointers: ; 1962d (6:562d)
+	dw CeruleanCityText1
+	dw CeruleanCityText2
+	dw CeruleanCityText3
+	dw CeruleanCityText4
+	dw CeruleanCityText5
+	dw CeruleanCityText6
+	dw CeruleanCityText7
+	dw CeruleanCityText8
+	dw CeruleanCityText9
+	dw CeruleanCityText10
+	dw CeruleanCityText11
+	dw CeruleanCityText12
+	dw CeruleanCityText13
+	dw MartSignText
+	dw PokeCenterSignText
+	dw CeruleanCityText16
+	dw CeruleanCityText17
 
 CeruleanCityText1: ; 1964f (6:564f)
 	db $08 ; asm
@@ -36964,12 +37183,12 @@ VermilionCityScript: ; 197a1 (6:57a1)
 	pop hl
 	bit 5, [hl]
 	res 5, [hl]
-	call nz, VermilionCityScript_Unknown197c0
-	ld hl, VermilionCityScripts
+	call nz, VermilionCityScript_197c0
+	ld hl, VermilionCityScriptPointers
 	ld a, [W_VERMILIONCITYCURSCRIPT]
 	jp CallFunctionInTable
 
-VermilionCityScript_Unknown197c0: ; 197c0 (6:57c0)
+VermilionCityScript_197c0: ; 197c0 (6:57c0)
 	call GenRandom
 	ld a, [$ff00+$d4]
 	and $e
@@ -36987,7 +37206,7 @@ Function197cb: ; 197cb (6:57cb)
 	ld [W_VERMILIONCITYCURSCRIPT], a
 	ret
 
-VermilionCityScripts: ; 197dc (6:57dc)
+VermilionCityScriptPointers: ; 197dc (6:57dc)
 	dw VermilionCityScript0
 	dw VermilionCityScript1
 	dw VermilionCityScript2
@@ -36998,7 +37217,7 @@ VermilionCityScript0: ; 197e6 (6:57e6)
 	ld a, [$c109]
 	and a
 	ret nz
-	ld hl, Coords19823
+	ld hl, CoordsData_19823
 	call ArePlayerCoordsInArray
 	ret nc
 	xor a
@@ -37026,12 +37245,12 @@ VermilionCityScript0: ; 197e6 (6:57e6)
 	ld [W_VERMILIONCITYCURSCRIPT], a
 	ret
 
-Coords19823: ; 19823 (6:5823)
+CoordsData_19823: ; 19823 (6:5823)
 	db $1e,$12
 	db $ff
 
 VermilionCityScript4: ; 19826 (6:5826)
-	ld hl, Coords19823
+	ld hl, CoordsData_19823
 	call ArePlayerCoordsInArray
 	ret c
 	ld a, $0
@@ -37072,8 +37291,20 @@ VermilionCityScript1: ; 1985f (6:585f)
 	ld [W_VERMILIONCITYCURSCRIPT], a
 	ret
 
-VermilionCityTexts: ; 1986f (6:586f)
-	dw VermilionCityText1, VermilionCityText2, VermilionCityText3, VermilionCityText4, VermilionCityText5, VermilionCityText6, VermilionCityText7, VermilionCityText8, MartSignText, PokeCenterSignText, VermilionCityText11, VermilionCityText12, VermilionCityText13
+VermilionCityTextPointers: ; 1986f (6:586f)
+	dw VermilionCityText1
+	dw VermilionCityText2
+	dw VermilionCityText3
+	dw VermilionCityText4
+	dw VermilionCityText5
+	dw VermilionCityText6
+	dw VermilionCityText7
+	dw VermilionCityText8
+	dw MartSignText
+	dw PokeCenterSignText
+	dw VermilionCityText11
+	dw VermilionCityText12
+	dw VermilionCityText13
 
 VermilionCityText1: ; 19889 (6:5889)
 	TX_FAR _VermilionCityText1
@@ -37215,8 +37446,25 @@ CeladonCityScript: ; 19956 (6:5956)
 	res 7, [hl]
 	ret
 
-CeladonCityTexts: ; 19966 (6:5966)
-	dw CeladonCityText1, CeladonCityText2, CeladonCityText3, CeladonCityText4, CeladonCityText5, CeladonCityText6, CeladonCityText7, CeladonCityText8, CeladonCityText9, CeladonCityText10, CeladonCityText11, PokeCenterSignText, CeladonCityText13, CeladonCityText14, CeladonCityText15, CeladonCityText16, CeladonCityText17, CeladonCityText18
+CeladonCityTextPointers: ; 19966 (6:5966)
+	dw CeladonCityText1
+	dw CeladonCityText2
+	dw CeladonCityText3
+	dw CeladonCityText4
+	dw CeladonCityText5
+	dw CeladonCityText6
+	dw CeladonCityText7
+	dw CeladonCityText8
+	dw CeladonCityText9
+	dw CeladonCityText10
+	dw CeladonCityText11
+	dw PokeCenterSignText
+	dw CeladonCityText13
+	dw CeladonCityText14
+	dw CeladonCityText15
+	dw CeladonCityText16
+	dw CeladonCityText17
+	dw CeladonCityText18
 
 CeladonCityText1: ; 1998a (6:598a)
 	TX_FAR _CeladonCityText1
@@ -37329,8 +37577,31 @@ CeladonCityText18: ; 19a26 (6:5a26)
 FuchsiaCityScript: ; 19a2b (6:5a2b)
 	jp EnableAutoTextBoxDrawing
 
-FuchsiaCityTexts: ; 19a2e (6:5a2e)
-	dw FuchsiaCityText1, FuchsiaCityText2, FuchsiaCityText3, FuchsiaCityText4, FuchsiaCityText5, FuchsiaCityText6, FuchsiaCityText7, FuchsiaCityText8, FuchsiaCityText9, FuchsiaCityText10, FuchsiaCityText11, FuchsiaCityText12, FuchsiaCityText13, MartSignText, PokeCenterSignText, FuchsiaCityText16, FuchsiaCityText17, FuchsiaCityText18, FuchsiaCityText19, FuchsiaCityText20, FuchsiaCityText21, FuchsiaCityText22, FuchsiaCityText23, FuchsiaCityText24
+FuchsiaCityTextPointers: ; 19a2e (6:5a2e)
+	dw FuchsiaCityText1
+	dw FuchsiaCityText2
+	dw FuchsiaCityText3
+	dw FuchsiaCityText4
+	dw FuchsiaCityText5
+	dw FuchsiaCityText6
+	dw FuchsiaCityText7
+	dw FuchsiaCityText8
+	dw FuchsiaCityText9
+	dw FuchsiaCityText10
+	dw FuchsiaCityText11
+	dw FuchsiaCityText12
+	dw FuchsiaCityText13
+	dw MartSignText
+	dw PokeCenterSignText
+	dw FuchsiaCityText16
+	dw FuchsiaCityText17
+	dw FuchsiaCityText18
+	dw FuchsiaCityText19
+	dw FuchsiaCityText20
+	dw FuchsiaCityText21
+	dw FuchsiaCityText22
+	dw FuchsiaCityText23
+	dw FuchsiaCityText24
 
 FuchsiaCityText1: ; 19a5e (6:5a5e)
 	TX_FAR _FuchsiaCityText1
@@ -37477,7 +37748,7 @@ UnnamedText_19b2a: ; 19b2a (6:5b2a)
 BluesHouse_h: ; 0x19b2f id=39
 	db $08 ; tileset
 	db BLUES_HOUSE_HEIGHT, BLUES_HOUSE_WIDTH ; dimensions
-	dw BluesHouseBlocks, BluesHouseTexts, BluesHouseScript
+	dw BluesHouseBlocks, BluesHouseTextPointers, BluesHouseScript
 	db 0
 	dw BluesHouseObject
 
@@ -37488,9 +37759,10 @@ BluesHouseScript: ; 19b3b (6:5b3b)
 	jp CallFunctionInTable
 
 BluesHouseScriptPointers: ; 19b47 (6:5b47)
-	dw BluesHouseScript1,BluesHouseScript2
+	dw BluesHouseScript0
+	dw BluesHouseScript1
 
-BluesHouseScript1: ; 19b4b (6:5b4b)
+BluesHouseScript0: ; 19b4b (6:5b4b)
 	ld hl,$D74A
 	set 1,[hl]
 
@@ -37499,11 +37771,13 @@ BluesHouseScript1: ; 19b4b (6:5b4b)
 	ld [W_BLUESHOUSECURSCRIPT],a
 	ret
 
-BluesHouseScript2: ; 19b56 (6:5b56)
+BluesHouseScript1: ; 19b56 (6:5b56)
 	ret
 
-BluesHouseTexts: ; 19b57 (6:5b57)
-	dw BluesHouseText1,BluesHouseText2,BluesHouseText3
+BluesHouseTextPointers: ; 19b57 (6:5b57)
+	dw BluesHouseText1
+	dw BluesHouseText2
+	dw BluesHouseText3
 
 BluesHouseText1: ; 19b5d (6:5b5d)
 	db 8
@@ -37596,7 +37870,7 @@ BluesHouseBlocks: ; 19bf6 (6:5bf6)
 VermilionHouse3_h: ; 0x19c06 to 0x19c12 (12 bytes) (bank=6) (id=196)
 	db $08 ; tileset
 	db VERMILION_HOUSE_3_HEIGHT, VERMILION_HOUSE_3_WIDTH ; dimensions (y, x)
-	dw VermilionHouse3Blocks, VermilionHouse3Texts, VermilionHouse3Script ; blocks, texts, scripts
+	dw VermilionHouse3Blocks, VermilionHouse3TextPointers, VermilionHouse3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionHouse3Object ; objects
@@ -37604,7 +37878,7 @@ VermilionHouse3_h: ; 0x19c06 to 0x19c12 (12 bytes) (bank=6) (id=196)
 VermilionHouse3Script: ; 19c12 (6:5c12)
 	jp EnableAutoTextBoxDrawing
 
-VermilionHouse3Texts: ; 19c15 (6:5c15)
+VermilionHouse3TextPointers: ; 19c15 (6:5c15)
 	dw VermilionHouse3Text1
 
 VermilionHouse3Text1: ; 19c17 (6:5c17)
@@ -37637,7 +37911,7 @@ VermilionHouse3Blocks: ; 19c3f (6:5c3f)
 IndigoPlateauLobby_h: ; 0x19c4f to 0x19c5b (12 bytes) (bank=6) (id=174)
 	db $02 ; tileset
 	db INDIGO_PLATEAU_LOBBY_HEIGHT, INDIGO_PLATEAU_LOBBY_WIDTH ; dimensions (y, x)
-	dw IndigoPlateauLobbyBlocks, IndigoPlateauLobbyTexts, IndigoPlateauLobbyScript ; blocks, texts, scripts
+	dw IndigoPlateauLobbyBlocks, IndigoPlateauLobbyTextPointers, IndigoPlateauLobbyScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw IndigoPlateauLobbyObject ; objects
@@ -37663,8 +37937,12 @@ IndigoPlateauLobbyScript: ; 19c5b (6:5c5b)
 	ld [hl], a
 	ret
 
-IndigoPlateauLobbyTexts: ; 19c7f (6:5c7f)
-	dw IndigoPlateauLobbyText1, IndigoPlateauLobbyText2, IndigoPlateauLobbyText3, IndigoPlateauLobbyText4, IndigoPlateauLobbyText5
+IndigoPlateauLobbyTextPointers: ; 19c7f (6:5c7f)
+	dw IndigoPlateauLobbyText1
+	dw IndigoPlateauLobbyText2
+	dw IndigoPlateauLobbyText3
+	dw IndigoPlateauLobbyText4
+	dw IndigoPlateauLobbyText5
 
 IndigoPlateauLobbyText1: ; 19c89 (6:5c89)
 	db $ff
@@ -37708,7 +37986,7 @@ IndigoPlateauLobbyBlocks: ; 19ccf (6:5ccf)
 SilphCo4_h: ; 0x19cff to 0x19d0b (12 bytes) (bank=6) (id=209)
 	db $16 ; tileset
 	db SILPH_CO_4F_HEIGHT, SILPH_CO_4F_WIDTH ; dimensions (y, x)
-	dw SilphCo4Blocks, SilphCo4Texts, SilphCo4Script ; blocks, texts, scripts
+	dw SilphCo4Blocks, SilphCo4TextPointers, SilphCo4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo4Object ; objects
@@ -37807,8 +38085,14 @@ SilphCo4ScriptPointers: ; 19d9a (6:5d9a)
 	dw Func_324c
 	dw EndTrainerBattle
 
-SilphCo4Texts: ; 19da0 (6:5da0)
-	dw SilphCo4Text1, SilphCo4Text2, SilphCo4Text3, SilphCo4Text4, Predef5CText, Predef5CText, Predef5CText
+SilphCo4TextPointers: ; 19da0 (6:5da0)
+	dw SilphCo4Text1
+	dw SilphCo4Text2
+	dw SilphCo4Text3
+	dw SilphCo4Text4
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 SilphCo4TrainerHeaders: ; 19dae (6:5dae)
 SilphCo4TrainerHeader0: ; 19dae (6:5dae)
@@ -37838,7 +38122,7 @@ SilphCo4TrainerHeader3: ; 19dc6 (6:5dc6)
 	dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
 	dw SilphCo4EndBattleText4 ; 0x5e2b TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo4Text1: ; 19dd3 (6:5dd3)
 	db $08 ; asm
@@ -37947,7 +38231,7 @@ SilphCo4Blocks: ; 19ea4 (6:5ea4)
 SilphCo5_h: ; 0x19f2b to 0x19f37 (12 bytes) (bank=6) (id=210)
 	db $16 ; tileset
 	db SILPH_CO_5F_HEIGHT, SILPH_CO_5F_WIDTH ; dimensions (y, x)
-	dw SilphCo5Blocks, SilphCo5Texts, SilphCo5Script ; blocks, texts, scripts
+	dw SilphCo5Blocks, SilphCo5TextPointers, SilphCo5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo5Object ; objects
@@ -38025,8 +38309,18 @@ SilphCo5ScriptPointers: ; 19fb6 (6:5fb6)
 	dw Func_324c
 	dw EndTrainerBattle
 
-SilphCo5Texts: ; 19fbc (6:5fbc)
-	dw SilphCo5Text1, SilphCo5Text2, SilphCo5Text3, SilphCo5Text4, SilphCo5Text5, Predef5CText, Predef5CText, Predef5CText, SilphCo5Text9, SilphCo5Text10, SilphCo5Text11
+SilphCo5TextPointers: ; 19fbc (6:5fbc)
+	dw SilphCo5Text1
+	dw SilphCo5Text2
+	dw SilphCo5Text3
+	dw SilphCo5Text4
+	dw SilphCo5Text5
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SilphCo5Text9
+	dw SilphCo5Text10
+	dw SilphCo5Text11
 
 SilphCo5TrainerHeaders: ; 19fd2 (6:5fd2)
 Silphco5TrainerHeader0: ; 19fd2 (6:5fd2)
@@ -38065,7 +38359,7 @@ Silphco5TrainerHeader4: ; 19ff6 (6:5ff6)
 	dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
 	dw SilphCo5EndBattleText5 ; 0x6074 TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo5Text1: ; 1a003 (6:6003)
 	db $08 ; asm
@@ -38208,7 +38502,7 @@ SilphCo5Blocks: ; 1a116 (6:6116)
 SilphCo6_h: ; 0x1a19d to 0x1a1a9 (12 bytes) (bank=6) (id=211)
 	db $16 ; tileset
 	db SILPH_CO_6F_HEIGHT, SILPH_CO_6F_WIDTH ; dimensions (y, x)
-	dw SilphCo6Blocks, SilphCo6Texts, SilphCo6Script ; blocks, texts, scripts
+	dw SilphCo6Blocks, SilphCo6TextPointers, SilphCo6Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo6Object ; objects
@@ -38257,8 +38551,17 @@ SilphCo6ScriptPointers: ; 1a1f0 (6:61f0)
 	dw Func_324c
 	dw EndTrainerBattle
 
-SilphCo6Texts: ; 1a1f6 (6:61f6)
-	dw SilphCo6Text1, SilphCo6Text2, SilphCo6Text3, SilphCo6Text4, SilphCo6Text5, SilphCo6Text6, SilphCo6Text7, SilphCo6Text8, Predef5CText, Predef5CText
+SilphCo6TextPointers: ; 1a1f6 (6:61f6)
+	dw SilphCo6Text1
+	dw SilphCo6Text2
+	dw SilphCo6Text3
+	dw SilphCo6Text4
+	dw SilphCo6Text5
+	dw SilphCo6Text6
+	dw SilphCo6Text7
+	dw SilphCo6Text8
+	dw Predef5CText
+	dw Predef5CText
 
 SilphCo6TrainerHeaders: ; 1a20a (6:620a)
 SilphCo6TrainerHeader0: ; 1a20a (6:620a)
@@ -38288,7 +38591,7 @@ SilphCo6TrainerHeader3: ; 1a222 (6:6222)
 	dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
 	dw SilphCo6EndBattleText4 ; 0x62f1 TextEndBattle
 
-db $ff
+	db $ff
 
 Unnamed_622f: ; 1a22f (6:622f)
 	ld a, [$d838]
@@ -38510,7 +38813,7 @@ Func_1a41d: ; 1a41d (6:641d)
 	ld [$ccd3], a
 	ret
 
-Unknown_1a442: ; 1a442 (6:6442)
+PointerTable_1a442: ; 1a442 (6:6442)
 	dw Func_1a44c
 	dw Func_1a485
 	dw Func_1a4a1
@@ -38589,21 +38892,21 @@ Func_1a4a6: ; 1a4a6 (6:64a6)
 	ret
 
 RLEList_1a4dc: ; 1a4dc (6:64dc)
-db $00, $05
-db $80, $01
-db $00, $05
-db $C0, $03
-db $40, $01
-db $E0, $01
-db $FF
+	db $00, $05
+	db $80, $01
+	db $00, $05
+	db $C0, $03
+	db $40, $01
+	db $E0, $01
+	db $FF
 
 RLEList_1a4e9: ; 1a4e9 (6:64e9)
-db $40, $02
-db $10, $03
-db $80, $05
-db $20, $01
-db $80, $06
-db $FF
+	db $40, $02
+	db $10, $03
+	db $80, $05
+	db $20, $01
+	db $80, $06
+	db $FF
 
 Func_1a4f4: ; 1a4f4 (6:64f4)
 	ld a, [$cd38]
@@ -38619,7 +38922,7 @@ Func_1a4f4: ; 1a4f4 (6:64f4)
 	res 7, [hl]
 	jp Func_314e
 
-Unknown_1a510: ; 1a510 (6:6510)
+PointerTable_1a510: ; 1a510 (6:6510)
 	dw Func_1a514
 	dw Func_1a56b
 
@@ -38653,18 +38956,18 @@ Func_1a514: ; 1a514 (6:6514)
 	ret
 
 RLEList_1a559: ; 1a559 (6:6559)
-db $00, $01
-db $40, $03
-db $20, $0D
-db $40, $06
-db $FF
+	db $00, $01
+	db $40, $03
+	db $20, $0D
+	db $40, $06
+	db $FF
 
 RLEList_1a562: ; 1a562 (6:6562)
-db $40, $06
-db $80, $0D
-db $40, $03
-db $80, $01
-db $FF
+	db $40, $06
+	db $80, $0D
+	db $40, $03
+	db $80, $01
+	db $FF
 
 Func_1a56b: ; 1a56b (6:656b)
 	ld a, [$cd38]
@@ -38676,7 +38979,7 @@ Func_1a56b: ; 1a56b (6:656b)
 	res 7, [hl]
 	jp Func_314e
 
-Unknown_1a57d: ; 1a57d (6:657d)
+PointerTable_1a57d: ; 1a57d (6:657d)
 	dw Func_1a581
 	dw Func_1a56b
 
@@ -38713,22 +39016,22 @@ Func_1a581: ; 1a581 (6:6581)
 	ret
 
 RLEList_1a5cd: ; 1a5cd (6:65cd)
-db $00, $01
-db $10, $02
-db $80, $05
-db $20, $0B
-db $40, $05
-db $20, $0F
-db $FF
+	db $00, $01
+	db $10, $02
+	db $80, $05
+	db $20, $0B
+	db $40, $05
+	db $20, $0F
+	db $FF
 
 RLEList_1a5da: ; 1a5da (6:65da)
-db $00, $02
-db $80, $0F
-db $40, $05
-db $80, $0B
-db $00, $05
-db $C0, $03
-db $FF
+	db $00, $02
+	db $80, $0F
+	db $40, $05
+	db $80, $0B
+	db $00, $05
+	db $C0, $03
+	db $FF
 
 Func_1a5e7: ; 1a5e7 (6:65e7)
 	ld a, [W_CURMAP] ; $d35e
@@ -38850,22 +39153,23 @@ Func_1a6f0: ; 1a6f0 (6:66f0)
 	call CopyVideoDataDouble
 	ld a, $9
 	ld bc, $5448
-	ld de, Unknown_1a710 ; $6710
+	ld de, LedgeHoppingShadowOAM ; $6710
 	call WriteOAMBlock
 	ret
 
 LedgeHoppingShadow: ; 1a708 (6:6708)
 	INCBIN "gfx/ledge_hopping_shadow.1bpp"
 
-Unknown_1a710: ; 1a710 (6:6710)
-INCBIN "baserom.gbc",$1a710,$1a718 - $1a710
+LedgeHoppingShadowOAM: ; 1a710 (6:6710)
+	db $FF,$10,$FF,$20
+	db $FF,$40,$FF,$60
 
 SECTION "bank7",ROMX,BANK[$7]
 
 CinnabarIsland_h: ; 0x1c000 to 0x1c022 (34 bytes) (bank=7) (id=8)
 	db $00 ; tileset
 	db CINNABAR_ISLAND_HEIGHT, CINNABAR_ISLAND_WIDTH ; dimensions (y, x)
-	dw CinnabarIslandBlocks, CinnabarIslandTexts, CinnabarIslandScript ; blocks, texts, scripts
+	dw CinnabarIslandBlocks, CinnabarIslandTextPointers, CinnabarIslandScript ; blocks, texts, scripts
 	db NORTH | EAST ; connections
 
 	; connections data
@@ -38922,7 +39226,7 @@ CinnabarIslandBlocks: ; 1c069 (7:4069)
 Route1_h: ; 0x1c0c3 to 0x1c0e5 (34 bytes) (bank=7) (id=12)
 	db $00 ; tileset
 	db ROUTE_1_HEIGHT, ROUTE_1_WIDTH ; dimensions (y, x)
-	dw Route1Blocks, Route1Texts, Route1Script ; blocks, texts, scripts
+	dw Route1Blocks, Route1TextPointers, Route1Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
 
 	; connections data
@@ -39269,12 +39573,13 @@ CinnabarIslandScript: ; 1ca19 (7:4a19)
 	res 0, [hl]
 	ld hl, $d7a3
 	res 1, [hl]
-	ld hl, CinnabarIslandScripts
+	ld hl, CinnabarIslandScriptPointers
 	ld a, [W_CINNABARISLANDCURSCRIPT]
 	jp CallFunctionInTable
 
-CinnabarIslandScripts: ; 1ca34 (7:4a34)
-	dw CinnabarIslandScript0, CinnabarIslandScript1
+CinnabarIslandScriptPointers: ; 1ca34 (7:4a34)
+	dw CinnabarIslandScript0
+	dw CinnabarIslandScript1
 
 CinnabarIslandScript0: ; 1ca38 (7:4a38)
 	ld b, $2b
@@ -39314,8 +39619,15 @@ CinnabarIslandScript1: ; 1ca73 (7:4a73)
 	ld [W_CINNABARISLANDCURSCRIPT], a
 	ret
 
-CinnabarIslandTexts: ; 1ca81 (7:4a81)
-	dw CinnabarIslandText1, CinnabarIslandText2, CinnabarIslandText3, MartSignText, PokeCenterSignText, CinnabarIslandText6, CinnabarIslandText7, CinnabarIslandText8
+CinnabarIslandTextPointers: ; 1ca81 (7:4a81)
+	dw CinnabarIslandText1
+	dw CinnabarIslandText2
+	dw CinnabarIslandText3
+	dw MartSignText
+	dw PokeCenterSignText
+	dw CinnabarIslandText6
+	dw CinnabarIslandText7
+	dw CinnabarIslandText8
 
 CinnabarIslandText8: ; 1ca91 (7:4a91)
 	TX_FAR _CinnabarIslandText8
@@ -39344,8 +39656,10 @@ CinnabarIslandText7: ; 1caaa (7:4aaa)
 Route1Script: ; 1caaf (7:4aaf)
 	jp EnableAutoTextBoxDrawing
 
-Route1Texts: ; 1cab2 (7:4ab2)
-	dw Route1Text1, Route1Text2, Route1Text3
+Route1TextPointers: ; 1cab2 (7:4ab2)
+	dw Route1Text1
+	dw Route1Text2
+	dw Route1Text3
 
 Route1Text1: ; 1cab8 (7:4ab8)
 	db $08 ; asm
@@ -39396,7 +39710,7 @@ Route1Text3: ; 1cafd (7:4afd)
 OaksLab_h: ; 0x1cb02 to 0x1cb0e (12 bytes) (bank=7) (id=40)
 	db $05 ; tileset
 	db OAKS_LAB_HEIGHT, OAKS_LAB_WIDTH ; dimensions (y, x)
-	dw OaksLabBlocks, OaksLabTexts, OaksLabScript ; blocks, texts, scripts
+	dw OaksLabBlocks, OaksLabTextPointers, OaksLabScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw OaksLabObject ; objects
@@ -39409,12 +39723,30 @@ OaksLabScript: ; 1cb0e (7:4b0e)
 	ld [$cf0c], a
 	xor a
 	ld [$cc3c], a
-	ld hl, OaksLabScripts
+	ld hl, OaksLabScriptPointers
 	ld a, [W_OAKSLABCURSCRIPT]
 	jp CallFunctionInTable
 
-OaksLabScripts: ; 1cb28 (7:4b28)
-	dw OaksLabScript0, OaksLabScript1, OaksLabScript2, OaksLabScript3, OaksLabScript4, OaksLabScript5, OaksLabScript6, OaksLabScript7, OaksLabScript8, OaksLabScript9, OaksLabScript10, OaksLabScript11, OaksLabScript12, OaksLabScript13, OaksLabScript14, OaksLabScript15, OaksLabScript16, OaksLabScript17, OaksLabScript18
+OaksLabScriptPointers: ; 1cb28 (7:4b28)
+	dw OaksLabScript0
+	dw OaksLabScript1
+	dw OaksLabScript2
+	dw OaksLabScript3
+	dw OaksLabScript4
+	dw OaksLabScript5
+	dw OaksLabScript6
+	dw OaksLabScript7
+	dw OaksLabScript8
+	dw OaksLabScript9
+	dw OaksLabScript10
+	dw OaksLabScript11
+	dw OaksLabScript12
+	dw OaksLabScript13
+	dw OaksLabScript14
+	dw OaksLabScript15
+	dw OaksLabScript16
+	dw OaksLabScript17
+	dw OaksLabScript18
 
 OaksLabScript0: ; 1cb4e (7:4b4e)
 	ld a, [$d74b]
@@ -39445,7 +39777,7 @@ OaksLabScript1: ; 1cb6e (7:4b6e)
 	ret
 
 OakEntryMovement: ; 1cb7e (7:4b7e)
-	db $40, $40, $40, $ff
+	db $40,$40,$40,$FF
 
 OaksLabScript2: ; 1cb82 (7:4b82)
 	ld a, [$d730]
@@ -39638,7 +39970,7 @@ OaksLabScript8: ; 1cc80 (7:4c80)
 	jr .asm_1ccf3 ; 0x1cced $4
 
 .LeftBallMovement1
-	db 0,$C0 ; not yet terminated!
+	db $00,$C0 ; not yet terminated!
 .LeftBallMovement2
 	db $C0,$FF
 
@@ -39834,7 +40166,7 @@ OaksLabScript13: ; 1ce32 (7:4e32)
 	ret
 
 .RivalExitMovement
-	db $E0,0,0,0,0,0,$FF
+	db $E0,$00,$00,$00,$00,$00,$FF
 
 OaksLabScript14: ; 1ce6d (7:4e6d)
 	ld a, [$d730]
@@ -40092,15 +40424,52 @@ Unknown_1d02b: ; 1d02b (7:502b)
 	ret
 
 Unknown_1d076: ; 1d076 (7:5076)
-	ld hl, OaksLabTexts + $36 ; $50b8 ; starts at OaksLabText28
+	ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28
 	ld a, l
 	ld [W_MAPTEXTPTR], a
 	ld a, h
 	ld [W_MAPTEXTPTR+1], a
 	ret
 
-OaksLabTexts: ; 1d082 (7:5082)
-	dw OaksLabText1, OaksLabText2, OaksLabText3, OaksLabText4, OaksLabText5, OaksLabText6, OaksLabText7, OaksLabText8, OaksLabText9, OaksLabText10, OaksLabText11, OaksLabText12, OaksLabText13, OaksLabText14, OaksLabText15, OaksLabText16, OaksLabText17, OaksLabText18, OaksLabText19, OaksLabText20, OaksLabText21, OaksLabText22, OaksLabText23, OaksLabText24, OaksLabText25, OaksLabText26, OaksLabText27, OaksLabText28, OaksLabText29, OaksLabText30, OaksLabText31, OaksLabText32, OaksLabText33, OaksLabText34, OaksLabText35, OaksLabText36, OaksLabText37, OaksLabText38
+OaksLabTextPointers: ; 1d082 (7:5082)
+	dw OaksLabText1
+	dw OaksLabText2
+	dw OaksLabText3
+	dw OaksLabText4
+	dw OaksLabText5
+	dw OaksLabText6
+	dw OaksLabText7
+	dw OaksLabText8
+	dw OaksLabText9
+	dw OaksLabText10
+	dw OaksLabText11
+	dw OaksLabText12
+	dw OaksLabText13
+	dw OaksLabText14
+	dw OaksLabText15
+	dw OaksLabText16
+	dw OaksLabText17
+	dw OaksLabText18
+	dw OaksLabText19
+	dw OaksLabText20
+	dw OaksLabText21
+	dw OaksLabText22
+	dw OaksLabText23
+	dw OaksLabText24
+	dw OaksLabText25
+	dw OaksLabText26
+	dw OaksLabText27
+	dw OaksLabText28
+	dw OaksLabText29
+	dw OaksLabText30
+	dw OaksLabText31
+	dw OaksLabText32
+	dw OaksLabText33
+	dw OaksLabText34
+	dw OaksLabText35
+	dw OaksLabText36
+	dw OaksLabText37
+	dw OaksLabText38
 
 OaksLabText28: ; 1d0ce (7:50ce)
 OaksLabText1: ; 1d0ce (7:50ce)
@@ -40621,26 +40990,26 @@ OaksLabObject: ; 0x1d40a (size=88)
 ViridianMart_h: ; 0x1d462 to 0x1d46e (12 bytes) (bank=7) (id=42)
 	db $02 ; tileset
 	db VIRIDIAN_MART_HEIGHT, VIRIDIAN_MART_WIDTH ; dimensions (y, x)
-	dw ViridianMartBlocks, ViridianMartTexts, ViridianMartScript ; blocks, texts, scripts
+	dw ViridianMartBlocks, ViridianMartTextPointers, ViridianMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianMartObject ; objects
 
 ViridianMartScript: ; 1d46e (7:546e)
-	call ViridianMartScript_Unknown1d47d
+	call ViridianMartScript_1d47d
 	call EnableAutoTextBoxDrawing
 	ld hl, ViridianMartScriptPointers
 	ld a, [W_VIRIDIANMARKETCURSCRIPT]
 	jp CallFunctionInTable
 
-ViridianMartScript_Unknown1d47d: ; 1d47d (7:547d)
+ViridianMartScript_1d47d: ; 1d47d (7:547d)
 	ld a, [$d74e]
 	bit 0, a
 	jr nz, .asm_1d489 ; 0x1d482 $5
-	ld hl, ViridianMartTexts ; $54e0
+	ld hl, ViridianMartTextPointers ; $54e0
 	jr .asm_1d48c ; 0x1d487 $3
 .asm_1d489
-	ld hl, ViridianMartTexts + $a ; $54ea ; starts at ViridianMartText6
+	ld hl, ViridianMartTextPointers + $a ; $54ea ; starts at ViridianMartText6
 .asm_1d48c
 	ld a, l
 	ld [W_MAPTEXTPTR], a
@@ -40691,7 +41060,7 @@ ViridianMartScript1: ; 1d4c0 (7:54c0)
 ViridianMartScript2: ; 1d4df (7:54df)
 	ret
 
-ViridianMartTexts: ; 1d4e0 (7:54e0)
+ViridianMartTextPointers: ; 1d4e0 (7:54e0)
 	dw ViridianMartText1
 	dw ViridianMartText2
 	dw ViridianMartText3
@@ -40746,7 +41115,7 @@ ViridianMartBlocks: ; 1d530 (7:5530)
 School_h: ; 0x1d540 to 0x1d54c (12 bytes) (bank=7) (id=43)
 	db $08 ; tileset
 	db VIRIDIAN_SCHOOL_HEIGHT, VIRIDIAN_SCHOOL_WIDTH ; dimensions (y, x)
-	dw SchoolBlocks, SchoolTexts, SchoolScript ; blocks, texts, scripts
+	dw SchoolBlocks, SchoolTextPointers, SchoolScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SchoolObject ; objects
@@ -40754,8 +41123,9 @@ School_h: ; 0x1d540 to 0x1d54c (12 bytes) (bank=7) (id=43)
 SchoolScript: ; 1d54c (7:554c)
 	jp EnableAutoTextBoxDrawing
 
-SchoolTexts: ; 1d54f (7:554f)
-	dw SchoolText1, SchoolText2
+SchoolTextPointers: ; 1d54f (7:554f)
+	dw SchoolText1
+	dw SchoolText2
 
 SchoolText1: ; 1d553 (7:5553)
 	TX_FAR _SchoolText1
@@ -40785,18 +41155,21 @@ SchoolObject: ; 0x1d55d (size=32)
 ViridianHouse_h: ; 0x1d57d to 0x1d589 (12 bytes) (bank=7) (id=44)
 	db $08 ; tileset
 	db VIRIDIAN_HOUSE_HEIGHT, VIRIDIAN_HOUSE_WIDTH ; dimensions (y, x)
-	dw ViridianHouseBlocks, ViridianHouseTexts, ViridianHouseScript ; blocks, texts, scripts
+	dw ViridianHouseBlocks, ViridianHouseTextPointers, ViridianHouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianHouseObject ; objects
 
-db $0
+	db $0
 
 ViridianHouseScript: ; 1d58a (7:558a)
 	jp EnableAutoTextBoxDrawing
 
-ViridianHouseTexts: ; 1d58d (7:558d)
-	dw ViridianHouseText1, ViridianHouseText2, ViridianHouseText3, ViridianHouseText4
+ViridianHouseTextPointers: ; 1d58d (7:558d)
+	dw ViridianHouseText1
+	dw ViridianHouseText2
+	dw ViridianHouseText3
+	dw ViridianHouseText4
 
 ViridianHouseText1: ; 1d595 (7:5595)
 	TX_FAR _ViridianHouseText1
@@ -40845,7 +41218,7 @@ ViridianHouseObject: ; 0x1d5bb (size=44)
 PewterHouse1_h: ; 0x1d5e7 to 0x1d5f3 (12 bytes) (bank=7) (id=55)
 	db $08 ; tileset
 	db PEWTER_HOUSE_1_HEIGHT, PEWTER_HOUSE_1_WIDTH ; dimensions (y, x)
-	dw PewterHouse1Blocks, PewterHouse1Texts, PewterHouse1Script ; blocks, texts, scripts
+	dw PewterHouse1Blocks, PewterHouse1TextPointers, PewterHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PewterHouse1Object ; objects
@@ -40853,8 +41226,10 @@ PewterHouse1_h: ; 0x1d5e7 to 0x1d5f3 (12 bytes) (bank=7) (id=55)
 PewterHouse1Script: ; 1d5f3 (7:55f3)
 	jp EnableAutoTextBoxDrawing
 
-PewterHouse1Texts: ; 1d5f6 (7:55f6)
-	dw PewterHouse1Text1, PewterHouse1Text2, PewterHouse1Text3
+PewterHouse1TextPointers: ; 1d5f6 (7:55f6)
+	dw PewterHouse1Text1
+	dw PewterHouse1Text2
+	dw PewterHouse1Text3
 
 PewterHouse1Text1: ; 1d5fc (7:55fc)
 	TX_FAR _PewterHouse1Text1
@@ -40893,7 +41268,7 @@ PewterHouse1Object: ; 0x1d616 (size=38)
 PewterHouse2_h: ; 0x1d63c to 0x1d648 (12 bytes) (bank=7) (id=57)
 	db $08 ; tileset
 	db PEWTER_HOUSE_2_HEIGHT, PEWTER_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw PewterHouse2Blocks, PewterHouse2Texts, PewterHouse2Script ; blocks, texts, scripts
+	dw PewterHouse2Blocks, PewterHouse2TextPointers, PewterHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PewterHouse2Object ; objects
@@ -40901,8 +41276,9 @@ PewterHouse2_h: ; 0x1d63c to 0x1d648 (12 bytes) (bank=7) (id=57)
 PewterHouse2Script: ; 1d648 (7:5648)
 	jp EnableAutoTextBoxDrawing
 
-PewterHouse2Texts: ; 1d64b (7:564b)
-	dw PewterHouse2Text1, PewterHouse2Text2
+PewterHouse2TextPointers: ; 1d64b (7:564b)
+	dw PewterHouse2Text1
+	dw PewterHouse2Text2
 
 PewterHouse2Text1: ; 1d64f (7:564f)
 	TX_FAR _PewterHouse2Text1
@@ -40932,7 +41308,7 @@ PewterHouse2Object: ; 0x1d659 (size=32)
 CeruleanHouseTrashed_h: ; 0x1d679 to 0x1d685 (12 bytes) (bank=7) (id=62)
 	db $08 ; tileset
 	db TRASHED_HOUSE_HEIGHT, TRASHED_HOUSE_WIDTH ; dimensions (y, x)
-	dw CeruleanHouseTrashedBlocks, CeruleanHouseTrashedTexts, CeruleanHouseTrashedScript ; blocks, texts, scripts
+	dw CeruleanHouseTrashedBlocks, CeruleanHouseTrashedTextPointers, CeruleanHouseTrashedScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeruleanHouseTrashedObject ; objects
@@ -40941,8 +41317,10 @@ CeruleanHouseTrashedScript: ; 1d685 (7:5685)
 	call EnableAutoTextBoxDrawing
 	ret
 
-CeruleanHouseTrashedTexts: ; 1d689 (7:5689)
-	dw CeruleanHouseTrashedText1, CeruleanHouseTrashedText2, CeruleanHouseTrashedText3
+CeruleanHouseTrashedTextPointers: ; 1d689 (7:5689)
+	dw CeruleanHouseTrashedText1
+	dw CeruleanHouseTrashedText2
+	dw CeruleanHouseTrashedText3
 
 CeruleanHouseTrashedText1: ; 1d68f (7:568f)
 	db $08 ; asm
@@ -40999,7 +41377,7 @@ CeruleanHouseTrashedObject: ; 0x1d6bf (size=43)
 CeruleanHouse_h: ; 0x1d6ea to 0x1d6f6 (12 bytes) (bank=7) (id=63)
 	db $08 ; tileset
 	db CERULEAN_HOUSE_HEIGHT, CERULEAN_HOUSE_WIDTH ; dimensions (y, x)
-	dw CeruleanHouseBlocks, CeruleanHouseTexts, CeruleanHouseScript ; blocks, texts, scripts
+	dw CeruleanHouseBlocks, CeruleanHouseTextPointers, CeruleanHouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeruleanHouseObject ; objects
@@ -41007,8 +41385,9 @@ CeruleanHouse_h: ; 0x1d6ea to 0x1d6f6 (12 bytes) (bank=7) (id=63)
 CeruleanHouseScript: ; 1d6f6 (7:56f6)
 	jp EnableAutoTextBoxDrawing
 
-CeruleanHouseTexts: ; 1d6f9 (7:56f9)
-	dw CeruleanHouseText1, CeruleanHouseText2
+CeruleanHouseTextPointers: ; 1d6f9 (7:56f9)
+	dw CeruleanHouseText1
+	dw CeruleanHouseText2
 
 CeruleanHouseText1: ; 1d6fd (7:56fd)
 	TX_FAR _CeruleanHouseText1
@@ -41042,7 +41421,7 @@ CeruleanHouseObject: ; 0x1d710 (size=32)
 BikeShop_h: ; 0x1d730 to 0x1d73c (12 bytes) (bank=7) (id=66)
 	db $15 ; tileset
 	db BIKE_SHOP_HEIGHT, BIKE_SHOP_WIDTH ; dimensions (y, x)
-	dw BikeShopBlocks, BikeShopTexts, BikeShopScript ; blocks, texts, scripts
+	dw BikeShopBlocks, BikeShopTextPointers, BikeShopScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw BikeShopObject ; objects
@@ -41050,8 +41429,10 @@ BikeShop_h: ; 0x1d730 to 0x1d73c (12 bytes) (bank=7) (id=66)
 BikeShopScript: ; 1d73c (7:573c)
 	jp EnableAutoTextBoxDrawing
 
-BikeShopTexts: ; 1d73f (7:573f)
-	dw BikeShopText1, BikeShopText2, BikeShopText3
+BikeShopTextPointers: ; 1d73f (7:573f)
+	dw BikeShopText1
+	dw BikeShopText2
+	dw BikeShopText3
 
 BikeShopText1: ; 1d745 (7:5745)
 	db $08 ; asm
@@ -41223,7 +41604,7 @@ BikeShopBlocks: ; 1d88c (7:588c)
 LavenderHouse1_h: ; 0x1d89c to 0x1d8a8 (12 bytes) (bank=7) (id=149)
 	db $08 ; tileset
 	db LAVENDER_HOUSE_1_HEIGHT, LAVENDER_HOUSE_1_WIDTH ; dimensions (y, x)
-	dw LavenderHouse1Blocks, LavenderHouse1Texts, LavenderHouse1Script ; blocks, texts, scripts
+	dw LavenderHouse1Blocks, LavenderHouse1TextPointers, LavenderHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw LavenderHouse1Object ; objects
@@ -41232,8 +41613,13 @@ LavenderHouse1Script: ; 1d8a8 (7:58a8)
 	call EnableAutoTextBoxDrawing
 	ret
 
-LavenderHouse1Texts: ; 1d8ac (7:58ac)
-	dw LavenderHouse1Text1, LavenderHouse1Text2, LavenderHouse1Text3, LavenderHouse1Text4, LavenderHouse1Text5, LavenderHouse1Text6
+LavenderHouse1TextPointers: ; 1d8ac (7:58ac)
+	dw LavenderHouse1Text1
+	dw LavenderHouse1Text2
+	dw LavenderHouse1Text3
+	dw LavenderHouse1Text4
+	dw LavenderHouse1Text5
+	dw LavenderHouse1Text6
 
 LavenderHouse1Text1: ; 1d8b8 (7:58b8)
 	db $08 ; asm
@@ -41364,7 +41750,7 @@ LavenderHouse1Object: ; 0x1d96a (size=56)
 LavenderHouse2_h: ; 0x1d9a2 to 0x1d9ae (12 bytes) (bank=7) (id=151)
 	db $08 ; tileset
 	db LAVENDER_HOUSE_2_HEIGHT, LAVENDER_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw LavenderHouse2Blocks, LavenderHouse2Texts, LavenderHouse2Script ; blocks, texts, scripts
+	dw LavenderHouse2Blocks, LavenderHouse2TextPointers, LavenderHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw LavenderHouse2Object ; objects
@@ -41373,8 +41759,9 @@ LavenderHouse2Script: ; 1d9ae (7:59ae)
 	call EnableAutoTextBoxDrawing
 	ret
 
-LavenderHouse2Texts: ; 1d9b2 (7:59b2)
-	dw LavenderHouse2Text1, LavenderHouse2Text2
+LavenderHouse2TextPointers: ; 1d9b2 (7:59b2)
+	dw LavenderHouse2Text1
+	dw LavenderHouse2Text2
 
 LavenderHouse2Text1: ; 1d9b6 (7:59b6)
 	TX_FAR _LavenderHouse2Text1
@@ -41425,7 +41812,7 @@ LavenderHouse2Object: ; 0x1d9e6 (size=32)
 NameRater_h: ; 0x1da06 to 0x1da12 (12 bytes) (bank=7) (id=229)
 	db $08 ; tileset
 	db NAME_RATERS_HOUSE_HEIGHT, NAME_RATERS_HOUSE_WIDTH ; dimensions (y, x)
-	dw NameRaterBlocks, NameRaterTexts, NameRaterScript ; blocks, texts, scripts
+	dw NameRaterBlocks, NameRaterTextPointers, NameRaterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw NameRaterObject ; objects
@@ -41469,7 +41856,7 @@ Unknown_1da20: ; 1da20 (7:5a20)
 	scf
 	ret
 
-NameRaterTexts: ; 1da54 (7:5a54)
+NameRaterTextPointers: ; 1da54 (7:5a54)
 	dw NameRaterText1
 
 NameRaterText1: ; 1da56 (7:5a56)
@@ -41559,7 +41946,7 @@ NameRaterObject: ; 0x1dad6 (size=26)
 VermilionHouse1_h: ; 0x1daf0 to 0x1dafc (12 bytes) (bank=7) (id=93)
 	db $08 ; tileset
 	db VERMILION_HOUSE_1_HEIGHT, VERMILION_HOUSE_1_WIDTH ; dimensions (y, x)
-	dw VermilionHouse1Blocks, VermilionHouse1Texts, VermilionHouse1Script ; blocks, texts, scripts
+	dw VermilionHouse1Blocks, VermilionHouse1TextPointers, VermilionHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionHouse1Object ; objects
@@ -41568,8 +41955,10 @@ VermilionHouse1Script: ; 1dafc (7:5afc)
 	call EnableAutoTextBoxDrawing
 	ret
 
-VermilionHouse1Texts: ; 1db00 (7:5b00)
-	dw VermilionHouse1Text1, VermilionHouse1Text2, VermilionHouse1Text3
+VermilionHouse1TextPointers: ; 1db00 (7:5b00)
+	dw VermilionHouse1Text1
+	dw VermilionHouse1Text2
+	dw VermilionHouse1Text3
 
 VermilionHouse1Text1: ; 1db06 (7:5b06)
 	TX_FAR _VermilionHouse1Text1
@@ -41608,7 +41997,7 @@ VermilionHouse1Object: ; 0x1db20 (size=38)
 VermilionDock_h: ; 0x1db46 to 0x1db52 (12 bytes) (bank=7) (id=94)
 	db $0e ; tileset
 	db VERMILION_DOCK_HEIGHT, VERMILION_DOCK_WIDTH ; dimensions (y, x)
-	dw VermilionDockBlocks, VermilionDockTexts, VermilionDockScript ; blocks, texts, scripts
+	dw VermilionDockBlocks, VermilionDockTextPointers, VermilionDockScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionDockObject ; objects
@@ -41817,11 +42206,11 @@ VermilionDock_1dc94: ; 1dc94 (7:5c94)
 	call DelayFrames
 	ret
 
-VermilionDockTexts: ; 1dcbf (7:5cbf)
-	db $c1, $5c
+VermilionDockTextPointers: ; 1dcbf (7:5cbf)
+	dw VermilionDockText1
 
-UnnamedText_1dcc1: ; 1dcc1 (7:5cc1)
-	TX_FAR _UnnamedText_1dcc1
+VermilionDockText1: ; 1dcc1 (7:5cc1)
+	TX_FAR _VermilionDockText1
 	db "@"
 
 VermilionDockObject: ; 0x1dcc6 (size=20)
@@ -41845,7 +42234,7 @@ VermilionDockBlocks: ; 1dcda (7:5cda)
 CeladonMansion5_h: ; 0x1dd2e to 0x1dd3a (12 bytes) (bank=7) (id=132)
 	db $08 ; tileset
 	db CELADON_MANSION_5_HEIGHT, CELADON_MANSION_5_WIDTH ; dimensions (y, x)
-	dw CeladonMansion5Blocks, CeladonMansion5Texts, CeladonMansion5Script ; blocks, texts, scripts
+	dw CeladonMansion5Blocks, CeladonMansion5TextPointers, CeladonMansion5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMansion5Object ; objects
@@ -41853,8 +42242,9 @@ CeladonMansion5_h: ; 0x1dd2e to 0x1dd3a (12 bytes) (bank=7) (id=132)
 CeladonMansion5Script: ; 1dd3a (7:5d3a)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMansion5Texts: ; 1dd3d (7:5d3d)
-	dw CeladonMansion5Text1, CeladonMansion5Text2
+CeladonMansion5TextPointers: ; 1dd3d (7:5d3d)
+	dw CeladonMansion5Text1
+	dw CeladonMansion5Text2
 
 CeladonMansion5Text1: ; 1dd41 (7:5d41)
 	TX_FAR _CeladonMansion5Text1
@@ -41892,7 +42282,7 @@ CeladonMansion5Object: ; 0x1dd5c (size=32)
 FuchsiaMart_h: ; 0x1dd7c to 0x1dd88 (12 bytes) (bank=7) (id=152)
 	db $02 ; tileset
 	db FUCHSIA_MART_HEIGHT, FUCHSIA_MART_WIDTH ; dimensions (y, x)
-	dw FuchsiaMartBlocks, FuchsiaMartTexts, FuchsiaMartScript ; blocks, texts, scripts
+	dw FuchsiaMartBlocks, FuchsiaMartTextPointers, FuchsiaMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaMartObject ; objects
@@ -41900,8 +42290,10 @@ FuchsiaMart_h: ; 0x1dd7c to 0x1dd88 (12 bytes) (bank=7) (id=152)
 FuchsiaMartScript: ; 1dd88 (7:5d88)
 	jp EnableAutoTextBoxDrawing
 
-FuchsiaMartTexts: ; 1dd8b (7:5d8b)
-	dw FuchsiaMartText1, FuchsiaMartText2, FuchsiaMartText3
+FuchsiaMartTextPointers: ; 1dd8b (7:5d8b)
+	dw FuchsiaMartText1
+	dw FuchsiaMartText2
+	dw FuchsiaMartText3
 
 FuchsiaMartText2: ; 1dd91 (7:5d91)
 	TX_FAR _FuchsiaMartText2
@@ -41935,7 +42327,7 @@ FuchsiaMartBlocks: ; 1ddc1 (7:5dc1)
 SaffronHouse1_h: ; 0x1ddd1 to 0x1dddd (12 bytes) (bank=7) (id=179)
 	db $08 ; tileset
 	db SAFFRON_HOUSE_1_HEIGHT, SAFFRON_HOUSE_1_WIDTH ; dimensions (y, x)
-	dw SaffronHouse1Blocks, SaffronHouse1Texts, SaffronHouse1Script ; blocks, texts, scripts
+	dw SaffronHouse1Blocks, SaffronHouse1TextPointers, SaffronHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SaffronHouse1Object ; objects
@@ -41943,8 +42335,11 @@ SaffronHouse1_h: ; 0x1ddd1 to 0x1dddd (12 bytes) (bank=7) (id=179)
 SaffronHouse1Script: ; 1dddd (7:5ddd)
 	jp EnableAutoTextBoxDrawing
 
-SaffronHouse1Texts: ; 1dde0 (7:5de0)
-	dw SaffronHouse1Text1, SaffronHouse1Text2, SaffronHouse1Text3, SaffronHouse1Text4
+SaffronHouse1TextPointers: ; 1dde0 (7:5de0)
+	dw SaffronHouse1Text1
+	dw SaffronHouse1Text2
+	dw SaffronHouse1Text3
+	dw SaffronHouse1Text4
 
 SaffronHouse1Text1: ; 1dde8 (7:5de8)
 	TX_FAR _SaffronHouse1Text1
@@ -41987,7 +42382,7 @@ SaffronHouse1Object: ; 0x1de04 (size=44)
 SaffronHouse2_h: ; 0x1de30 to 0x1de3c (12 bytes) (bank=7) (id=183)
 	db $08 ; tileset
 	db SAFFRON_HOUSE_2_HEIGHT, SAFFRON_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw SaffronHouse2Blocks, SaffronHouse2Texts, SaffronHouse2Script ; blocks, texts, scripts
+	dw SaffronHouse2Blocks, SaffronHouse2TextPointers, SaffronHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SaffronHouse2Object ; objects
@@ -41995,7 +42390,7 @@ SaffronHouse2_h: ; 0x1de30 to 0x1de3c (12 bytes) (bank=7) (id=183)
 SaffronHouse2Script: ; 1de3c (7:5e3c)
 	jp EnableAutoTextBoxDrawing
 
-SaffronHouse2Texts: ; 1de3f (7:5e3f)
+SaffronHouse2TextPointers: ; 1de3f (7:5e3f)
 	dw SaffronHouse2Text1
 
 SaffronHouse2Text1: ; 1de41 (7:5e41)
@@ -42058,7 +42453,7 @@ SaffronHouse2Object: ; 0x1de8a (size=26)
 DiglettsCaveRoute2_h: ; 0x1dea4 to 0x1deb0 (12 bytes) (bank=7) (id=46)
 	db $11 ; tileset
 	db DIGLETTS_CAVE_EXIT_HEIGHT, DIGLETTS_CAVE_EXIT_WIDTH ; dimensions (y, x)
-	dw DiglettsCaveRoute2Blocks, DiglettsCaveRoute2Texts, DiglettsCaveRoute2Script ; blocks, texts, scripts
+	dw DiglettsCaveRoute2Blocks, DiglettsCaveRoute2TextPointers, DiglettsCaveRoute2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw DiglettsCaveRoute2Object ; objects
@@ -42068,7 +42463,7 @@ DiglettsCaveRoute2Script: ; 1deb0 (7:5eb0)
 	ld [$d365], a
 	jp EnableAutoTextBoxDrawing
 
-DiglettsCaveRoute2Texts: ; 1deb8 (7:5eb8)
+DiglettsCaveRoute2TextPointers: ; 1deb8 (7:5eb8)
 	dw DiglettsCaveRoute2Text1
 
 DiglettsCaveRoute2Text1: ; 1deba (7:5eba)
@@ -42096,7 +42491,7 @@ DiglettsCaveRoute2Object: ; 0x1debf (size=34)
 Route2House_h: ; 0x1dee1 to 0x1deed (12 bytes) (bank=7) (id=48)
 	db $08 ; tileset
 	db ROUTE_2_HOUSE_HEIGHT, ROUTE_2_HOUSE_WIDTH ; dimensions (y, x)
-	dw Route2HouseBlocks, Route2HouseTexts, Route2HouseScript ; blocks, texts, scripts
+	dw Route2HouseBlocks, Route2HouseTextPointers, Route2HouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route2HouseObject ; objects
@@ -42104,8 +42499,9 @@ Route2House_h: ; 0x1dee1 to 0x1deed (12 bytes) (bank=7) (id=48)
 Route2HouseScript: ; 1deed (7:5eed)
 	jp EnableAutoTextBoxDrawing
 
-Route2HouseTexts: ; 1def0 (7:5ef0)
-	dw Route2HouseText1, Route2HouseText2
+Route2HouseTextPointers: ; 1def0 (7:5ef0)
+	dw Route2HouseText1
+	dw Route2HouseText2
 
 Route2HouseText1: ; 1def4 (7:5ef4)
 	TX_FAR _Route2HouseText1
@@ -42139,7 +42535,7 @@ Route2HouseObject: ; 0x1df07 (size=32)
 Route5Gate_h: ; 0x1df27 to 0x1df33 (12 bytes) (bank=7) (id=70)
 	db $0c ; tileset
 	db ROUTE_5_GATE_HEIGHT, ROUTE_5_GATE_WIDTH ; dimensions (y, x)
-	dw Route5GateBlocks, Route5GateTexts, Route5GateScript ; blocks, texts, scripts
+	dw Route5GateBlocks, Route5GateTextPointers, Route5GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route5GateObject ; objects
@@ -42147,10 +42543,10 @@ Route5Gate_h: ; 0x1df27 to 0x1df33 (12 bytes) (bank=7) (id=70)
 Route5GateScript: ; 1df33 (7:5f33)
 	call EnableAutoTextBoxDrawing
 	ld a, [W_ROUTE5GATECURSCRIPT]
-	ld hl, Route5GateScripts
+	ld hl, Route5GateScriptPointers
 	jp CallFunctionInTable
 
-Route5GateScripts: ; 1df3f (7:5f3f)
+Route5GateScriptPointers: ; 1df3f (7:5f3f)
 	dw Route5GateScript0
 	dw Route5GateScript1
 
@@ -42165,7 +42561,7 @@ Route5GateScript0: ; 1df50 (7:5f50)
 	ld a, [$d728]
 	bit 6, a
 	ret nz
-	ld hl, Coords1df8f
+	ld hl, CoordsData_1df8f
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $2
@@ -42193,7 +42589,7 @@ Route5GateScript0: ; 1df50 (7:5f50)
 	set 6, [hl]
 	ret
 
-Coords1df8f: ; 1df8f (7:5f8f)
+CoordsData_1df8f: ; 1df8f (7:5f8f)
 	db 3,3
 	db 3,4
 	db $ff
@@ -42208,8 +42604,10 @@ Route5GateScript1: ; 1df94 (7:5f94)
 	ld [W_ROUTE5GATECURSCRIPT], a
 	ret
 
-Route5GateTexts: ; 1dfa4 (7:5fa4)
-	dw Route5GateText1, Route5GateText2, Route5GateText3
+Route5GateTextPointers: ; 1dfa4 (7:5fa4)
+	dw Route5GateText1
+	dw Route5GateText2
+	dw Route5GateText3
 
 Route8GateText1: ; 1dfaa (7:5faa)
 Route7GateText1: ; 1dfaa (7:5faa)
@@ -42290,26 +42688,27 @@ Route5GateBlocks: ; 1e025 (7:6025)
 Route6Gate_h: ; 0x1e031 to 0x1e03d (12 bytes) (bank=7) (id=73)
 	db $0c ; tileset
 	db ROUTE_6_GATE_HEIGHT, ROUTE_6_GATE_WIDTH ; dimensions (y, x)
-	dw Route6GateBlocks, Route6GateTexts, Route6GateScript ; blocks, texts, scripts
+	dw Route6GateBlocks, Route6GateTextPointers, Route6GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route6GateObject ; objects
 
 Route6GateScript: ; 1e03d (7:603d)
 	call EnableAutoTextBoxDrawing
-	ld hl, Route6GateScripts
+	ld hl, Route6GateScriptPointers
 	ld a, [W_ROUTE6GATECURSCRIPT]
 	call CallFunctionInTable
 	ret
 
-Route6GateScripts: ; 1e04a (7:604a)
-	dw Route6GateScript0, Route6GateScript1
+Route6GateScriptPointers: ; 1e04a (7:604a)
+	dw Route6GateScript0
+	dw Route6GateScript1
 
 Route6GateScript0: ; 1e04e (7:604e)
 	ld a, [$d728]
 	bit 6, a
 	ret nz
-	ld hl, Unknown_1e08c
+	ld hl, CoordsData_1e08c
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $1
@@ -42336,12 +42735,9 @@ Route6GateScript0: ; 1e04e (7:604e)
 	ld [$ff00+$8c], a
 	jp DisplayTextID
 
-Unknown_1e08c: ; 1e08c (7:608c)
-	ld [bc], a
-	inc bc
-	ld [bc], a
-	inc b
-	rst $38
+CoordsData_1e08c: ; 1e08c (7:608c)
+	db $02,$03
+	db $02,$04,$FF
 
 Route6GateScript1: ; 1e091 (7:6091)
 	ld a, [$cd38]
@@ -42365,8 +42761,10 @@ Unknown_1e0a1: ; 1e0a1 (7:60a1)
 	ld [$cd3b], a
 	ret
 
-Route6GateTexts: ; 1e0b8 (7:60b8)
-	dw Route6GateText1, Route6GateText2, Route6GateText3
+Route6GateTextPointers: ; 1e0b8 (7:60b8)
+	dw Route6GateText1
+	dw Route6GateText2
+	dw Route6GateText3
 
 Route6GateObject: ; 0x1e0be (size=42)
 	db $a ; border tile
@@ -42394,7 +42792,7 @@ Route6GateBlocks: ; 1e0e8 (7:60e8)
 Route7Gate_h: ; 0x1e0f4 to 0x1e100 (12 bytes) (bank=7) (id=76)
 	db $0c ; tileset
 	db ROUTE_7_GATE_HEIGHT, ROUTE_7_GATE_WIDTH ; dimensions (y, x)
-	dw Route7GateBlocks, Route7GateTexts, Route7GateScript ; blocks, texts, scripts
+	dw Route7GateBlocks, Route7GateTextPointers, Route7GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route7GateObject ; objects
@@ -42402,11 +42800,11 @@ Route7Gate_h: ; 0x1e0f4 to 0x1e100 (12 bytes) (bank=7) (id=76)
 Route7GateScript: ; 1e100 (7:6100)
 	call EnableAutoTextBoxDrawing
 	ld a, [W_ROUTE7GATECURSCRIPT]
-	ld hl, Route7GateScripts
+	ld hl, Route7GateScriptPointers
 	call CallFunctionInTable
 	ret
 
-Route7GateScripts: ; 1e10d (7:610d)
+Route7GateScriptPointers: ; 1e10d (7:610d)
 	dw Route7GateScript0
 	dw Route7GateScript1
 
@@ -42426,7 +42824,7 @@ Route7GateScript0: ; 1e128 (7:6128)
 	ld a, [$d728]
 	bit 6, a
 	ret nz
-	ld hl, Coords1e167
+	ld hl, CoordsData_1e167
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $8
@@ -42454,8 +42852,7 @@ Route7GateScript0: ; 1e128 (7:6128)
 	set 6, [hl]
 	ret
 
-
-Coords1e167: ; 1e167 (7:6167)
+CoordsData_1e167: ; 1e167 (7:6167)
 	db 3,3
 	db 4,3
 	db $ff
@@ -42471,8 +42868,10 @@ Route7GateScript1: ; 1e16c (7:616c)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Route7GateTexts: ; 1e17f (7:617f)
-	dw Route7GateText1, Route7GateText2, Route7GateText3
+Route7GateTextPointers: ; 1e17f (7:617f)
+	dw Route7GateText1
+	dw Route7GateText2
+	dw Route7GateText3
 
 Route7GateObject: ; 0x1e185 (size=42)
 	db $a ; border tile
@@ -42500,18 +42899,18 @@ Route7GateBlocks: ; 1e1af (7:61af)
 Route8Gate_h: ; 0x1e1bb to 0x1e1c7 (12 bytes) (bank=7) (id=79)
 	db $0c ; tileset
 	db ROUTE_8_GATE_HEIGHT, ROUTE_8_GATE_WIDTH ; dimensions (y, x)
-	dw Route8GateBlocks, Route8GateTexts, Route8GateScript ; blocks, texts, scripts
+	dw Route8GateBlocks, Route8GateTextPointers, Route8GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route8GateObject ; objects
 
 Route8GateScript: ; 1e1c7 (7:61c7)
 	call EnableAutoTextBoxDrawing
-	ld hl, Route8GateScripts
+	ld hl, Route8GateScriptPointers
 	ld a, [W_ROUTE8GATECURSCRIPT]
 	jp CallFunctionInTable
 
-Route8GateScripts: ; 1e1d3 (7:61d3)
+Route8GateScriptPointers: ; 1e1d3 (7:61d3)
 	dw Route8GateScript0
 	dw Route8GateScript1
 
@@ -42531,7 +42930,7 @@ Route8GateScript0: ; 1e1ee (7:61ee)
 	ld a, [$d728]
 	bit 6, a
 	ret nz
-	ld hl, Coords1e22c
+	ld hl, CoordsData_1e22c
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $2
@@ -42558,7 +42957,7 @@ Route8GateScript0: ; 1e1ee (7:61ee)
 	ld [$ff00+$8c], a
 	jp DisplayTextID
 
-Coords1e22c: ; 1e22c (7:622c)
+CoordsData_1e22c: ; 1e22c (7:622c)
 	db 3,2
 	db 4,2
 	db $ff
@@ -42573,8 +42972,10 @@ Route8GateScript1: ; 1e231 (7:6231)
 	ld [W_ROUTE8GATECURSCRIPT], a
 	ret
 
-Route8GateTexts: ; 1e241 (7:6241)
-	dw Route8GateText1, Route8GateText2, Route8GateText3
+Route8GateTextPointers: ; 1e241 (7:6241)
+	dw Route8GateText1
+	dw Route8GateText2
+	dw Route8GateText3
 
 Route8GateObject: ; 0x1e247 (size=42)
 	db $a ; border tile
@@ -42602,7 +43003,7 @@ Route8GateBlocks: ; 1e271 (7:6271)
 UndergroundPathEntranceRoute8_h: ; 0x1e27d to 0x1e289 (12 bytes) (bank=7) (id=80)
 	db $0c ; tileset
 	db PATH_ENTRANCE_ROUTE_8_HEIGHT, PATH_ENTRANCE_ROUTE_8_WIDTH ; dimensions (y, x)
-	dw UndergroundPathEntranceRoute8Blocks, UndergroundPathEntranceRoute8Texts, UndergroundPathEntranceRoute8Script ; blocks, texts, scripts
+	dw UndergroundPathEntranceRoute8Blocks, UndergroundPathEntranceRoute8TextPointers, UndergroundPathEntranceRoute8Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UndergroundPathEntranceRoute8Object ; objects
@@ -42612,7 +43013,7 @@ UndergroundPathEntranceRoute8Script: ; 1e289 (7:6289)
 	ld [$d365], a
 	jp EnableAutoTextBoxDrawing
 
-UndergroundPathEntranceRoute8Texts: ; 1e291 (7:6291)
+UndergroundPathEntranceRoute8TextPointers: ; 1e291 (7:6291)
 	dw UndergroundPathEntranceRoute8Text1
 
 ;XXX wtf? syntax error
@@ -42642,7 +43043,7 @@ UndergroundPathEntranceRoute8Object: ; 0x1e298 (size=34)
 PowerPlant_h: ; 0x1e2ba to 0x1e2c6 (12 bytes) (bank=7) (id=83)
 	db $16 ; tileset
 	db POWER_PLANT_HEIGHT, POWER_PLANT_WIDTH ; dimensions (y, x)
-	dw PowerPlantBlocks, PowerPlantTexts, PowerPlantScript ; blocks, texts, scripts
+	dw PowerPlantBlocks, PowerPlantTextPointers, PowerPlantScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PowerPlantObject ; objects
@@ -42661,8 +43062,21 @@ PowerPlantScriptPointers: ; 1e2d9 (7:62d9)
 	dw Func_324c
 	dw EndTrainerBattle
 
-PowerPlantTexts: ; 1e2df (7:62df)
-	dw PowerPlantText1, PowerPlantText2, PowerPlantText3, PowerPlantText4, PowerPlantText5, PowerPlantText6, PowerPlantText7, PowerPlantText8, PowerPlantText9, Predef5CText, Predef5CText, Predef5CText, Predef5CText, Predef5CText
+PowerPlantTextPointers: ; 1e2df (7:62df)
+	dw PowerPlantText1
+	dw PowerPlantText2
+	dw PowerPlantText3
+	dw PowerPlantText4
+	dw PowerPlantText5
+	dw PowerPlantText6
+	dw PowerPlantText7
+	dw PowerPlantText8
+	dw PowerPlantText9
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 PowerPlantTrainerHeaders: ; 1e2fb (7:62fb)
 PowerPlantTrainerHeader0: ; 1e2fb (7:62fb)
@@ -42848,7 +43262,7 @@ PowerPlantBlocks: ; 1e446 (7:6446)
 DiglettsCaveEntranceRoute11_h: ; 0x1e5ae to 0x1e5ba (12 bytes) (bank=7) (id=85)
 	db $11 ; tileset
 	db DIGLETTS_CAVE_ENTRANCE_HEIGHT, DIGLETTS_CAVE_ENTRANCE_WIDTH ; dimensions (y, x)
-	dw DiglettsCaveEntranceRoute11Blocks, DiglettsCaveEntranceRoute11Texts, DiglettsCaveEntranceRoute11Script ; blocks, texts, scripts
+	dw DiglettsCaveEntranceRoute11Blocks, DiglettsCaveEntranceRoute11TextPointers, DiglettsCaveEntranceRoute11Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw DiglettsCaveEntranceRoute11Object ; objects
@@ -42859,7 +43273,7 @@ DiglettsCaveEntranceRoute11Script: ; 1e5ba (7:65ba)
 	ld [$d365], a
 	ret
 
-DiglettsCaveEntranceRoute11Texts: ; 1e5c3 (7:65c3)
+DiglettsCaveEntranceRoute11TextPointers: ; 1e5c3 (7:65c3)
 	dw DiglettsCaveEntranceRoute11Text1
 
 ; XXX wtf? syntax error
@@ -42889,7 +43303,7 @@ DiglettsCaveEntranceRoute11Object: ; 0x1e5ca (size=34)
 Route16House_h: ; 0x1e5ec to 0x1e5f8 (12 bytes) (bank=7) (id=188)
 	db $08 ; tileset
 	db ROUTE_16_HOUSE_HEIGHT, ROUTE_16_HOUSE_WIDTH ; dimensions (y, x)
-	dw Route16HouseBlocks, Route16HouseTexts, Route16HouseScript ; blocks, texts, scripts
+	dw Route16HouseBlocks, Route16HouseTextPointers, Route16HouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route16HouseObject ; objects
@@ -42897,8 +43311,9 @@ Route16House_h: ; 0x1e5ec to 0x1e5f8 (12 bytes) (bank=7) (id=188)
 Route16HouseScript: ; 1e5f8 (7:65f8)
 	jp EnableAutoTextBoxDrawing
 
-Route16HouseTexts: ; 1e5fb (7:65fb)
-	dw Route16HouseText1, Route16HouseText2
+Route16HouseTextPointers: ; 1e5fb (7:65fb)
+	dw Route16HouseText1
+	dw Route16HouseText2
 
 Route16HouseText1: ; 1e5ff (7:65ff)
 	db $08 ; asm
@@ -42970,14 +43385,14 @@ Route16HouseObject: ; 0x1e657 (size=32)
 Route22Gate_h: ; 0x1e677 to 0x1e683 (12 bytes) (bank=7) (id=193)
 	db $0c ; tileset
 	db ROUTE_22_GATE_HEIGHT, ROUTE_22_GATE_WIDTH ; dimensions (y, x)
-	dw Route22GateBlocks, Route22GateTexts, Route22GateScript ; blocks, texts, scripts
+	dw Route22GateBlocks, Route22GateTextPointers, Route22GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route22GateObject ; objects
 
 Route22GateScript: ; 1e683 (7:6683)
 	call EnableAutoTextBoxDrawing
-	ld hl, Route22GateScripts
+	ld hl, Route22GateScriptPointers
 	ld a, [W_ROUTE22GATECURSCRIPT]
 	call CallFunctionInTable
 	ld a, [$d361]
@@ -42989,8 +43404,10 @@ Route22GateScript: ; 1e683 (7:6683)
 	ld [$d365], a
 	ret
 
-Route22GateScripts: ; 1e69e (7:669e)
-	dw Route22GateScript0, Route22GateScript1, Route22GateScript2
+Route22GateScriptPointers: ; 1e69e (7:669e)
+	dw Route22GateScript0
+	dw Route22GateScript1
+	dw Route22GateScript2
 
 Route22GateScript0: ; 1e6a4 (7:66a4)
 	ld hl, Route22GateScriptCoords
@@ -43028,7 +43445,7 @@ Route22GateScript1: ; 1e6cd (7:66cd)
 Route22GateScript2: ; 1e6de (7:66de)
 	ret
 
-Route22GateTexts: ; 1e6df (7:66df)
+Route22GateTextPointers: ; 1e6df (7:66df)
 	dw Route22GateText1
 
 Route22GateText1: ; 1e6e1 (7:66e1)
@@ -43092,7 +43509,7 @@ Route22GateBlocks: ; 1e74a (7:674a)
 BillsHouse_h: ; 0x1e75e to 0x1e76a (12 bytes) (bank=7) (id=88)
 	db $10 ; tileset
 	db BILLS_HOUSE_HEIGHT, BILLS_HOUSE_WIDTH ; dimensions (y, x)
-	dw BillsHouseBlocks, BillsHouseTexts, BillsHouseScript ; blocks, texts, scripts
+	dw BillsHouseBlocks, BillsHouseTextPointers, BillsHouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw BillsHouseObject ; objects
@@ -43100,10 +43517,10 @@ BillsHouse_h: ; 0x1e75e to 0x1e76a (12 bytes) (bank=7) (id=88)
 BillsHouseScript: ; 1e76a (7:676a)
 	call EnableAutoTextBoxDrawing
 	ld a, [W_BILLSHOUSECURSCRIPT]
-	ld hl, BillsHouseScripts
+	ld hl, BillsHouseScriptPointers
 	jp CallFunctionInTable
 
-BillsHouseScripts: ; 1e776 (7:6776)
+BillsHouseScriptPointers: ; 1e776 (7:6776)
 	dw BillsHouseScript0
 	dw BillsHouseScript1
 	dw BillsHouseScript2
@@ -43117,9 +43534,9 @@ BillsHouseScript0: ; 1e782 (7:6782)
 BillsHouseScript1: ; 1e783 (7:6783)
 	ld a, [$c109]
 	and a
-	ld de, MovementData1e79c
+	ld de, MovementData_1e79c
 	jr nz, .asm_1e78f ; 0x1e78a $3
-	ld de, MovementData1e7a0
+	ld de, MovementData_1e7a0
 .asm_1e78f
 	ld a, $1
 	ld [$ff00+$8c], a
@@ -43128,11 +43545,11 @@ BillsHouseScript1: ; 1e783 (7:6783)
 	ld [W_BILLSHOUSECURSCRIPT], a
 	ret
 
-MovementData1e79c: ; 1e79c (7:679c)
-	db $40,$40,$40,$ff
+MovementData_1e79c: ; 1e79c (7:679c)
+	db $40,$40,$40,$FF
 
-MovementData1e7a0: ; 1e7a0 (7:67a0)
-	db $c0,$40,$40,$80,$40,$ff
+MovementData_1e7a0: ; 1e7a0 (7:67a0)
+	db $C0,$40,$40,$80,$40,$FF
 
 BillsHouseScript2: ; 1e7a6 (7:67a6)
 	ld a, [$d730]
@@ -43175,14 +43592,14 @@ BillsHouseScript3: ; 1e7c5 (7:67c5)
 	call DelayFrames
 	ld a, $2
 	ld [$ff00+$8c], a
-	ld de, MovementData1e807
+	ld de, MovementData_1e807
 	call MoveSprite
 	ld a, $4
 	ld [W_BILLSHOUSECURSCRIPT], a
 	ret
 
-MovementData1e807: ; 1e807 (7:6807)
-	db $00,$c0,$c0,$c0,$00,$ff
+MovementData_1e807: ; 1e807 (7:6807)
+	db $00,$C0,$C0,$C0,$00,$FF
 
 BillsHouseScript4: ; 1e80d (7:680d)
 	ld a, [$d730]
@@ -43206,8 +43623,11 @@ BillsHouseScript5: ; 1e827 (7:6827)
 	ld [W_BILLSHOUSECURSCRIPT], a
 	ret
 
-BillsHouseTexts: ; 1e834 (7:6834)
-	dw BillsHouseText1, BillsHouseText2, BillsHouseText3, BillsHouseText4
+BillsHouseTextPointers: ; 1e834 (7:6834)
+	dw BillsHouseText1
+	dw BillsHouseText2
+	dw BillsHouseText3
+	dw BillsHouseText4
 
 BillsHouseText4: ; 1e83c (7:683c)
 	db $fd
@@ -44517,63 +44937,51 @@ StatsCancelPCText: ; 217dc (8:57dc)
 
 SwitchOnText: ; 0x217e9
 	TX_FAR _SwitchOnText
-	db $50
-; 0x217e9 + 5 bytes
+	db "@"
 
 WhatText: ; 0x217ee
 	TX_FAR _WhatText
-	db $50
-; 0x217ee + 5 bytes
+	db "@"
 
 DepositWhichMonText: ; 0x217f3
 	TX_FAR _DepositWhichMonText
-	db $50
-; 0x217f3 + 5 bytes
+	db "@"
 
 MonWasStoredText: ; 0x217f8
 	TX_FAR _MonWasStoredText
-	db $50
-; 0x217f8 + 5 bytes
+	db "@"
 
 CantDepositLastMonText: ; 0x217fd
 	TX_FAR _CantDepositLastMonText
-	db $50
-; 0x217fd + 5 bytes
+	db "@"
 
 BoxFullText: ; 0x21802
 	TX_FAR _BoxFullText
-	db $50
-; 0x21802 + 5 bytes
+	db "@"
 
 MonIsTakenOutText: ; 0x21807
 	TX_FAR _MonIsTakenOutText
-	db $50
-; 0x21807 + 5 bytes
+	db "@"
 
 NoMonText: ; 0x2180c
 	TX_FAR _NoMonText
-	db $50
-; 0x2180c + 5 bytes
+	db "@"
 
 CantTakeMonText: ; 0x21811
 	TX_FAR _CantTakeMonText
-	db $50
-; 0x21811 + 5 bytes
+	db "@"
 
 ReleaseWhichMonText: ; 0x21816
 	TX_FAR _ReleaseWhichMonText
-	db $50
-; 0x21816 + 5 bytes
+	db "@"
 
 OnceReleasedText: ; 0x2181b
 	TX_FAR _OnceReleasedText
-	db $50
-; 0x2181b + 5 bytes
+	db "@"
 
 MonWasReleasedText: ; 0x21820
 	TX_FAR _MonWasReleasedText
-	db $50
-; 0x21820 + 5 bytes
+	db "@"
 
 	ld a, [$ff00+$aa]
 	cp $1
@@ -47198,10 +47606,10 @@ ScalePixelsByTwo: ; 2fe97 (b:7e97)
 
 ; repeats each input bit twice
 DuplicateBitsTable: ; 2fea8 (b:7ea8)
-db $00, $03, $0c, $0f
-db $30, $33, $3c, $3f
-db $c0, $c3, $cc, $cf
-db $f0, $f3, $fc, $ff
+	db $00, $03, $0c, $0f
+	db $30, $33, $3c, $3f
+	db $c0, $c3, $cc, $cf
+	db $f0, $f3, $fc, $ff
 
 Func_2feb8 ; 0x2feb8
 	xor a
@@ -47752,7 +48160,58 @@ IF _BLUE
 	INCBIN "gfx/blue/slotmachine1.2bpp"
 ENDC
 
-INCBIN "baserom.gbc",$37ca1,$37d41 - $37ca1
+Func_37ca1: ; 37ca1 (d:7ca1)
+	ld hl, $ccd3
+	ld a, [$cd38]
+	dec a
+	ld [$cd38], a
+	ld d, $0
+	ld e, a
+	add hl, de
+	ld d, h
+	ld e, l
+	ld hl, Unknown_37ce6
+	ld a, [$d12f]
+	add a
+	ld b, $0
+	ld c, a
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [W_YCOORD]
+	ld b, a
+	ld a, [W_XCOORD]
+	ld c, a
+.asm_37cc7
+	ld a, [hli]
+	cp b
+	jr nz, .asm_37ce1
+	ld a, [hli]
+	cp c
+	jr nz, .asm_37ce2
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+.asm_37cd2
+	ld a, [hli]
+	cp $ff
+	ret z
+	ld [de], a
+	inc de
+	ld a, [$cd38]
+	inc a
+	ld [$cd38], a
+	jr .asm_37cd2
+.asm_37ce1
+	inc hl
+.asm_37ce2
+	inc hl
+	inc hl
+	jr .asm_37cc7
+
+Unknown_37ce6: ; 37ce6 (d:7ce6)
+INCBIN "baserom.gbc",$37ce6,$37d41 - $37ce6
 
 _Multiply: ; 37d41 (d:7d41)
 	ld a, $8
@@ -47917,172 +48376,171 @@ SECTION "bankE",ROMX,BANK[$E]
 Moves: ; 38000 (e:4000)
 ; characteristics of each move
 ; animation, effect, power, type, accuracy, PP
-db POUND       ,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,35
-db KARATE_CHOP ,NO_ADDITIONAL_EFFECT      ,$32,NORMAL,  $FF,25
-db DOUBLESLAP  ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL,  $D8,10
-db COMET_PUNCH ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL,  $D8,15
-db MEGA_PUNCH  ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $D8,20
-db PAY_DAY     ,PAY_DAY_EFFECT            ,$28,NORMAL,  $FF,20
-db FIRE_PUNCH  ,BURN_SIDE_EFFECT1         ,$4B,FIRE,    $FF,15
-db ICE_PUNCH   ,FREEZE_SIDE_EFFECT        ,$4B,ICE,     $FF,15
-db THUNDERPUNCH,PARALYZE_SIDE_EFFECT1     ,$4B,ELECTRIC,$FF,15
-db SCRATCH     ,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,35
-db VICEGRIP    ,NO_ADDITIONAL_EFFECT      ,$37,NORMAL,  $FF,30
-db GUILLOTINE  ,OHKO_EFFECT               ,$01,NORMAL,  $4C,5
-db RAZOR_WIND  ,CHARGE_EFFECT             ,$50,NORMAL,  $BF,10
-db SWORDS_DANCE,ATTACK_UP2_EFFECT         ,$00,NORMAL,  $FF,30
-db CUT         ,NO_ADDITIONAL_EFFECT      ,$32,NORMAL,  $F2,30
-db GUST        ,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,35
-db WING_ATTACK ,NO_ADDITIONAL_EFFECT      ,$23,FLYING,  $FF,35
-db WHIRLWIND   ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL,  $D8,20
-db FLY         ,FLY_EFFECT                ,$46,FLYING,  $F2,15
-db BIND        ,TRAPPING_EFFECT           ,$0F,NORMAL,  $BF,20
-db SLAM        ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $BF,20
-db VINE_WHIP   ,NO_ADDITIONAL_EFFECT      ,$23,GRASS,   $FF,10
-db STOMP       ,FLINCH_SIDE_EFFECT2       ,$41,NORMAL,  $FF,20
-db DOUBLE_KICK ,ATTACK_TWICE_EFFECT       ,$1E,FIGHTING,$FF,30
-db MEGA_KICK   ,NO_ADDITIONAL_EFFECT      ,$78,NORMAL,  $BF,5
-db JUMP_KICK   ,JUMP_KICK_EFFECT          ,$46,FIGHTING,$F2,25
-db ROLLING_KICK,FLINCH_SIDE_EFFECT2       ,$3C,FIGHTING,$D8,15
-db SAND_ATTACK ,ACCURACY_DOWN1_EFFECT     ,$00,NORMAL,  $FF,15
-db HEADBUTT    ,FLINCH_SIDE_EFFECT2       ,$46,NORMAL,  $FF,15
-db HORN_ATTACK ,NO_ADDITIONAL_EFFECT      ,$41,NORMAL,  $FF,25
-db FURY_ATTACK ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL,  $D8,20
-db HORN_DRILL  ,OHKO_EFFECT               ,$01,NORMAL,  $4C,5
-db TACKLE      ,NO_ADDITIONAL_EFFECT      ,$23,NORMAL,  $F2,35
-db BODY_SLAM   ,PARALYZE_SIDE_EFFECT2     ,$55,NORMAL,  $FF,15
-db WRAP        ,TRAPPING_EFFECT           ,$0F,NORMAL,  $D8,20
-db TAKE_DOWN   ,RECOIL_EFFECT             ,$5A,NORMAL,  $D8,20
-db THRASH      ,THRASH_PETAL_DANCE_EFFECT ,$5A,NORMAL,  $FF,20
-db DOUBLE_EDGE ,RECOIL_EFFECT             ,$64,NORMAL,  $FF,15
-db TAIL_WHIP   ,DEFENSE_DOWN1_EFFECT      ,$00,NORMAL,  $FF,30
-db POISON_STING,POISON_SIDE_EFFECT1       ,$0F,POISON,  $FF,35
-db TWINEEDLE   ,TWINEEDLE_EFFECT          ,$19,BUG,     $FF,20
-db PIN_MISSILE ,TWO_TO_FIVE_ATTACKS_EFFECT,$0E,BUG,     $D8,20
-db LEER        ,DEFENSE_DOWN1_EFFECT      ,$00,NORMAL,  $FF,30
-db BITE        ,FLINCH_SIDE_EFFECT1       ,$3C,NORMAL,  $FF,25
-db GROWL       ,ATTACK_DOWN1_EFFECT       ,$00,NORMAL,  $FF,40
-db ROAR        ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL,  $FF,20
-db SING        ,SLEEP_EFFECT              ,$00,NORMAL,  $8C,15
-db SUPERSONIC  ,CONFUSION_EFFECT          ,$00,NORMAL,  $8C,20
-db SONICBOOM   ,SPECIAL_DAMAGE_EFFECT     ,$01,NORMAL,  $E5,20
-db DISABLE     ,DISABLE_EFFECT            ,$00,NORMAL,  $8C,20
-db ACID        ,DEFENSE_DOWN_SIDE_EFFECT  ,$28,POISON,  $FF,30
-db EMBER       ,BURN_SIDE_EFFECT1         ,$28,FIRE,    $FF,25
-db FLAMETHROWER,BURN_SIDE_EFFECT1         ,$5F,FIRE,    $FF,15
-db MIST        ,MIST_EFFECT               ,$00,ICE,     $FF,30
-db WATER_GUN   ,NO_ADDITIONAL_EFFECT      ,$28,WATER,   $FF,25
-db HYDRO_PUMP  ,NO_ADDITIONAL_EFFECT      ,$78,WATER,   $CC,5
-db SURF        ,NO_ADDITIONAL_EFFECT      ,$5F,WATER,   $FF,15
-db ICE_BEAM    ,FREEZE_SIDE_EFFECT        ,$5F,ICE,     $FF,10
-db BLIZZARD    ,FREEZE_SIDE_EFFECT        ,$78,ICE,     $E5,5
-db PSYBEAM     ,CONFUSION_SIDE_EFFECT     ,$41,PSYCHIC, $FF,20
-db BUBBLEBEAM  ,SPEED_DOWN_SIDE_EFFECT    ,$41,WATER,   $FF,20
-db AURORA_BEAM ,ATTACK_DOWN_SIDE_EFFECT   ,$41,ICE,     $FF,20
-db HYPER_BEAM  ,HYPER_BEAM_EFFECT         ,$96,NORMAL,  $E5,5
-db PECK        ,NO_ADDITIONAL_EFFECT      ,$23,FLYING,  $FF,35
-db DRILL_PECK  ,NO_ADDITIONAL_EFFECT      ,$50,FLYING,  $FF,20
-db SUBMISSION  ,RECOIL_EFFECT             ,$50,FIGHTING,$CC,25
-db LOW_KICK    ,FLINCH_SIDE_EFFECT2       ,$32,FIGHTING,$E5,20
-db COUNTER     ,NO_ADDITIONAL_EFFECT      ,$01,FIGHTING,$FF,20
-db SEISMIC_TOSS,SPECIAL_DAMAGE_EFFECT     ,$01,FIGHTING,$FF,20
-db STRENGTH    ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $FF,15
-db ABSORB      ,DRAIN_HP_EFFECT           ,$14,GRASS,   $FF,20
-db MEGA_DRAIN  ,DRAIN_HP_EFFECT           ,$28,GRASS,   $FF,10
-db LEECH_SEED  ,LEECH_SEED_EFFECT         ,$00,GRASS,   $E5,10
-db GROWTH      ,SPECIAL_UP1_EFFECT        ,$00,NORMAL,  $FF,40
-db RAZOR_LEAF  ,NO_ADDITIONAL_EFFECT      ,$37,GRASS,   $F2,25
-db SOLARBEAM   ,CHARGE_EFFECT             ,$78,GRASS,   $FF,10
-db POISONPOWDER,POISON_EFFECT             ,$00,POISON,  $BF,35
-db STUN_SPORE  ,PARALYZE_EFFECT           ,$00,GRASS,   $BF,30
-db SLEEP_POWDER,SLEEP_EFFECT              ,$00,GRASS,   $BF,15
-db PETAL_DANCE ,THRASH_PETAL_DANCE_EFFECT ,$46,GRASS,   $FF,20
-db STRING_SHOT ,SPEED_DOWN1_EFFECT        ,$00,BUG,     $F2,40
-db DRAGON_RAGE ,SPECIAL_DAMAGE_EFFECT     ,$01,DRAGON,  $FF,10
-db FIRE_SPIN   ,TRAPPING_EFFECT           ,$0F,FIRE,    $B2,15
-db THUNDERSHOCK,PARALYZE_SIDE_EFFECT1     ,$28,ELECTRIC,$FF,30
-db THUNDERBOLT ,PARALYZE_SIDE_EFFECT1     ,$5F,ELECTRIC,$FF,15
-db THUNDER_WAVE,PARALYZE_EFFECT           ,$00,ELECTRIC,$FF,20
-db THUNDER     ,PARALYZE_SIDE_EFFECT1     ,$78,ELECTRIC,$B2,10
-db ROCK_THROW  ,NO_ADDITIONAL_EFFECT      ,$32,ROCK,    $A5,15
-db EARTHQUAKE  ,NO_ADDITIONAL_EFFECT      ,$64,GROUND,  $FF,10
-db FISSURE     ,OHKO_EFFECT               ,$01,GROUND,  $4C,5
-db DIG         ,CHARGE_EFFECT             ,$64,GROUND,  $FF,10
-db TOXIC       ,POISON_EFFECT             ,$00,POISON,  $D8,10
-db CONFUSION   ,CONFUSION_SIDE_EFFECT     ,$32,PSYCHIC, $FF,25
-db PSYCHIC_M   ,SPECIAL_DOWN_SIDE_EFFECT  ,$5A,PSYCHIC, $FF,10
-db HYPNOSIS    ,SLEEP_EFFECT              ,$00,PSYCHIC, $99,20
-db MEDITATE    ,ATTACK_UP1_EFFECT         ,$00,PSYCHIC, $FF,40
-db AGILITY     ,SPEED_UP2_EFFECT          ,$00,PSYCHIC, $FF,30
-db QUICK_ATTACK,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,30
-db RAGE        ,RAGE_EFFECT               ,$14,NORMAL,  $FF,20
-db TELEPORT    ,SWITCH_AND_TELEPORT_EFFECT,$00,PSYCHIC, $FF,20
-db NIGHT_SHADE ,SPECIAL_DAMAGE_EFFECT     ,$00,GHOST,   $FF,15
-db MIMIC       ,MIMIC_EFFECT              ,$00,NORMAL,  $FF,10
-db SCREECH     ,DEFENSE_DOWN2_EFFECT      ,$00,NORMAL,  $D8,40
-db DOUBLE_TEAM ,EVASION_UP1_EFFECT        ,$00,NORMAL,  $FF,15
-db RECOVER     ,HEAL_EFFECT               ,$00,NORMAL,  $FF,20
-db HARDEN      ,DEFENSE_UP1_EFFECT        ,$00,NORMAL,  $FF,30
-db MINIMIZE    ,EVASION_UP1_EFFECT        ,$00,NORMAL,  $FF,20
-db SMOKESCREEN ,ACCURACY_DOWN1_EFFECT     ,$00,NORMAL,  $FF,20
-db CONFUSE_RAY ,CONFUSION_EFFECT          ,$00,GHOST,   $FF,10
-db WITHDRAW    ,DEFENSE_UP1_EFFECT        ,$00,WATER,   $FF,40
-db DEFENSE_CURL,DEFENSE_UP1_EFFECT        ,$00,NORMAL,  $FF,40
-db BARRIER     ,DEFENSE_UP2_EFFECT        ,$00,PSYCHIC, $FF,30
-db LIGHT_SCREEN,LIGHT_SCREEN_EFFECT       ,$00,PSYCHIC, $FF,30
-db HAZE        ,HAZE_EFFECT               ,$00,ICE,     $FF,30
-db REFLECT     ,REFLECT_EFFECT            ,$00,PSYCHIC, $FF,20
-db FOCUS_ENERGY,FOCUS_ENERGY_EFFECT       ,$00,NORMAL,  $FF,30
-db BIDE        ,BIDE_EFFECT               ,$00,NORMAL,  $FF,10
-db METRONOME   ,METRONOME_EFFECT          ,$00,NORMAL,  $FF,10
-db MIRROR_MOVE ,MIRROR_MOVE_EFFECT        ,$00,FLYING,  $FF,20
-db SELFDESTRUCT,EXPLODE_EFFECT            ,$82,NORMAL,  $FF,5
-db EGG_BOMB    ,NO_ADDITIONAL_EFFECT      ,$64,NORMAL,  $BF,10
-db LICK        ,PARALYZE_SIDE_EFFECT2     ,$14,GHOST,   $FF,30
-db SMOG        ,POISON_SIDE_EFFECT2       ,$14,POISON,  $B2,20
-db SLUDGE      ,POISON_SIDE_EFFECT2       ,$41,POISON,  $FF,20
-db BONE_CLUB   ,FLINCH_SIDE_EFFECT1       ,$41,GROUND,  $D8,20
-db FIRE_BLAST  ,BURN_SIDE_EFFECT2         ,$78,FIRE,    $D8,5
-db WATERFALL   ,NO_ADDITIONAL_EFFECT      ,$50,WATER,   $FF,15
-db CLAMP       ,TRAPPING_EFFECT           ,$23,WATER,   $BF,10
-db SWIFT       ,SWIFT_EFFECT              ,$3C,NORMAL,  $FF,20
-db SKULL_BASH  ,CHARGE_EFFECT             ,$64,NORMAL,  $FF,15
-db SPIKE_CANNON,TWO_TO_FIVE_ATTACKS_EFFECT,$14,NORMAL,  $FF,15
-db CONSTRICT   ,SPEED_DOWN_SIDE_EFFECT    ,$0A,NORMAL,  $FF,35
-db AMNESIA     ,SPECIAL_UP2_EFFECT        ,$00,PSYCHIC, $FF,20
-db KINESIS     ,ACCURACY_DOWN1_EFFECT     ,$00,PSYCHIC, $CC,15
-db SOFTBOILED  ,HEAL_EFFECT               ,$00,NORMAL,  $FF,10
-db HI_JUMP_KICK,JUMP_KICK_EFFECT          ,$55,FIGHTING,$E5,20
-db GLARE       ,PARALYZE_EFFECT           ,$00,NORMAL,  $BF,30
-db DREAM_EATER ,DREAM_EATER_EFFECT        ,$64,PSYCHIC, $FF,15
-db POISON_GAS  ,POISON_EFFECT             ,$00,POISON,  $8C,40
-db BARRAGE     ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL,  $D8,20
-db LEECH_LIFE  ,DRAIN_HP_EFFECT           ,$14,BUG,     $FF,15
-db LOVELY_KISS ,SLEEP_EFFECT              ,$00,NORMAL,  $BF,10
-db SKY_ATTACK  ,CHARGE_EFFECT             ,$8C,FLYING,  $E5,5
-db TRANSFORM   ,TRANSFORM_EFFECT          ,$00,NORMAL,  $FF,10
-db BUBBLE      ,SPEED_DOWN_SIDE_EFFECT    ,$14,WATER,   $FF,30
-db DIZZY_PUNCH ,NO_ADDITIONAL_EFFECT      ,$46,NORMAL,  $FF,10
-db SPORE       ,SLEEP_EFFECT              ,$00,GRASS,   $FF,15
-db FLASH       ,ACCURACY_DOWN1_EFFECT     ,$00,NORMAL,  $B2,20
-db PSYWAVE     ,SPECIAL_DAMAGE_EFFECT     ,$01,PSYCHIC, $CC,15
-db SPLASH      ,SPLASH_EFFECT             ,$00,NORMAL,  $FF,40
-db ACID_ARMOR  ,DEFENSE_UP2_EFFECT        ,$00,POISON,  $FF,40
-db CRABHAMMER  ,NO_ADDITIONAL_EFFECT      ,$5A,WATER,   $D8,10
-db EXPLOSION   ,EXPLODE_EFFECT            ,$AA,NORMAL,  $FF,5
-db FURY_SWIPES ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL,  $CC,15
-db BONEMERANG  ,ATTACK_TWICE_EFFECT       ,$32,GROUND,  $E5,10
-db REST        ,HEAL_EFFECT               ,$00,PSYCHIC, $FF,10
-db ROCK_SLIDE  ,NO_ADDITIONAL_EFFECT      ,$4B,ROCK,    $E5,10
-db HYPER_FANG  ,FLINCH_SIDE_EFFECT1       ,$50,NORMAL,  $E5,15
-db SHARPEN     ,ATTACK_UP1_EFFECT         ,$00,NORMAL,  $FF,30
-db CONVERSION  ,CONVERSION_EFFECT         ,$00,NORMAL,  $FF,30
-db TRI_ATTACK  ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $FF,10
-db SUPER_FANG  ,SUPER_FANG_EFFECT         ,$01,NORMAL,  $E5,10
-db SLASH       ,NO_ADDITIONAL_EFFECT      ,$46,NORMAL,  $FF,20
-db SUBSTITUTE  ,SUBSTITUTE_EFFECT         ,$00,NORMAL,  $FF,10
-db STRUGGLE    ,RECOIL_EFFECT             ,$32,NORMAL,  $FF,10
-
+	db POUND       ,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,35
+	db KARATE_CHOP ,NO_ADDITIONAL_EFFECT      ,$32,NORMAL,  $FF,25
+	db DOUBLESLAP  ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL,  $D8,10
+	db COMET_PUNCH ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL,  $D8,15
+	db MEGA_PUNCH  ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $D8,20
+	db PAY_DAY     ,PAY_DAY_EFFECT            ,$28,NORMAL,  $FF,20
+	db FIRE_PUNCH  ,BURN_SIDE_EFFECT1         ,$4B,FIRE,    $FF,15
+	db ICE_PUNCH   ,FREEZE_SIDE_EFFECT        ,$4B,ICE,     $FF,15
+	db THUNDERPUNCH,PARALYZE_SIDE_EFFECT1     ,$4B,ELECTRIC,$FF,15
+	db SCRATCH     ,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,35
+	db VICEGRIP    ,NO_ADDITIONAL_EFFECT      ,$37,NORMAL,  $FF,30
+	db GUILLOTINE  ,OHKO_EFFECT               ,$01,NORMAL,  $4C,5
+	db RAZOR_WIND  ,CHARGE_EFFECT             ,$50,NORMAL,  $BF,10
+	db SWORDS_DANCE,ATTACK_UP2_EFFECT         ,$00,NORMAL,  $FF,30
+	db CUT         ,NO_ADDITIONAL_EFFECT      ,$32,NORMAL,  $F2,30
+	db GUST        ,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,35
+	db WING_ATTACK ,NO_ADDITIONAL_EFFECT      ,$23,FLYING,  $FF,35
+	db WHIRLWIND   ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL,  $D8,20
+	db FLY         ,FLY_EFFECT                ,$46,FLYING,  $F2,15
+	db BIND        ,TRAPPING_EFFECT           ,$0F,NORMAL,  $BF,20
+	db SLAM        ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $BF,20
+	db VINE_WHIP   ,NO_ADDITIONAL_EFFECT      ,$23,GRASS,   $FF,10
+	db STOMP       ,FLINCH_SIDE_EFFECT2       ,$41,NORMAL,  $FF,20
+	db DOUBLE_KICK ,ATTACK_TWICE_EFFECT       ,$1E,FIGHTING,$FF,30
+	db MEGA_KICK   ,NO_ADDITIONAL_EFFECT      ,$78,NORMAL,  $BF,5
+	db JUMP_KICK   ,JUMP_KICK_EFFECT          ,$46,FIGHTING,$F2,25
+	db ROLLING_KICK,FLINCH_SIDE_EFFECT2       ,$3C,FIGHTING,$D8,15
+	db SAND_ATTACK ,ACCURACY_DOWN1_EFFECT     ,$00,NORMAL,  $FF,15
+	db HEADBUTT    ,FLINCH_SIDE_EFFECT2       ,$46,NORMAL,  $FF,15
+	db HORN_ATTACK ,NO_ADDITIONAL_EFFECT      ,$41,NORMAL,  $FF,25
+	db FURY_ATTACK ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL,  $D8,20
+	db HORN_DRILL  ,OHKO_EFFECT               ,$01,NORMAL,  $4C,5
+	db TACKLE      ,NO_ADDITIONAL_EFFECT      ,$23,NORMAL,  $F2,35
+	db BODY_SLAM   ,PARALYZE_SIDE_EFFECT2     ,$55,NORMAL,  $FF,15
+	db WRAP        ,TRAPPING_EFFECT           ,$0F,NORMAL,  $D8,20
+	db TAKE_DOWN   ,RECOIL_EFFECT             ,$5A,NORMAL,  $D8,20
+	db THRASH      ,THRASH_PETAL_DANCE_EFFECT ,$5A,NORMAL,  $FF,20
+	db DOUBLE_EDGE ,RECOIL_EFFECT             ,$64,NORMAL,  $FF,15
+	db TAIL_WHIP   ,DEFENSE_DOWN1_EFFECT      ,$00,NORMAL,  $FF,30
+	db POISON_STING,POISON_SIDE_EFFECT1       ,$0F,POISON,  $FF,35
+	db TWINEEDLE   ,TWINEEDLE_EFFECT          ,$19,BUG,     $FF,20
+	db PIN_MISSILE ,TWO_TO_FIVE_ATTACKS_EFFECT,$0E,BUG,     $D8,20
+	db LEER        ,DEFENSE_DOWN1_EFFECT      ,$00,NORMAL,  $FF,30
+	db BITE        ,FLINCH_SIDE_EFFECT1       ,$3C,NORMAL,  $FF,25
+	db GROWL       ,ATTACK_DOWN1_EFFECT       ,$00,NORMAL,  $FF,40
+	db ROAR        ,SWITCH_AND_TELEPORT_EFFECT,$00,NORMAL,  $FF,20
+	db SING        ,SLEEP_EFFECT              ,$00,NORMAL,  $8C,15
+	db SUPERSONIC  ,CONFUSION_EFFECT          ,$00,NORMAL,  $8C,20
+	db SONICBOOM   ,SPECIAL_DAMAGE_EFFECT     ,$01,NORMAL,  $E5,20
+	db DISABLE     ,DISABLE_EFFECT            ,$00,NORMAL,  $8C,20
+	db ACID        ,DEFENSE_DOWN_SIDE_EFFECT  ,$28,POISON,  $FF,30
+	db EMBER       ,BURN_SIDE_EFFECT1         ,$28,FIRE,    $FF,25
+	db FLAMETHROWER,BURN_SIDE_EFFECT1         ,$5F,FIRE,    $FF,15
+	db MIST        ,MIST_EFFECT               ,$00,ICE,     $FF,30
+	db WATER_GUN   ,NO_ADDITIONAL_EFFECT      ,$28,WATER,   $FF,25
+	db HYDRO_PUMP  ,NO_ADDITIONAL_EFFECT      ,$78,WATER,   $CC,5
+	db SURF        ,NO_ADDITIONAL_EFFECT      ,$5F,WATER,   $FF,15
+	db ICE_BEAM    ,FREEZE_SIDE_EFFECT        ,$5F,ICE,     $FF,10
+	db BLIZZARD    ,FREEZE_SIDE_EFFECT        ,$78,ICE,     $E5,5
+	db PSYBEAM     ,CONFUSION_SIDE_EFFECT     ,$41,PSYCHIC, $FF,20
+	db BUBBLEBEAM  ,SPEED_DOWN_SIDE_EFFECT    ,$41,WATER,   $FF,20
+	db AURORA_BEAM ,ATTACK_DOWN_SIDE_EFFECT   ,$41,ICE,     $FF,20
+	db HYPER_BEAM  ,HYPER_BEAM_EFFECT         ,$96,NORMAL,  $E5,5
+	db PECK        ,NO_ADDITIONAL_EFFECT      ,$23,FLYING,  $FF,35
+	db DRILL_PECK  ,NO_ADDITIONAL_EFFECT      ,$50,FLYING,  $FF,20
+	db SUBMISSION  ,RECOIL_EFFECT             ,$50,FIGHTING,$CC,25
+	db LOW_KICK    ,FLINCH_SIDE_EFFECT2       ,$32,FIGHTING,$E5,20
+	db COUNTER     ,NO_ADDITIONAL_EFFECT      ,$01,FIGHTING,$FF,20
+	db SEISMIC_TOSS,SPECIAL_DAMAGE_EFFECT     ,$01,FIGHTING,$FF,20
+	db STRENGTH    ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $FF,15
+	db ABSORB      ,DRAIN_HP_EFFECT           ,$14,GRASS,   $FF,20
+	db MEGA_DRAIN  ,DRAIN_HP_EFFECT           ,$28,GRASS,   $FF,10
+	db LEECH_SEED  ,LEECH_SEED_EFFECT         ,$00,GRASS,   $E5,10
+	db GROWTH      ,SPECIAL_UP1_EFFECT        ,$00,NORMAL,  $FF,40
+	db RAZOR_LEAF  ,NO_ADDITIONAL_EFFECT      ,$37,GRASS,   $F2,25
+	db SOLARBEAM   ,CHARGE_EFFECT             ,$78,GRASS,   $FF,10
+	db POISONPOWDER,POISON_EFFECT             ,$00,POISON,  $BF,35
+	db STUN_SPORE  ,PARALYZE_EFFECT           ,$00,GRASS,   $BF,30
+	db SLEEP_POWDER,SLEEP_EFFECT              ,$00,GRASS,   $BF,15
+	db PETAL_DANCE ,THRASH_PETAL_DANCE_EFFECT ,$46,GRASS,   $FF,20
+	db STRING_SHOT ,SPEED_DOWN1_EFFECT        ,$00,BUG,     $F2,40
+	db DRAGON_RAGE ,SPECIAL_DAMAGE_EFFECT     ,$01,DRAGON,  $FF,10
+	db FIRE_SPIN   ,TRAPPING_EFFECT           ,$0F,FIRE,    $B2,15
+	db THUNDERSHOCK,PARALYZE_SIDE_EFFECT1     ,$28,ELECTRIC,$FF,30
+	db THUNDERBOLT ,PARALYZE_SIDE_EFFECT1     ,$5F,ELECTRIC,$FF,15
+	db THUNDER_WAVE,PARALYZE_EFFECT           ,$00,ELECTRIC,$FF,20
+	db THUNDER     ,PARALYZE_SIDE_EFFECT1     ,$78,ELECTRIC,$B2,10
+	db ROCK_THROW  ,NO_ADDITIONAL_EFFECT      ,$32,ROCK,    $A5,15
+	db EARTHQUAKE  ,NO_ADDITIONAL_EFFECT      ,$64,GROUND,  $FF,10
+	db FISSURE     ,OHKO_EFFECT               ,$01,GROUND,  $4C,5
+	db DIG         ,CHARGE_EFFECT             ,$64,GROUND,  $FF,10
+	db TOXIC       ,POISON_EFFECT             ,$00,POISON,  $D8,10
+	db CONFUSION   ,CONFUSION_SIDE_EFFECT     ,$32,PSYCHIC, $FF,25
+	db PSYCHIC_M   ,SPECIAL_DOWN_SIDE_EFFECT  ,$5A,PSYCHIC, $FF,10
+	db HYPNOSIS    ,SLEEP_EFFECT              ,$00,PSYCHIC, $99,20
+	db MEDITATE    ,ATTACK_UP1_EFFECT         ,$00,PSYCHIC, $FF,40
+	db AGILITY     ,SPEED_UP2_EFFECT          ,$00,PSYCHIC, $FF,30
+	db QUICK_ATTACK,NO_ADDITIONAL_EFFECT      ,$28,NORMAL,  $FF,30
+	db RAGE        ,RAGE_EFFECT               ,$14,NORMAL,  $FF,20
+	db TELEPORT    ,SWITCH_AND_TELEPORT_EFFECT,$00,PSYCHIC, $FF,20
+	db NIGHT_SHADE ,SPECIAL_DAMAGE_EFFECT     ,$00,GHOST,   $FF,15
+	db MIMIC       ,MIMIC_EFFECT              ,$00,NORMAL,  $FF,10
+	db SCREECH     ,DEFENSE_DOWN2_EFFECT      ,$00,NORMAL,  $D8,40
+	db DOUBLE_TEAM ,EVASION_UP1_EFFECT        ,$00,NORMAL,  $FF,15
+	db RECOVER     ,HEAL_EFFECT               ,$00,NORMAL,  $FF,20
+	db HARDEN      ,DEFENSE_UP1_EFFECT        ,$00,NORMAL,  $FF,30
+	db MINIMIZE    ,EVASION_UP1_EFFECT        ,$00,NORMAL,  $FF,20
+	db SMOKESCREEN ,ACCURACY_DOWN1_EFFECT     ,$00,NORMAL,  $FF,20
+	db CONFUSE_RAY ,CONFUSION_EFFECT          ,$00,GHOST,   $FF,10
+	db WITHDRAW    ,DEFENSE_UP1_EFFECT        ,$00,WATER,   $FF,40
+	db DEFENSE_CURL,DEFENSE_UP1_EFFECT        ,$00,NORMAL,  $FF,40
+	db BARRIER     ,DEFENSE_UP2_EFFECT        ,$00,PSYCHIC, $FF,30
+	db LIGHT_SCREEN,LIGHT_SCREEN_EFFECT       ,$00,PSYCHIC, $FF,30
+	db HAZE        ,HAZE_EFFECT               ,$00,ICE,     $FF,30
+	db REFLECT     ,REFLECT_EFFECT            ,$00,PSYCHIC, $FF,20
+	db FOCUS_ENERGY,FOCUS_ENERGY_EFFECT       ,$00,NORMAL,  $FF,30
+	db BIDE        ,BIDE_EFFECT               ,$00,NORMAL,  $FF,10
+	db METRONOME   ,METRONOME_EFFECT          ,$00,NORMAL,  $FF,10
+	db MIRROR_MOVE ,MIRROR_MOVE_EFFECT        ,$00,FLYING,  $FF,20
+	db SELFDESTRUCT,EXPLODE_EFFECT            ,$82,NORMAL,  $FF,5
+	db EGG_BOMB    ,NO_ADDITIONAL_EFFECT      ,$64,NORMAL,  $BF,10
+	db LICK        ,PARALYZE_SIDE_EFFECT2     ,$14,GHOST,   $FF,30
+	db SMOG        ,POISON_SIDE_EFFECT2       ,$14,POISON,  $B2,20
+	db SLUDGE      ,POISON_SIDE_EFFECT2       ,$41,POISON,  $FF,20
+	db BONE_CLUB   ,FLINCH_SIDE_EFFECT1       ,$41,GROUND,  $D8,20
+	db FIRE_BLAST  ,BURN_SIDE_EFFECT2         ,$78,FIRE,    $D8,5
+	db WATERFALL   ,NO_ADDITIONAL_EFFECT      ,$50,WATER,   $FF,15
+	db CLAMP       ,TRAPPING_EFFECT           ,$23,WATER,   $BF,10
+	db SWIFT       ,SWIFT_EFFECT              ,$3C,NORMAL,  $FF,20
+	db SKULL_BASH  ,CHARGE_EFFECT             ,$64,NORMAL,  $FF,15
+	db SPIKE_CANNON,TWO_TO_FIVE_ATTACKS_EFFECT,$14,NORMAL,  $FF,15
+	db CONSTRICT   ,SPEED_DOWN_SIDE_EFFECT    ,$0A,NORMAL,  $FF,35
+	db AMNESIA     ,SPECIAL_UP2_EFFECT        ,$00,PSYCHIC, $FF,20
+	db KINESIS     ,ACCURACY_DOWN1_EFFECT     ,$00,PSYCHIC, $CC,15
+	db SOFTBOILED  ,HEAL_EFFECT               ,$00,NORMAL,  $FF,10
+	db HI_JUMP_KICK,JUMP_KICK_EFFECT          ,$55,FIGHTING,$E5,20
+	db GLARE       ,PARALYZE_EFFECT           ,$00,NORMAL,  $BF,30
+	db DREAM_EATER ,DREAM_EATER_EFFECT        ,$64,PSYCHIC, $FF,15
+	db POISON_GAS  ,POISON_EFFECT             ,$00,POISON,  $8C,40
+	db BARRAGE     ,TWO_TO_FIVE_ATTACKS_EFFECT,$0F,NORMAL,  $D8,20
+	db LEECH_LIFE  ,DRAIN_HP_EFFECT           ,$14,BUG,     $FF,15
+	db LOVELY_KISS ,SLEEP_EFFECT              ,$00,NORMAL,  $BF,10
+	db SKY_ATTACK  ,CHARGE_EFFECT             ,$8C,FLYING,  $E5,5
+	db TRANSFORM   ,TRANSFORM_EFFECT          ,$00,NORMAL,  $FF,10
+	db BUBBLE      ,SPEED_DOWN_SIDE_EFFECT    ,$14,WATER,   $FF,30
+	db DIZZY_PUNCH ,NO_ADDITIONAL_EFFECT      ,$46,NORMAL,  $FF,10
+	db SPORE       ,SLEEP_EFFECT              ,$00,GRASS,   $FF,15
+	db FLASH       ,ACCURACY_DOWN1_EFFECT     ,$00,NORMAL,  $B2,20
+	db PSYWAVE     ,SPECIAL_DAMAGE_EFFECT     ,$01,PSYCHIC, $CC,15
+	db SPLASH      ,SPLASH_EFFECT             ,$00,NORMAL,  $FF,40
+	db ACID_ARMOR  ,DEFENSE_UP2_EFFECT        ,$00,POISON,  $FF,40
+	db CRABHAMMER  ,NO_ADDITIONAL_EFFECT      ,$5A,WATER,   $D8,10
+	db EXPLOSION   ,EXPLODE_EFFECT            ,$AA,NORMAL,  $FF,5
+	db FURY_SWIPES ,TWO_TO_FIVE_ATTACKS_EFFECT,$12,NORMAL,  $CC,15
+	db BONEMERANG  ,ATTACK_TWICE_EFFECT       ,$32,GROUND,  $E5,10
+	db REST        ,HEAL_EFFECT               ,$00,PSYCHIC, $FF,10
+	db ROCK_SLIDE  ,NO_ADDITIONAL_EFFECT      ,$4B,ROCK,    $E5,10
+	db HYPER_FANG  ,FLINCH_SIDE_EFFECT1       ,$50,NORMAL,  $E5,15
+	db SHARPEN     ,ATTACK_UP1_EFFECT         ,$00,NORMAL,  $FF,30
+	db CONVERSION  ,CONVERSION_EFFECT         ,$00,NORMAL,  $FF,30
+	db TRI_ATTACK  ,NO_ADDITIONAL_EFFECT      ,$50,NORMAL,  $FF,10
+	db SUPER_FANG  ,SUPER_FANG_EFFECT         ,$01,NORMAL,  $E5,10
+	db SLASH       ,NO_ADDITIONAL_EFFECT      ,$46,NORMAL,  $FF,20
+	db SUBSTITUTE  ,SUBSTITUTE_EFFECT         ,$00,NORMAL,  $FF,10
+	db STRUGGLE    ,RECOIL_EFFECT             ,$32,NORMAL,  $FF,10
 
 BulbasaurBaseStats: ; 383de (e:43de)
 	db DEX_BULBASAUR ; pokedex id
@@ -54045,10 +54503,10 @@ AIEnemyTrainerChooseMoves: ; 39719 (e:5719)
 	ret
 
 AIMoveChoiceModificationFunctionPointers: ; 397a3 (e:57a3)
-dw AIMoveChoiceModification1
-dw AIMoveChoiceModification2
-dw AIMoveChoiceModification3
-dw AIMoveChoiceModification4 ; unused, does nothing
+	dw AIMoveChoiceModification1
+	dw AIMoveChoiceModification2
+	dw AIMoveChoiceModification3
+	dw AIMoveChoiceModification4 ; unused, does nothing
 
 ; discourages moves that cause no damage but only a status ailment if player's mon already has one
 AIMoveChoiceModification1: ; 397ab (e:57ab)
@@ -54087,11 +54545,11 @@ AIMoveChoiceModification1: ; 397ab (e:57ab)
 	jr .nextMove
 
 StatusAilmentMoveEffects ; 57e2
-db $01 ; some sleep effect?
-db SLEEP_EFFECT
-db POISON_EFFECT
-db PARALYZE_EFFECT
-db $FF
+	db $01 ; some sleep effect?
+	db SLEEP_EFFECT
+	db POISON_EFFECT
+	db PARALYZE_EFFECT
+	db $FF
 
 ; slightly encourage moves with specific effects
 AIMoveChoiceModification2: ; 397e7 (e:57e7)
@@ -54215,196 +54673,196 @@ ReadMove: ; 39884 (e:5884)
 ; move choice modification methods that are applied for each trainer class
 ; 0 is sentinel value
 TrainerClassMoveChoiceModifications: ; 3989b (e:589b)
-db 0      ; YOUNGSTER
-db 1,0    ; BUG CATCHER
-db 1,0    ; LASS
-db 1,3,0  ; SAILOR
-db 1,0    ; JR__TRAINER_M
-db 1,0    ; JR__TRAINER_F
-db 1,2,3,0; POKEMANIAC
-db 1,2,0  ; SUPER_NERD
-db 1,0    ; HIKER
-db 1,0    ; BIKER
-db 1,3,0  ; BURGLAR
-db 1,0    ; ENGINEER
-db 1,2,0  ; JUGGLER_X
-db 1,3,0  ; FISHER
-db 1,3,0  ; SWIMMER
-db 0      ; CUE_BALL
-db 1,0    ; GAMBLER
-db 1,3,0  ; BEAUTY
-db 1,2,0  ; PSYCHIC_TR
-db 1,3,0  ; ROCKER
-db 1,0    ; JUGGLER
-db 1,0    ; TAMER
-db 1,0    ; BIRD_KEEPER
-db 1,0    ; BLACKBELT
-db 1,0    ; SONY1
-db 1,3,0  ; PROF_OAK
-db 1,2,0  ; CHIEF
-db 1,2,0  ; SCIENTIST
-db 1,3,0  ; GIOVANNI
-db 1,0    ; ROCKET
-db 1,3,0  ; COOLTRAINER_M
-db 1,3,0  ; COOLTRAINER_F
-db 1,0    ; BRUNO
-db 1,0    ; BROCK
-db 1,3,0  ; MISTY
-db 1,3,0  ; LT__SURGE
-db 1,3,0  ; ERIKA
-db 1,3,0  ; KOGA
-db 1,3,0  ; BLAINE
-db 1,3,0  ; SABRINA
-db 1,2,0  ; GENTLEMAN
-db 1,3,0  ; SONY2
-db 1,3,0  ; SONY3
-db 1,2,3,0; LORELEI
-db 1,0    ; CHANNELER
-db 1,0    ; AGATHA
-db 1,3,0  ; LANCE
+	db 0      ; YOUNGSTER
+	db 1,0    ; BUG CATCHER
+	db 1,0    ; LASS
+	db 1,3,0  ; SAILOR
+	db 1,0    ; JR__TRAINER_M
+	db 1,0    ; JR__TRAINER_F
+	db 1,2,3,0; POKEMANIAC
+	db 1,2,0  ; SUPER_NERD
+	db 1,0    ; HIKER
+	db 1,0    ; BIKER
+	db 1,3,0  ; BURGLAR
+	db 1,0    ; ENGINEER
+	db 1,2,0  ; JUGGLER_X
+	db 1,3,0  ; FISHER
+	db 1,3,0  ; SWIMMER
+	db 0      ; CUE_BALL
+	db 1,0    ; GAMBLER
+	db 1,3,0  ; BEAUTY
+	db 1,2,0  ; PSYCHIC_TR
+	db 1,3,0  ; ROCKER
+	db 1,0    ; JUGGLER
+	db 1,0    ; TAMER
+	db 1,0    ; BIRD_KEEPER
+	db 1,0    ; BLACKBELT
+	db 1,0    ; SONY1
+	db 1,3,0  ; PROF_OAK
+	db 1,2,0  ; CHIEF
+	db 1,2,0  ; SCIENTIST
+	db 1,3,0  ; GIOVANNI
+	db 1,0    ; ROCKET
+	db 1,3,0  ; COOLTRAINER_M
+	db 1,3,0  ; COOLTRAINER_F
+	db 1,0    ; BRUNO
+	db 1,0    ; BROCK
+	db 1,3,0  ; MISTY
+	db 1,3,0  ; LT__SURGE
+	db 1,3,0  ; ERIKA
+	db 1,3,0  ; KOGA
+	db 1,3,0  ; BLAINE
+	db 1,3,0  ; SABRINA
+	db 1,2,0  ; GENTLEMAN
+	db 1,3,0  ; SONY2
+	db 1,3,0  ; SONY3
+	db 1,2,3,0; LORELEI
+	db 1,0    ; CHANNELER
+	db 1,0    ; AGATHA
+	db 1,3,0  ; LANCE
 
 ; trainer pic pointers and base money.
 ; money received after battle = base money × level of highest-level enemy mon
-dw YoungsterPic
-db 0,$15,0
+	dw YoungsterPic
+	db 0,$15,0
 
-dw BugCatcherPic
-db 0,$10,0
+	dw BugCatcherPic
+	db 0,$10,0
 
-dw LassPic
-db 0,$15,0
+	dw LassPic
+	db 0,$15,0
 
-dw SailorPic
-db 0,$30,0
+	dw SailorPic
+	db 0,$30,0
 
-dw JrTrainerMPic
-db 0,$20,0
+	dw JrTrainerMPic
+	db 0,$20,0
 
-dw JrTrainerFPic
-db 0,$20,0
+	dw JrTrainerFPic
+	db 0,$20,0
 
-dw PokemaniacPic
-db 0,$50,0
+	dw PokemaniacPic
+	db 0,$50,0
 
-dw SuperNerdPic
-db 0,$25,0
+	dw SuperNerdPic
+	db 0,$25,0
 
-dw HikerPic
-db 0,$35,0
+	dw HikerPic
+	db 0,$35,0
 
-dw BikerPic
-db 0,$20,0
+	dw BikerPic
+	db 0,$20,0
 
-dw BurglarPic
-db 0,$90,0
+	dw BurglarPic
+	db 0,$90,0
 
-dw EngineerPic
-db 0,$50,0
+	dw EngineerPic
+	db 0,$50,0
 
-dw JugglerPic
-db 0,$35,0
+	dw JugglerPic
+	db 0,$35,0
 
-dw FisherPic
-db 0,$35,0
+	dw FisherPic
+	db 0,$35,0
 
-dw SwimmerPic
-db 0,$05,0
+	dw SwimmerPic
+	db 0,$05,0
 
-dw CueBallPic
-db 0,$25,0
+	dw CueBallPic
+	db 0,$25,0
 
-dw GamblerPic
-db 0,$70,0
+	dw GamblerPic
+	db 0,$70,0
 
-dw BeautyPic
-db 0,$70,0
+	dw BeautyPic
+	db 0,$70,0
 
-dw PsychicPic
-db 0,$10,0
+	dw PsychicPic
+	db 0,$10,0
 
-dw RockerPic
-db 0,$25,0
+	dw RockerPic
+	db 0,$25,0
 
-dw JugglerPic
-db 0,$35,0
+	dw JugglerPic
+	db 0,$35,0
 
-dw TamerPic
-db 0,$40,0
+	dw TamerPic
+	db 0,$40,0
 
-dw BirdKeeperPic
-db 0,$25,0
+	dw BirdKeeperPic
+	db 0,$25,0
 
-dw BlackbeltPic
-db 0,$25,0
+	dw BlackbeltPic
+	db 0,$25,0
 
-dw Rival1Pic
-db 0,$35,0
+	dw Rival1Pic
+	db 0,$35,0
 
-dw ProfOakPic
-db 0,$99,0
+	dw ProfOakPic
+	db 0,$99,0
 
-dw ChiefPic
-db 0,$30,0
+	dw ChiefPic
+	db 0,$30,0
 
-dw ScientistPic
-db 0,$50,0
+	dw ScientistPic
+	db 0,$50,0
 
-dw GiovanniPic
-db 0,$99,0
+	dw GiovanniPic
+	db 0,$99,0
 
-dw RocketPic
-db 0,$30,0
+	dw RocketPic
+	db 0,$30,0
 
-dw CooltrainerMPic
-db 0,$35,0
+	dw CooltrainerMPic
+	db 0,$35,0
 
-dw CooltrainerFPic
-db 0,$35,0
+	dw CooltrainerFPic
+	db 0,$35,0
 
-dw BrunoPic
-db 0,$99,0
+	dw BrunoPic
+	db 0,$99,0
 
-dw BrockPic
-db 0,$99,0
+	dw BrockPic
+	db 0,$99,0
 
-dw MistyPic
-db 0,$99,0
+	dw MistyPic
+	db 0,$99,0
 
-dw LtSurgePic
-db 0,$99,0
+	dw LtSurgePic
+	db 0,$99,0
 
-dw ErikaPic
-db 0,$99,0
+	dw ErikaPic
+	db 0,$99,0
 
-dw KogaPic
-db 0,$99,0
+	dw KogaPic
+	db 0,$99,0
 
-dw BlainePic
-db 0,$99,0
+	dw BlainePic
+	db 0,$99,0
 
-dw SabrinaPic
-db 0,$99,0
+	dw SabrinaPic
+	db 0,$99,0
 
-dw GentlemanPic
-db 0,$70,0
+	dw GentlemanPic
+	db 0,$70,0
 
-dw Rival2Pic
-db 0,$65,0
+	dw Rival2Pic
+	db 0,$65,0
 
-dw Rival3Pic
-db 0,$99,0
+	dw Rival3Pic
+	db 0,$99,0
 
-dw LoreleiPic
-db 0,$99,0
+	dw LoreleiPic
+	db 0,$99,0
 
-dw ChannelerPic
-db 0,$30,0
+	dw ChannelerPic
+	db 0,$30,0
 
-dw AgathaPic
-db 0,$99,0
+	dw AgathaPic
+	db 0,$99,0
 
-dw LancePic
-db 0,$99,0
+	dw LancePic
+	db 0,$99,0
 
 TrainerNames: ; 399ff (e:59ff)
 	db "YOUNGSTER@"
@@ -60059,7 +60517,6 @@ FaintEnemyPokemon ; 0x3c567
 EnemyMonFainted: ; 0x3c63e
 	TX_FAR _EnemyMonFainted
 	db "@"
-; 0x3c63e + 5 bytes
 
 Func_3c643: ; 3c643 (f:4643)
 	xor a
@@ -61219,8 +61676,6 @@ InitBattleMenu: ; 3ceb3 (f:4eb3)
 	               ; map with wild pokémon. due to an oversight, the data
 	               ; may not get overwritten (cinnabar) and the infamous
 	               ; missingno. glitch can show up.
-
-
 	ld hl, OldManName ; $4f12
 	ld de, W_PLAYERNAME ; $d158
 	ld bc, $b
@@ -67469,7 +67924,7 @@ Func_3fbbc: ; 3fbbc (f:7bbc)
 	pop de
 	pop hl
 	ret
-; 3fbc8 (f:7bc8)
+
 SECTION "bank10",ROMX,BANK[$10]
 
 DisplayPokedexMenu_: ; 40000 (10:4000)
@@ -69604,13 +70059,19 @@ PokedexOrder: ; 41024 (10:5024)
 Func_410e2: ; 410e2 (10:50e2)
 	ld a, [wWhichTrade] ; $cd3d
 	ld [$cd5e], a
-	ld a, [$cd3e]
+	ld a, [wTrainerEngageDistance]
 	ld [$cd5f], a
 	ld de, Unknown_41138 ; $5138
-	jr .asm_41102
+	jr Func_41102
 
-INCBIN "baserom.gbc",$410f3,$41102 - $410f3
-.asm_41102
+Func_410f3: ; 410f3 (10:50f3)
+	ld a, [wTrainerEngageDistance]
+	ld [$cd5e], a
+	ld a, [wTrainerSpriteOffset]
+	ld [$cd5f], a
+	ld de, Unknown_41149
+
+Func_41102: ; 41102 (10:5102)
 	ld a, [W_OPTIONS] ; $d355
 	push af
 	ld a, [$FF00+$af]
@@ -69650,7 +70111,10 @@ INCBIN "baserom.gbc",$410f3,$41102 - $410f3
 	ret
 
 Unknown_41138: ; 41138 (10:5138)
-INCBIN "baserom.gbc",$41138,$4115f - $41138
+INCBIN "baserom.gbc",$41138,$41149 - $41138
+
+Unknown_41149: ; 41149 (10:5149)
+INCBIN "baserom.gbc",$41149,$4115f - $41149
 
 Unknown_4115f: ; 4115f (10:515f)
 INCBIN "baserom.gbc",$4115f,$41181 - $4115f
@@ -69811,7 +70275,7 @@ INCBIN "baserom.gbc",$41217,$4123b - $41217
 .asm_412e7
 	push bc
 	xor a
-	ld de, Unknown_4132e ; $532e
+	ld de, UnknownOAM_4132e ; $532e
 	call WriteOAMBlock
 	ld a, [$d09f]
 	xor $1
@@ -69847,8 +70311,11 @@ INCBIN "baserom.gbc",$41217,$4123b - $41217
 	ld [H_AUTOBGTRANSFERENABLED], a ; $FF00+$ba
 	ret
 
-Unknown_4132e: ; 4132e (10:532e)
-INCBIN "baserom.gbc",$4132e,$41336 - $4132e
+UnknownOAM_4132e: ; 4132e (10:532e)
+	db $7E,$00,$7E,$20
+	db $7E,$40,$7E,$60
+
+Func_41336: ; 41336 (10:5336)
 	ld a, $ac
 	call Func_41676
 	call Func_415c8
@@ -70144,7 +70611,7 @@ Func_41525: ; 41525 (10:5525)
 	ret
 
 Func_41558: ; 41558 (10:5558)
-	ld hl, Unknown_41574 ; $5574
+	ld hl, OAMPointers_41574 ; $5574
 	ld c, $4
 	xor a
 .asm_4155e
@@ -70168,8 +70635,31 @@ Func_41558: ; 41558 (10:5558)
 	jr nz, .asm_4155e
 	ret
 
-Unknown_41574: ; 41574 (10:5574)
-INCBIN "baserom.gbc",$41574,$415a4 - $41574
+OAMPointers_41574: ; 41574 (10:5574)
+	dw UnknownOAM_41584
+	db $08,$08
+	dw UnknownOAM_4158c
+	db $18,$08
+	dw UnknownOAM_41594
+	db $08,$18
+	dw UnknownOAM_4159c
+	db $18,$18
+
+UnknownOAM_41584: ; 41584 (10:5584)
+	db $38,$10,$39,$10
+	db $3A,$10,$3B,$10
+
+UnknownOAM_4158c: ; 4158c (10:558c)
+	db $39,$30,$38,$30
+	db $3B,$30,$3A,$30
+
+UnknownOAM_41594: ; 41594 (10:5594)
+	db $3A,$50,$3B,$50
+	db $38,$50,$39,$50
+
+UnknownOAM_4159c: ; 4159c (10:559c)
+	db $3B,$70,$3A,$70
+	db $39,$70,$38,$70
 
 Func_415a4: ; 415a4 (10:55a4)
 	ld [$cf91], a
@@ -70742,7 +71232,7 @@ SECTION "bank11",ROMX,BANK[$11]
 LavenderTown_h: ; 0x44000 to 0x4402d (45 bytes) (bank=11) (id=4)
 	db $00 ; tileset
 	db LAVENDER_TOWN_HEIGHT, LAVENDER_TOWN_WIDTH ; dimensions (y, x)
-	dw LavenderTownBlocks, LavenderTownTexts, LavenderTownScript ; blocks, texts, scripts
+	dw LavenderTownBlocks, LavenderTownTextPointers, LavenderTownScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST ; connections
 
 	; connections data
@@ -70816,8 +71306,16 @@ SafariZoneRestHouse1Blocks: ; 440fb (11:40fb)
 LavenderTownScript: ; 4410b (11:410b)
 	jp EnableAutoTextBoxDrawing
 
-LavenderTownTexts: ; 4410e (11:410e)
-	dw LavenderTownText1, LavenderTownText2, LavenderTownText3, LavenderTownText4, LavenderTownText5, MartSignText, PokeCenterSignText, LavenderTownText8, LavenderTownText9
+LavenderTownTextPointers: ; 4410e (11:410e)
+	dw LavenderTownText1
+	dw LavenderTownText2
+	dw LavenderTownText3
+	dw LavenderTownText4
+	dw LavenderTownText5
+	dw MartSignText
+	dw PokeCenterSignText
+	dw LavenderTownText8
+	dw LavenderTownText9
 
 LavenderTownText1: ; 44120 (11:4120)
 	db $08 ; asm
@@ -71032,7 +71530,7 @@ UnnamedText_4424c: ; 4424c (11:424c)
 ViridianPokecenter_h: ; 0x44251 to 0x4425d (12 bytes) (bank=11) (id=41)
 	db $06 ; tileset
 	db $04, $07 ; dimensions (y, x)
-	dw ViridianPokecenterBlocks, ViridianPokecenterTexts, ViridianPokeCenterScript ; blocks, texts, scripts
+	dw ViridianPokecenterBlocks, ViridianPokecenterTextPointers, ViridianPokeCenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianPokecenterObject ; objects
@@ -71041,8 +71539,11 @@ ViridianPokeCenterScript: ; 4425d (11:425d)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-ViridianPokecenterTexts: ; 44263 (11:4263)
-	dw ViridianPokeCenterText1, ViridianPokeCenterText2, ViridianPokeCenterText3, ViridianPokeCenterText4
+ViridianPokecenterTextPointers: ; 44263 (11:4263)
+	dw ViridianPokeCenterText1
+	dw ViridianPokeCenterText2
+	dw ViridianPokeCenterText3
+	dw ViridianPokeCenterText4
 
 ViridianPokeCenterText1: ; 4426b (11:426b)
 	db $ff
@@ -71080,7 +71581,7 @@ ViridianPokecenterObject: ; 0x44277 (size=44)
 Mansion1_h: ; 0x442a3 to 0x442af (12 bytes) (bank=11) (id=165)
 	db $16 ; tileset
 	db MANSION_1_HEIGHT, MANSION_1_WIDTH ; dimensions (y, x)
-	dw Mansion1Blocks, Mansion1Texts, Mansion1Script ; blocks, texts, scripts
+	dw Mansion1Blocks, Mansion1TextPointers, Mansion1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Mansion1Object ; objects
@@ -71089,7 +71590,7 @@ Mansion1Script: ; 442af (11:42af)
 	call Mansion1Subscript1
 	call EnableAutoTextBoxDrawing
 	ld hl, Mansion1TrainerHeaders
-	ld de, Unknown_44326 ; $4326
+	ld de, Mansion1ScriptPointers
 	ld a, [W_MANSION1CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_MANSION1CURSCRIPT], a
@@ -71134,13 +71635,26 @@ asm_44310: ; 44310 (11:4310)
 	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
 	ret
 
-INCBIN "baserom.gbc",$44316,$44326 - $44316
+Func_44316: ; 44316 (11:4316)
+	ld a, [$c109]
+	cp $4
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $4
+	ld [H_SPRITEHEIGHT], a
+	jp DisplayTextID
 
-Unknown_44326: ; 44326 (11:4326)
-INCBIN "baserom.gbc",$44326,$4432c - $44326
+Mansion1ScriptPointers: ; 44326 (11:4326)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Mansion1Texts: ; 4432c (11:432c)
-	dw Mansion1Text1, Predef5CText, Predef5CText, Mansion1Text4
+Mansion1TextPointers: ; 4432c (11:432c)
+	dw Mansion1Text1
+	dw Predef5CText
+	dw Predef5CText
+	dw Mansion1Text4
 
 Mansion1TrainerHeaders: ; 44334 (11:4334)
 Mansion1TrainerHeader0: ; 44334 (11:4334)
@@ -71152,7 +71666,7 @@ Mansion1TrainerHeader0: ; 44334 (11:4334)
 	dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
 	dw Mansion1EndBattleText2 ; 0x4350 TextEndBattle
 
-db $ff
+	db $ff
 
 Mansion1Text1: ; 44341 (11:4341)
 	db $08 ; asm
@@ -71248,166 +71762,220 @@ Mansion1Blocks: ; 443fe (11:43fe)
 RockTunnel1_h: ; 0x444d0 to 0x444dc (12 bytes) (bank=11) (id=82)
 	db $11 ; tileset
 	db ROCK_TUNNEL_1_HEIGHT, ROCK_TUNNEL_1_WIDTH ; dimensions (y, x)
-	dw RockTunnel1Blocks, RockTunnel1Texts, RockTunnel1Script ; blocks, texts, scripts
+	dw RockTunnel1Blocks, RockTunnel1TextPointers, RockTunnel1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RockTunnel1Object ; objects
 
 RockTunnel1Script: ; 444dc (11:44dc)
 	call EnableAutoTextBoxDrawing
-	ld hl, Unnamed_44505 ; $4505
-	ld de, Unnamed_444ef ; $44ef
+	ld hl, RockTunnel1TrainerHeaders
+	ld de, RockTunnel1ScriptPointers
 	ld a, [W_ROCKTUNNEL1CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROCKTUNNEL1CURSCRIPT], a
 	ret
 
-Unnamed_444ef: ; 444ef (11:44ef)
-INCBIN "baserom.gbc",$444ef,$444f5 - $444ef
+RockTunnel1ScriptPointers: ; 444ef (11:44ef)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-RockTunnel1Texts: ; 444f5 (11:44f5)
-	dw RockTunnel1Text1, RockTunnel1Text2, RockTunnel1Text3, RockTunnel1Text4, RockTunnel1Text5, RockTunnel1Text6, RockTunnel1Text7, RockTunnel1Text8
+RockTunnel1TextPointers: ; 444f5 (11:44f5)
+	dw RockTunnel1Text1
+	dw RockTunnel1Text2
+	dw RockTunnel1Text3
+	dw RockTunnel1Text4
+	dw RockTunnel1Text5
+	dw RockTunnel1Text6
+	dw RockTunnel1Text7
+	dw RockTunnel1Text8
 
-Unnamed_44505: ; 44505 (11:4505)
-INCBIN "baserom.gbc",$44505,$44511 - $44505
+RockTunnel1TrainerHeaders: ; 44505 (11:4505)
+RockTunnel1TrainerHeader1: ; 44505 (11:4505)
+	db $1 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText1 ; 0x4588 TextBeforeBattle
+	dw RockTunnel1AfterBattleText1 ; 0x4592 TextAfterBattle
+	dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
+	dw RockTunnel1EndBattleText1 ; 0x458d TextEndBattle
 
-Unknown_44511: ; 44511 (11:4511)
-INCBIN "baserom.gbc",$44511,$4451d - $44511
+RockTunnel1TrainerHeader2: ; 44511 (11:4511)
+	db $2 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText2 ; 0x4597 TextBeforeBattle
+	dw RockTunnel1AfterBattleText2 ; 0x45a1 TextAfterBattle
+	dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
+	dw RockTunnel1EndBattleText2 ; 0x459c TextEndBattle
 
-Unknown_4451d: ; 4451d (11:451d)
-INCBIN "baserom.gbc",$4451d,$44529 - $4451d
+RockTunnel1TrainerHeader3: ; 4451d (11:451d)
+	db $3 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText3 ; 0x45a6 TextBeforeBattle
+	dw RockTunnel1AfterBattleText3 ; 0x45b0 TextAfterBattle
+	dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
+	dw RockTunnel1EndBattleText3 ; 0x45ab TextEndBattle
 
-Unknown_44529: ; 44529 (11:4529)
-INCBIN "baserom.gbc",$44529,$44535 - $44529
+RockTunnel1TrainerHeader4: ; 44529 (11:4529)
+	db $4 ; flag's bit
+	db ($3 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText4 ; 0x45b5 TextBeforeBattle
+	dw RockTunnel1AfterBattleText4 ; 0x45bf TextAfterBattle
+	dw RockTunnel1EndBattleText4 ; 0x45ba TextEndBattle
+	dw RockTunnel1EndBattleText4; 0x45ba TextEndBattle
 
-Unknown_44535: ; 44535 (11:4535)
-INCBIN "baserom.gbc",$44535,$44541 - $44535
+RockTunnel1TrainerHeader5: ; 44535 (11:4535)
+	db $5 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText5 ; 0x45c4 TextBeforeBattle
+	dw RockTunnel1AfterBattleText5 ; 0x45ce TextAfterBattle
+	dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
+	dw RockTunnel1EndBattleText5 ; 0x45c9 TextEndBattle
 
-Unknown_44541: ; 44541 (11:4541)
-INCBIN "baserom.gbc",$44541,$4454d - $44541
+RockTunnel1TrainerHeader6: ; 44541 (11:4541)
+	db $6 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText6 ; 0x45d3 TextBeforeBattle
+	dw RockTunnel1AfterBattleText6 ; 0x45dd TextAfterBattle
+	dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
+	dw RockTunnel1EndBattleText6 ; 0x45d8 TextEndBattle
 
-Unknown_4454d: ; 4454d (11:454d)
-INCBIN "baserom.gbc",$4454d,$4455a - $4454d
+RockTunnel1TrainerHeader7: ; 4454d (11:454d)
+	db $7 ; flag's bit
+	db ($4 << 4) ; trainer's view range
+	dw $d7d2 ; flag's byte
+	dw RockTunnel1BattleText7; 0x45e2 TextBeforeBattle
+	dw RockTunnel1AfterBattleText7 ; 0x45ec TextAfterBattle
+	dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
+	dw RockTunnel1EndBattleText7 ; 0x45e7 TextEndBattle
+
+	db $ff
 
 RockTunnel1Text1: ; 4455a (11:455a)
 	db $8
-	ld hl, Unnamed_44505 ; $4505
+	ld hl, RockTunnel1TrainerHeader1 ; $4505
 	jr asm_0c916 ; 0x4455e $22
 
 RockTunnel1Text2: ; 44560 (11:4560)
 	db $8
-	ld hl, Unknown_44511 ; $4511
+	ld hl, RockTunnel1TrainerHeader2 ; $4511
 	jr asm_0c916 ; 0x44564 $1c
 
 RockTunnel1Text3: ; 44566 (11:4566)
 	db $8
-	ld hl, Unknown_4451d ; $451d
+	ld hl, RockTunnel1TrainerHeader3 ; $451d
 	jr asm_0c916 ; 0x4456a $16
 
 RockTunnel1Text4: ; 4456c (11:456c)
 	db $8
-	ld hl, Unknown_44529 ; $4529
+	ld hl, RockTunnel1TrainerHeader4 ; $4529
 	jr asm_0c916 ; 0x44570 $10
 
 RockTunnel1Text5: ; 44572 (11:4572)
 	db $8
-	ld hl, Unknown_44535 ; $4535
+	ld hl, RockTunnel1TrainerHeader5 ; $4535
 	jr asm_0c916 ; 0x44576 $a
 
 RockTunnel1Text6: ; 44578 (11:4578)
 	db $8
-	ld hl, Unknown_44541 ; $4541
+	ld hl, RockTunnel1TrainerHeader6 ; $4541
 	jr asm_0c916 ; 0x4457c $4
 
 RockTunnel1Text7: ; 4457e (11:457e)
 	db $8
-	ld hl, Unknown_4454d ; $454d
+	ld hl, RockTunnel1TrainerHeader7 ; $454d
 asm_0c916: ; 44582 (11:4582)
 	call TalkToTrainer
 	jp TextScriptEnd
 
-UnnamedText_44588: ; 44588 (11:4588)
-	TX_FAR _UnnamedText_44588
+RockTunnel1BattleText1: ; 44588 (11:4588)
+	TX_FAR _RockTunnel1BattleText1
 	db "@"
 
-UnnamedText_4458d: ; 4458d (11:458d)
-	TX_FAR _UnnamedText_4458d
+RockTunnel1EndBattleText1: ; 4458d (11:458d)
+	TX_FAR _RockTunnel1EndBattleText1
 	db "@"
 
-UnnamedText_44592: ; 44592 (11:4592)
-	TX_FAR _UnnamedText_44592
+RockTunnel1AfterBattleText1: ; 44592 (11:4592)
+	TX_FAR _RockTunnel1AfterBattleText1
 	db "@"
 
-UnnamedText_44597: ; 44597 (11:4597)
-	TX_FAR _UnnamedText_44597
+RockTunnel1BattleText2: ; 44597 (11:4597)
+	TX_FAR _RockTunnel1BattleText2
 	db "@"
 
-UnnamedText_4459c: ; 4459c (11:459c)
-	TX_FAR _UnnamedText_4459c
+RockTunnel1EndBattleText2: ; 4459c (11:459c)
+	TX_FAR _RockTunnel1EndBattleText2
 	db "@"
 
-UnnamedText_445a1: ; 445a1 (11:45a1)
-	TX_FAR _UnnamedText_445a1
+RockTunnel1AfterBattleText2: ; 445a1 (11:45a1)
+	TX_FAR _RockTunnel1AfterBattleText2
 	db "@"
 
-UnnamedText_445a6: ; 445a6 (11:45a6)
-	TX_FAR _UnnamedText_445a6
+RockTunnel1BattleText3: ; 445a6 (11:45a6)
+	TX_FAR _RockTunnel1BattleText3
 	db "@"
 
-UnnamedText_445ab: ; 445ab (11:45ab)
-	TX_FAR _UnnamedText_445ab
+RockTunnel1EndBattleText3: ; 445ab (11:45ab)
+	TX_FAR _RockTunnel1EndBattleText3
 	db "@"
 
-UnnamedText_445b0: ; 445b0 (11:45b0)
-	TX_FAR _UnnamedText_445b0
+RockTunnel1AfterBattleText3: ; 445b0 (11:45b0)
+	TX_FAR _RockTunnel1AfterBattleText3
 	db "@"
 
-UnnamedText_445b5: ; 445b5 (11:45b5)
-	TX_FAR _UnnamedText_445b5
+RockTunnel1BattleText4: ; 445b5 (11:45b5)
+	TX_FAR _RockTunnel1BattleText4
 	db "@"
 
-UnnamedText_445ba: ; 445ba (11:45ba)
-	TX_FAR _UnnamedText_445ba
+RockTunnel1EndBattleText4: ; 445ba (11:45ba)
+	TX_FAR _RockTunnel1EndBattleText4
 	db "@"
 
-UnnamedText_445bf: ; 445bf (11:45bf)
-	TX_FAR _UnnamedText_445bf
+RockTunnel1AfterBattleText4: ; 445bf (11:45bf)
+	TX_FAR _RockTunnel1AfterBattleText4
 	db "@"
 
-UnnamedText_445c4: ; 445c4 (11:45c4)
-	TX_FAR _UnnamedText_445c4
+RockTunnel1BattleText5: ; 445c4 (11:45c4)
+	TX_FAR _RockTunnel1BattleText5
 	db "@"
 
-UnnamedText_445c9: ; 445c9 (11:45c9)
-	TX_FAR _UnnamedText_445c9
+RockTunnel1EndBattleText5: ; 445c9 (11:45c9)
+	TX_FAR _RockTunnel1EndBattleText5
 	db "@"
 
-UnnamedText_445ce: ; 445ce (11:45ce)
-	TX_FAR _UnnamedText_445ce
+RockTunnel1AfterBattleText5: ; 445ce (11:45ce)
+	TX_FAR _RockTunnel1AfterBattleText5
 	db "@"
 
-UnnamedText_445d3: ; 445d3 (11:45d3)
-	TX_FAR _UnnamedText_445d3
+RockTunnel1BattleText6: ; 445d3 (11:45d3)
+	TX_FAR _RockTunnel1BattleText6
 	db "@"
 
-UnnamedText_445d8: ; 445d8 (11:45d8)
-	TX_FAR _UnnamedText_445d8
+RockTunnel1EndBattleText6: ; 445d8 (11:45d8)
+	TX_FAR _RockTunnel1EndBattleText6
 	db "@"
 
-UnnamedText_445dd: ; 445dd (11:45dd)
-	TX_FAR _UnnamedText_445dd
+RockTunnel1AfterBattleText6: ; 445dd (11:45dd)
+	TX_FAR _RockTunnel1AfterBattleText6
 	db "@"
 
-UnnamedText_445e2: ; 445e2 (11:45e2)
-	TX_FAR _UnnamedText_445e2
+RockTunnel1BattleText7: ; 445e2 (11:45e2)
+	TX_FAR _RockTunnel1BattleText7
 	db "@"
 
-UnnamedText_445e7: ; 445e7 (11:45e7)
-	TX_FAR _UnnamedText_445e7
+RockTunnel1EndBattleText7: ; 445e7 (11:45e7)
+	TX_FAR _RockTunnel1EndBattleText7
 	db "@"
 
-UnnamedText_445ec: ; 445ec (11:45ec)
-	TX_FAR _UnnamedText_445ec
+RockTunnel1AfterBattleText7: ; 445ec (11:45ec)
+	TX_FAR _RockTunnel1AfterBattleText7
 	db "@"
 
 RockTunnel1Text8: ; 445f1 (11:45f1)
@@ -71455,7 +72023,7 @@ RockTunnel1Blocks: ; 44675 (11:4675)
 SeafoamIslands1_h: ; 0x447dd to 0x447e9 (12 bytes) (bank=11) (id=192)
 	db $11 ; tileset
 	db SEAFOAM_ISLANDS_1_HEIGHT, SEAFOAM_ISLANDS_1_WIDTH ; dimensions (y, x)
-	dw SeafoamIslands1Blocks, SeafoamIslands1Texts, SeafoamIslands1Script ; blocks, texts, scripts
+	dw SeafoamIslands1Blocks, SeafoamIslands1TextPointers, SeafoamIslands1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SeafoamIslands1Object ; objects
@@ -71507,8 +72075,9 @@ Seafoam1HolesCoords: ; 44846 (11:4846)
 	db $06,$18
 	db $ff
 
-SeafoamIslands1Texts: ; 4484b (11:484b)
-	dw BoulderText, BoulderText
+SeafoamIslands1TextPointers: ; 4484b (11:484b)
+	dw BoulderText
+	dw BoulderText
 
 SeafoamIslands1Object: ; 0x4484f (size=72)
 	db $7d ; border tile
@@ -71545,7 +72114,7 @@ SeafoamIslands1Blocks: ; 4489f (11:489f)
 SSAnne3_h: ; 0x44926 to 0x44932 (12 bytes) (bank=11) (id=97)
 	db $0d ; tileset
 	db SS_ANNE_3_HEIGHT, SS_ANNE_3_WIDTH ; dimensions (y, x)
-	dw SSAnne3Blocks, SSAnne3Texts, SSAnne3Script ; blocks, texts, scripts
+	dw SSAnne3Blocks, SSAnne3TextPointers, SSAnne3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne3Object ; objects
@@ -71553,7 +72122,7 @@ SSAnne3_h: ; 0x44926 to 0x44932 (12 bytes) (bank=11) (id=97)
 SSAnne3Script: ; 44932 (11:4932)
 	jp EnableAutoTextBoxDrawing
 
-SSAnne3Texts: ; 44935 (11:4935)
+SSAnne3TextPointers: ; 44935 (11:4935)
 	dw SSAnne3Text1
 
 SSAnne3Text1: ; 44937 (11:4937)
@@ -71582,7 +72151,7 @@ SSAnne3Blocks: ; 44956 (11:4956)
 VictoryRoad3_h: ; 0x44974 to 0x44980 (12 bytes) (bank=11) (id=198)
 	db $11 ; tileset
 	db VICTORY_ROAD_3_HEIGHT, VICTORY_ROAD_3_WIDTH ; dimensions (y, x)
-	dw VictoryRoad3Blocks, VictoryRoad3Texts, VictoryRoad3Script ; blocks, texts, scripts
+	dw VictoryRoad3Blocks, VictoryRoad3TextPointers, VictoryRoad3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VictoryRoad3Object ; objects
@@ -71591,7 +72160,7 @@ VictoryRoad3Script: ; 44980 (11:4980)
 	call VictoryRoad3Script_Unknown44996
 	call EnableAutoTextBoxDrawing
 	ld hl, VictoryRoad3TrainerHeaders
-	ld de, Unknown_449b1 ; $49b1
+	ld de, VictoryRoad3ScriptPointers
 	ld a, [W_VICTORYROAD3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_VICTORYROAD3CURSCRIPT], a
@@ -71611,13 +72180,17 @@ VictoryRoad3Script_Unknown44996: ; 44996 (11:4996)
 	ld a, $17
 	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
 
-Unknown_449b1: ; 449b1 (11:49b1)
-INCBIN "baserom.gbc",$449b1,$449b7 - $449b1
+VictoryRoad3ScriptPointers: ; 449b1 (11:49b1)
+	dw VictoryRoad3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+VictoryRoad3Script0: ; 449b7 (11:49b7)
 	ld hl, wFlags_0xcd60
 	bit 7, [hl]
 	res 7, [hl]
 	jp z, .asm_449fe
-	ld hl, .unknown_449f9 ; $49f9
+	ld hl, .coordsData_449f9 ; $49f9
 	call CheckBoulderCoords
 	jp nc, .asm_449fe
 	ld a, [wWhichTrade] ; $cd3d
@@ -71642,13 +72215,15 @@ INCBIN "baserom.gbc",$449b1,$449b7 - $449b1
 	ld a, $15
 	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
 
-.unknown_449f9: ; 449f9 (11:49f9)
-INCBIN "baserom.gbc",$449f9,$449fe - $449f9
+.coordsData_449f9: ; 449f9 (11:49f9)
+	db $05,$03
+	db $0F,$17
+	db $FF
 
 .asm_449fe
 	ld a, $c2
 	ld [$d71d], a
-	ld hl, .unknown_449f9 ; $49f9
+	ld hl, .coordsData_449f9 ; $49f9
 	call Func_46981
 	ld a, [wWhichTrade] ; $cd3d
 	cp $1
@@ -71664,8 +72239,17 @@ INCBIN "baserom.gbc",$449f9,$449fe - $449f9
 	jp z, CheckFightingMapTrainers
 	ret
 
-VictoryRoad3Texts: ; 44a24 (11:4a24)
-	dw VictoryRoad3Text1, VictoryRoad3Text2, VictoryRoad3Text3, VictoryRoad3Text4, Predef5CText, Predef5CText, BoulderText, BoulderText, BoulderText, BoulderText
+VictoryRoad3TextPointers: ; 44a24 (11:4a24)
+	dw VictoryRoad3Text1
+	dw VictoryRoad3Text2
+	dw VictoryRoad3Text3
+	dw VictoryRoad3Text4
+	dw Predef5CText
+	dw Predef5CText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
 
 VictoryRoad3TrainerHeaders: ; 44a38 (11:4a38)
 VictoryRoad3TrainerHeader0: ; 44a38 (11:4a38)
@@ -71704,7 +72288,7 @@ VictoryRoad3TrainerHeader4: ; 44a5c (11:4a5c)
 	dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
 	dw VictoryRoad3EndBattleText5 ; 0x4ac3 TextEndBattle
 
-db $ff
+	db $ff
 
 VictoryRoad3Text1: ; 44a69 (11:4a69)
 	db $08 ; asm
@@ -71813,29 +72397,59 @@ VictoryRoad3Blocks: ; 44b37 (11:4b37)
 RocketHideout1_h: ; 0x44bbe to 0x44bca (12 bytes) (bank=11) (id=199)
 	db $16 ; tileset
 	db ROCKET_HIDEOUT_1_HEIGHT, ROCKET_HIDEOUT_1_WIDTH ; dimensions (y, x)
-	dw RocketHideout1Blocks, RocketHideout1Texts, RocketHideout1Script ; blocks, texts, scripts
+	dw RocketHideout1Blocks, RocketHideout1TextPointers, RocketHideout1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RocketHideout1Object ; objects
 
 RocketHideout1Script: ; 44bca (11:4bca)
-	call Unknown_44be0
+	call Func_44be0
 	call EnableAutoTextBoxDrawing
 	ld hl, RocketHideout1TrainerHeaders
-	ld de, Unknown_44c0e ; $4c0e
+	ld de, RocketHideout1ScriptPointers
 	ld a, [W_ROCKETHIDEOUT1CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROCKETHIDEOUT1CURSCRIPT], a
 	ret
 
-Unknown_44be0: ; 44be0 (11:4be0)
-INCBIN "baserom.gbc",$44be0,$44c0e - $44be0
+Func_44be0: ; 44be0 (11:4be0)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d815]
+	bit 7, a
+	jr nz, .asm_44c01
+	bit 5, a
+	jr nz, .asm_44bf7
+	ld a, $54
+	jr .asm_44c03
+.asm_44bf7
+	ld a, $ad
+	call $23b1
+	ld hl, $d815
+	bit 7, [hl]
+.asm_44c01
+	ld a, $e
+.asm_44c03
+	ld [$d09f], a
+	ld bc, $080c
+	ld a, $17
+	jp Predef
 
-Unknown_44c0e: ; 44c0e (11:4c0e)
-INCBIN "baserom.gbc",$44c0e,$44c14 - $44c0e
+RocketHideout1ScriptPointers: ; 44c0e (11:4c0e)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-RocketHideout1Texts: ; 44c14 (11:4c14)
-	dw RocketHideout1Text1, RocketHideout1Text2, RocketHideout1Text3, RocketHideout1Text4, RocketHideout1Text5, Predef5CText, Predef5CText
+RocketHideout1TextPointers: ; 44c14 (11:4c14)
+	dw RocketHideout1Text1
+	dw RocketHideout1Text2
+	dw RocketHideout1Text3
+	dw RocketHideout1Text4
+	dw RocketHideout1Text5
+	dw Predef5CText
+	dw Predef5CText
 
 RocketHideout1TrainerHeaders: ; 44c22 (11:4c22)
 RocketHideout1TrainerHeader0: ; 44c22 (11:4c22)
@@ -71883,7 +72497,7 @@ RocketHideout1TrainerHeader5: ; 44c52 (11:4c52)
 	dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
 	dw RocketHideout1EndBattleText6 ; 0x4c91 TextEndBattle
 
-db $ff
+	db $ff
 
 RocketHideout1Text1: ; 44c5f (11:4c5f)
 	db $08 ; asm
@@ -72016,7 +72630,7 @@ RocketHideout1Blocks: ; 44d49 (11:4d49)
 RocketHideout2_h: ; 0x44e1b to 0x44e27 (12 bytes) (bank=11) (id=200)
 	db $16 ; tileset
 	db ROCKET_HIDEOUT_2_HEIGHT, ROCKET_HIDEOUT_2_WIDTH ; dimensions (y, x)
-	dw RocketHideout2Blocks, RocketHideout2Texts, RocketHideout2Script ; blocks, texts, scripts
+	dw RocketHideout2Blocks, RocketHideout2TextPointers, RocketHideout2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RocketHideout2Object ; objects
@@ -72024,14 +72638,321 @@ RocketHideout2_h: ; 0x44e1b to 0x44e27 (12 bytes) (bank=11) (id=200)
 RocketHideout2Script: ; 44e27 (11:4e27)
 	call EnableAutoTextBoxDrawing
 	ld hl, RocketHideout2TrainerHeaders
-	ld de, RocketHideout2_Unknown44e3a
+	ld de, RocketHideout2ScriptPointers
 	ld a, [W_ROCKETHIDEOUT2CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROCKETHIDEOUT2CURSCRIPT], a
 	ret
 
-RocketHideout2_Unknown44e3a: ; 44e3a (11:4e3a)
-INCBIN "baserom.gbc",$44e3a,$44fd7 - $44e3a
+RocketHideout2ScriptPointers: ; 44e3a (11:4e3a)
+	dw RocketHideout2Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw RocketHideout2Script3
+
+RocketHideout2Script0: ; 44e42 (11:4e42)
+	ld a, [W_YCOORD]
+	ld b, a
+	ld a, [W_XCOORD]
+	ld c, a
+	ld hl, RocketHideout2ArrowTilePlayerMovement
+	call Func_3442
+	cp $ff
+	jp z, CheckFightingMapTrainers
+	ld hl, $d736
+	set 7, [hl]
+	call Func_3486
+	ld a, $a7
+	call PlaySound
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+;format:
+;db y,x
+;dw pointer to movement
+RocketHideout2ArrowTilePlayerMovement: ; 44e6d (11:4e6d)
+	db $9,$4
+	dw RocketHideout2ArrowMovement1
+	db $b,$4
+	dw RocketHideout2ArrowMovement2
+	db $f,$4
+	dw RocketHideout2ArrowMovement3
+	db $10,$4
+	dw RocketHideout2ArrowMovement4
+	db $13,$4
+	dw RocketHideout2ArrowMovement1
+	db $16,$4
+	dw RocketHideout2ArrowMovement5
+	db $e,$5
+	dw RocketHideout2ArrowMovement6
+	db $16,$6
+	dw RocketHideout2ArrowMovement7
+	db $18,$6
+	dw RocketHideout2ArrowMovement8
+	db $9,$8
+	dw RocketHideout2ArrowMovement9
+	db $c,$8
+	dw RocketHideout2ArrowMovement10
+	db $f,$8
+	dw RocketHideout2ArrowMovement8
+	db $13,$8
+	dw RocketHideout2ArrowMovement9
+	db $17,$8
+	dw RocketHideout2ArrowMovement11
+	db $e,$9
+	dw RocketHideout2ArrowMovement12
+	db $16,$9
+	dw RocketHideout2ArrowMovement12
+	db $9,$a
+	dw RocketHideout2ArrowMovement13
+	db $a,$a
+	dw RocketHideout2ArrowMovement14
+	db $f,$a
+	dw RocketHideout2ArrowMovement15
+	db $11,$a
+	dw RocketHideout2ArrowMovement16
+	db $13,$a
+	dw RocketHideout2ArrowMovement17
+	db $19,$a
+	dw RocketHideout2ArrowMovement2
+	db $e,$b
+	dw RocketHideout2ArrowMovement18
+	db $10,$b
+	dw RocketHideout2ArrowMovement19
+	db $12,$b
+	dw RocketHideout2ArrowMovement12
+	db $9,$c
+	dw RocketHideout2ArrowMovement20
+	db $b,$c
+	dw RocketHideout2ArrowMovement21
+	db $d,$c
+	dw RocketHideout2ArrowMovement22
+	db $11,$c
+	dw RocketHideout2ArrowMovement23
+	db $a,$d
+	dw RocketHideout2ArrowMovement24
+	db $c,$d
+	dw RocketHideout2ArrowMovement25
+	db $10,$d
+	dw RocketHideout2ArrowMovement26
+	db $12,$d
+	dw RocketHideout2ArrowMovement27
+	db $13,$d
+	dw RocketHideout2ArrowMovement28
+	db $16,$d
+	dw RocketHideout2ArrowMovement29
+	db $17,$d
+	dw RocketHideout2ArrowMovement30
+	db $11,$e
+	dw RocketHideout2ArrowMovement31
+	db $10,$f
+	dw RocketHideout2ArrowMovement12
+	db $e,$10
+	dw RocketHideout2ArrowMovement32
+	db $10,$10
+	dw RocketHideout2ArrowMovement33
+	db $12,$10
+	dw RocketHideout2ArrowMovement34
+	db $a,$11
+	dw RocketHideout2ArrowMovement35
+	db $b,$11
+	dw RocketHideout2ArrowMovement36
+	db $FF
+
+;format: direction, count
+;right:	$10
+;left:	$20
+;up:	$40
+;down:	$80
+;each list is read starting from the $FF and working backwards
+RocketHideout2ArrowMovement1: ; 44f1a (11:4f1a)
+	db $20,$02
+	db $FF
+
+RocketHideout2ArrowMovement2: ; 44f1d (11:4f1d)
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement3: ; 44f20 (11:4f20)
+	db $40,$04
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement4: ; 44f25 (11:4f25)
+	db $40,$04
+	db $10,$04
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement5: ; 44f2c (11:4f2c)
+	db $20,$02
+	db $40,$03
+	db $FF
+
+RocketHideout2ArrowMovement6: ; 44f31 (11:4f31)
+	db $80,$02
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement7: ; 44f36 (11:4f36)
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement8: ; 44f39 (11:4f39)
+	db $40,$04
+	db $FF
+
+RocketHideout2ArrowMovement9: ; 44f3c (11:4f3c)
+	db $20,$06
+	db $FF
+
+RocketHideout2ArrowMovement10: ; 44f3f (11:4f3f)
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement11: ; 44f42 (11:4f42)
+	db $20,$06
+	db $40,$04
+	db $FF
+
+RocketHideout2ArrowMovement12: ; 44f47 (11:4f47)
+	db $80,$02
+	db $FF
+
+RocketHideout2ArrowMovement13: ; 44f4a (11:4f4a)
+	db $20,$08
+	db $FF
+
+RocketHideout2ArrowMovement14: ; 44f4d (11:4f4d)
+	db $20,$08
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement15: ; 44f52 (11:4f52)
+	db $20,$08
+	db $40,$06
+	db $FF
+
+RocketHideout2ArrowMovement16: ; 44f57 (11:4f57)
+	db $40,$02
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement17: ; 44f5c (11:4f5c)
+	db $40,$02
+	db $10,$04
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement18: ; 44f63 (11:4f63)
+	db $80,$02
+	db $10,$04
+	db $80,$02
+	db $FF
+
+RocketHideout2ArrowMovement19: ; 44f6a (11:4f6a)
+	db $80,$02
+	db $10,$04
+	db $FF
+
+RocketHideout2ArrowMovement20: ; 44f6f (11:4f6f)
+	db $20,$0A
+	db $FF
+
+RocketHideout2ArrowMovement21: ; 44f72 (11:4f72)
+	db $20,$0A
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement22: ; 44f77 (11:4f77)
+	db $20,$0A
+	db $40,$04
+	db $FF
+
+RocketHideout2ArrowMovement23: ; 44f7c (11:4f7c)
+	db $40,$02
+	db $10,$02
+	db $FF
+
+RocketHideout2ArrowMovement24: ; 44f81 (11:4f81)
+	db $10,$01
+	db $80,$02
+	db $FF
+
+RocketHideout2ArrowMovement25: ; 44f86 (11:4f86)
+	db $10,$01
+	db $FF
+
+RocketHideout2ArrowMovement26: ; 44f89 (11:4f89)
+	db $80,$02
+	db $10,$02
+	db $FF
+
+RocketHideout2ArrowMovement27: ; 44f8e (11:4f8e)
+	db $80,$02
+	db $20,$02
+	db $FF
+
+RocketHideout2ArrowMovement28: ; 44f93 (11:4f93)
+	db $40,$02
+	db $10,$04
+	db $40,$02
+	db $20,$03
+	db $FF
+
+RocketHideout2ArrowMovement29: ; 44f9c (11:4f9c)
+	db $80,$02
+	db $20,$04
+	db $FF
+
+RocketHideout2ArrowMovement30: ; 44fa1 (11:4fa1)
+	db $20,$06
+	db $40,$04
+	db $20,$05
+	db $FF
+
+RocketHideout2ArrowMovement31: ; 44fa8 (11:4fa8)
+	db $40,$02
+	db $FF
+
+RocketHideout2ArrowMovement32: ; 44fab (11:4fab)
+	db $40,$01
+	db $FF
+
+RocketHideout2ArrowMovement33: ; 44fae (11:4fae)
+	db $40,$03
+	db $FF
+
+RocketHideout2ArrowMovement34: ; 44fb1 (11:4fb1)
+	db $40,$05
+	db $FF
+
+RocketHideout2ArrowMovement35: ; 44fb4 (11:4fb4)
+	db $10,$01
+	db $80,$02
+	db $20,$04
+	db $FF
+
+RocketHideout2ArrowMovement36: ; 44fbb (11:4fbb)
+	db $20,$0A
+	db $40,$02
+	db $20,$05
+	db $FF
+
+RocketHideout2Script3: ; 44fc2 (11:4fc2)
+	ld a, [$cd38]
+	and a
+	jr nz, Func_44fd7
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d736
+	res 7, [hl]
+	ld a, $0
+	ld [W_CURMAPSCRIPT], a
+	ret
 
 Func_44fd7: ; 44fd7 (11:4fd7)
 	ld a, [$c102]
@@ -72174,8 +73095,12 @@ INCBIN "baserom.gbc",$45083,$45087 - $45083
 SpinnerArrowAnimTiles: ; 45087 (11:5087)
 	INCBIN "gfx/spinner_arrow.2bpp"
 
-RocketHideout2Texts: ; 450c7 (11:50c7)
-	dw RocketHideout2Text1, Predef5CText, Predef5CText, Predef5CText, Predef5CText
+RocketHideout2TextPointers: ; 450c7 (11:50c7)
+	dw RocketHideout2Text1
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 RocketHideout2TrainerHeaders: ; 450d1 (11:50d1)
 RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
@@ -72187,7 +73112,7 @@ RocketHideout2TrainerHeader0: ; 450d1 (11:50d1)
 	dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
 	dw RocketHideout2EndBattleText2 ; 0x50ed TextEndBattle
 
-db $ff
+	db $ff
 
 RocketHideout2Text1: ; 450de (11:50de)
 	db $08 ; asm
@@ -72239,7 +73164,7 @@ RocketHideout2Blocks: ; 45147 (11:5147)
 RocketHideout3_h: ; 0x45219 to 0x45225 (12 bytes) (bank=11) (id=201)
 	db $16 ; tileset
 	db ROCKET_HIDEOUT_3_HEIGHT, ROCKET_HIDEOUT_3_WIDTH ; dimensions (y, x)
-	dw RocketHideout3Blocks, RocketHideout3Texts, RocketHideout3Script ; blocks, texts, scripts
+	dw RocketHideout3Blocks, RocketHideout3TextPointers, RocketHideout3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RocketHideout3Object ; objects
@@ -72247,17 +73172,157 @@ RocketHideout3_h: ; 0x45219 to 0x45225 (12 bytes) (bank=11) (id=201)
 RocketHideout3Script: ; 45225 (11:5225)
 	call EnableAutoTextBoxDrawing
 	ld hl, RocketHideout3TrainerHeaders
-	ld de, RocketHideout3Script_Unknown45238
+	ld de, RocketHideout3ScriptPointers
 	ld a, [W_ROCKETHIDEOUT3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROCKETHIDEOUT3CURSCRIPT], a
 	ret
 
-RocketHideout3Script_Unknown45238: ; 45238 (11:5238)
-INCBIN "baserom.gbc",$45238,$452fa - $45238
+RocketHideout3ScriptPointers: ; 45238 (11:5238)
+	dw RocketHideout3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw RocketHideout3Script3
 
-RocketHideout3Texts: ; 452fa (11:52fa)
-	dw RocketHideout3Text1, RocketHideout3Text2, Predef5CText, Predef5CText
+RocketHideout3Script0: ; 45240 (11:5240)
+	ld a, [W_YCOORD]
+	ld b, a
+	ld a, [W_XCOORD]
+	ld c, a
+	ld hl, RocketHideout3ArrowTilePlayerMovement
+	call Func_3442
+	cp $ff
+	jp z, CheckFightingMapTrainers
+	ld hl, $d736
+	set 7, [hl]
+	call Func_3486
+	ld a, $a7
+	call PlaySound
+	ld a, $ff
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $3
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+;format:
+;db y,x
+;dw pointer to movement
+RocketHideout3ArrowTilePlayerMovement: ; 4526b (11:526b)
+	db $d,$a
+	dw RocketHideout3ArrowMovement6
+	db $13,$a
+	dw RocketHideout3ArrowMovement1
+	db $12,$b
+	dw RocketHideout3ArrowMovement2
+	db $b,$c
+	dw RocketHideout3ArrowMovement3
+	db $11,$c
+	dw RocketHideout3ArrowMovement4
+	db $14,$c
+	dw RocketHideout3ArrowMovement5
+	db $10,$d
+	dw RocketHideout3ArrowMovement6
+	db $b,$e
+	dw RocketHideout3ArrowMovement7
+	db $f,$e
+	dw RocketHideout3ArrowMovement6
+	db $11,$e
+	dw RocketHideout3ArrowMovement8
+	db $13,$e
+	dw RocketHideout3ArrowMovement9
+	db $10,$f
+	dw RocketHideout3ArrowMovement7
+	db $12,$f
+	dw RocketHideout3ArrowMovement10
+	db $d,$10
+	dw RocketHideout3ArrowMovement11
+	db $c,$11
+	dw RocketHideout3ArrowMovement10
+	db $10,$12
+	dw RocketHideout3ArrowMovement12
+	db $FF
+
+;format: direction, count
+;right:	$10
+;left:	$20
+;up:	$40
+;down:	$80
+;each list is read starting from the $FF and working backwards
+RocketHideout3ArrowMovement1: ; 452ac (11:52ac)
+	db $10,$04
+	db $40,$04
+	db $10,$04
+	db $FF
+
+RocketHideout3ArrowMovement2: ; 452b3 (11:52b3)
+	db $80,$04
+	db $10,$04
+	db $FF
+
+RocketHideout3ArrowMovement3: ; 452b8 (11:52b8)
+	db $20,$02
+	db $FF
+
+RocketHideout3ArrowMovement4: ; 452bb (11:52bb)
+	db $10,$04
+	db $40,$02
+	db $10,$02
+	db $FF
+
+RocketHideout3ArrowMovement5: ; 452c2 (11:52c2)
+	db $10,$04
+	db $40,$02
+	db $10,$02
+	db $40,$03
+	db $FF
+
+RocketHideout3ArrowMovement6: ; 452cb (11:52cb)
+	db $10,$04
+	db $FF
+
+RocketHideout3ArrowMovement7: ; 452ce (11:52ce)
+	db $10,$02
+	db $FF
+
+RocketHideout3ArrowMovement8: ; 452d1 (11:52d1)
+	db $10,$04
+	db $40,$02
+	db $FF
+
+RocketHideout3ArrowMovement9: ; 452d6 (11:52d6)
+	db $10,$04
+	db $40,$04
+	db $FF
+
+RocketHideout3ArrowMovement10: ; 452db (11:52db)
+	db $80,$04
+	db $FF
+
+RocketHideout3ArrowMovement11: ; 452de (11:52de)
+	db $40,$02
+	db $FF
+
+RocketHideout3ArrowMovement12: ; 452e1 (11:52e1)
+	db $40,$01
+	db $FF
+
+RocketHideout3Script3 ; 452e4 (11:452e4)
+	ld a, [$cd38]
+	and a
+	jp nz, Func_44fd7
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d736
+	res 7, [hl]
+	ld a, $0
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+RocketHideout3TextPointers: ; 452fa (11:52fa)
+	dw RocketHideout3Text1
+	dw RocketHideout3Text2
+	dw Predef5CText
+	dw Predef5CText
 
 RocketHideout3TrainerHeaders: ; 45302 (11:5302)
 RocketHideout3TrainerHeader0: ; 45302 (11:5302)
@@ -72278,7 +73343,7 @@ RocketHideout3TrainerHeader2: ; 4530e (11:530e)
 	dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
 	dw RocketHideout3EndBattleText3 ; 0x5343 TextEndBattle
 
-db $ff
+	db $ff
 
 RocketHideout3Text1: ; 4531b (11:531b)
 	db $08 ; asm
@@ -72344,29 +73409,103 @@ RocketHideout3Blocks: ; 4537f (11:537f)
 RocketHideout4_h: ; 0x45451 to 0x4545d (12 bytes) (bank=11) (id=202)
 	db $16 ; tileset
 	db ROCKET_HIDEOUT_4_HEIGHT, ROCKET_HIDEOUT_4_WIDTH ; dimensions (y, x)
-	dw RocketHideout4Blocks, RocketHideout4Texts, RocketHideout4Script ; blocks, texts, scripts
+	dw RocketHideout4Blocks, RocketHideout4TextPointers, RocketHideout4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RocketHideout4Object ; objects
 
 RocketHideout4Script: ; 4545d (11:545d)
-	call Unnamed_45473
+	call Func_45473
 	call EnableAutoTextBoxDrawing
 	ld hl, RocketHideout4TrainerHeader0
-	ld de, Unknown_454ae ; $54ae
+	ld de, RocketHideout4ScriptPointers
 	ld a, [W_ROCKETHIDEOUT4CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
 	ret
 
-Unnamed_45473: ; 45473 (11:5473)
-INCBIN "baserom.gbc",$45473,$454ae - $45473
+Func_45473: ; 45473 (11:5473)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld a, [$d81b]
+	bit 5, a
+	jr nz, .asm_45496
+	and $c
+	cp $c
+	jr z, .asm_4548c
+	ld a, $2d
+	jr .asm_45498
+.asm_4548c
+	ld a, $ad
+	call PlaySound
+	ld hl, $d81b
+	set 5, [hl]
+.asm_45496
+	ld a, $e
+.asm_45498
+	ld [$d09f], a
+	ld bc, $050c
+	ld a, $17
+	jp Predef
 
-Unknown_454ae: ; 454ae (11:54ae)
-INCBIN "baserom.gbc",$454ae,$45501 - $454ae
+Func_454a3: ; 454a3 (11:54a3)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
 
-RocketHideout4Texts: ; 45501 (11:5501)
-	dw RocketHideout4Text1, RocketHideout4Text2, RocketHideout4Text3, RocketHideout4Text4, Predef5CText, Predef5CText, Predef5CText, Predef5CText, Predef5CText, RocketHideout4Text10
+RocketHideout4ScriptPointers: ; 454ae (11:54ae)c
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw RocketHideout4Script3
+
+RocketHideout4Script3: ; 454b6 (11:54b6)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jp z, Func_454a3
+	call UpdateSprites
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d81b
+	set 7, [hl]
+	ld a, $a
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	call GBFadeIn1
+	ld a, $83
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld a, $87
+	ld [$cc4d], a
+	ld a, $15
+	call Predef
+	call UpdateSprites
+	call GBFadeOut1
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d126
+	set 5, [hl]
+	ld a, $0
+	ld [W_ROCKETHIDEOUT4CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+RocketHideout4TextPointers: ; 45501 (11:5501)
+	dw RocketHideout4Text1
+	dw RocketHideout4Text2
+	dw RocketHideout4Text3
+	dw RocketHideout4Text4
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw RocketHideout4Text10
 
 RocketHideout4TrainerHeaders: ; 45515 (11:5515)
 RocketHideout4TrainerHeader0: ; 45515 (11:5515)
@@ -72396,7 +73535,7 @@ RocketHideout4TrainerHeader3: ; 4552d (11:552d)
 	dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
 	dw RocketHideout4EndBattleText4 ; 0x55ca TextEndBattle
 
-db $ff
+	db $ff
 
 RocketHideout4Text1: ; 4553a (11:553a)
 	db $08 ; asm
@@ -72546,7 +73685,7 @@ RocketHideout4Blocks: ; 45650 (11:5650)
 RocketHideoutElevator_h: ; 0x45704 to 0x45710 (12 bytes) (bank=11) (id=203)
 	db $12 ; tileset
 	db ROCKET_HIDEOUT_ELEVATOR_HEIGHT, ROCKET_HIDEOUT_ELEVATOR_WIDTH ; dimensions (y, x)
-	dw RocketHideoutElevatorBlocks, RocketHideoutElevatorTexts, RocketHideoutElevatorScript ; blocks, texts, scripts
+	dw RocketHideoutElevatorBlocks, RocketHideoutElevatorTextPointers, RocketHideoutElevatorScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RocketHideoutElevatorObject ; objects
@@ -72592,7 +73731,7 @@ Func_4575f: ; 4575f (11:575f)
 	call Bankswitch
 	ret
 
-RocketHideoutElevatorTexts: ; 4576b (11:576b)
+RocketHideoutElevatorTextPointers: ; 4576b (11:576b)
 	dw RocketHideoutElevatorText1
 
 RocketHideoutElevatorText1: ; 4576d (11:576d)
@@ -72637,7 +73776,7 @@ RocketHideoutElevatorBlocks: ; 457a8 (11:57a8)
 SilphCoElevator_h: ; 0x457b4 to 0x457c0 (12 bytes) (bank=11) (id=236)
 	db $12 ; tileset
 	db SILPH_CO_ELEVATOR_HEIGHT, SILPH_CO_ELEVATOR_WIDTH ; dimensions (y, x)
-	dw SilphCoElevatorBlocks, SilphCoElevatorTexts, SilphCoElevatorScript ; blocks, texts, scripts
+	dw SilphCoElevatorBlocks, SilphCoElevatorTextPointers, SilphCoElevatorScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCoElevatorObject ; objects
@@ -72697,7 +73836,7 @@ Func_45827: ; 45827 (11:5827)
 	call Bankswitch ; indirect jump to Func_7bf15 (7bf15 (1e:7f15))
 	ret
 
-SilphCoElevatorTexts: ; 45833 (11:5833)
+SilphCoElevatorTextPointers: ; 45833 (11:5833)
 	dw SilphCoElevatorText1
 
 SilphCoElevatorText1: ; 45835 (11:5835)
@@ -72730,7 +73869,7 @@ SilphCoElevatorBlocks: ; 4585b (11:585b)
 SafariZoneEast_h: ; 0x4585f to 0x4586b (12 bytes) (bank=11) (id=217)
 	db $03 ; tileset
 	db SAFARI_ZONE_EAST_HEIGHT, SAFARI_ZONE_EAST_WIDTH ; dimensions (y, x)
-	dw SafariZoneEastBlocks, SafariZoneEastTexts, SafariZoneEastScript ; blocks, texts, scripts
+	dw SafariZoneEastBlocks, SafariZoneEastTextPointers, SafariZoneEastScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneEastObject ; objects
@@ -72738,8 +73877,14 @@ SafariZoneEast_h: ; 0x4585f to 0x4586b (12 bytes) (bank=11) (id=217)
 SafariZoneEastScript: ; 4586b (11:586b)
 	jp EnableAutoTextBoxDrawing
 
-SafariZoneEastTexts: ; 4586e (11:586e)
-	dw Predef5CText, Predef5CText, Predef5CText, Predef5CText, SafariZoneEastText5, SafariZoneEastText6, SafariZoneEastText7
+SafariZoneEastTextPointers: ; 4586e (11:586e)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SafariZoneEastText5
+	dw SafariZoneEastText6
+	dw SafariZoneEastText7
 
 SafariZoneEastText5: ; 4587c (11:587c)
 	TX_FAR _SafariZoneEastText5
@@ -72787,7 +73932,7 @@ SafariZoneEastBlocks: ; 458dc (11:58dc)
 SafariZoneNorth_h: ; 0x4599f to 0x459ab (12 bytes) (bank=11) (id=218)
 	db $03 ; tileset
 	db SAFARI_ZONE_NORTH_HEIGHT, SAFARI_ZONE_NORTH_WIDTH ; dimensions (y, x)
-	dw SafariZoneNorthBlocks, SafariZoneNorthTexts, SafariZoneNorthScript ; blocks, texts, scripts
+	dw SafariZoneNorthBlocks, SafariZoneNorthTextPointers, SafariZoneNorthScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneNorthObject ; objects
@@ -72795,8 +73940,14 @@ SafariZoneNorth_h: ; 0x4599f to 0x459ab (12 bytes) (bank=11) (id=218)
 SafariZoneNorthScript: ; 459ab (11:59ab)
 	jp EnableAutoTextBoxDrawing
 
-SafariZoneNorthTexts: ; 459ae (11:59ae)
-	dw Predef5CText, Predef5CText, SafariZoneNorthText3, SafariZoneNorthText4, SafariZoneNorthText5, SafariZoneNorthText6, SafariZoneNorthText7
+SafariZoneNorthTextPointers: ; 459ae (11:59ae)
+	dw Predef5CText
+	dw Predef5CText
+	dw SafariZoneNorthText3
+	dw SafariZoneNorthText4
+	dw SafariZoneNorthText5
+	dw SafariZoneNorthText6
+	dw SafariZoneNorthText7
 
 SafariZoneNorthText3: ; 459bc (11:59bc)
 	TX_FAR _SafariZoneNorthText3
@@ -72860,7 +74011,7 @@ SafariZoneNorthBlocks: ; 45a3e (11:5a3e)
 SafariZoneCenter_h: ; 0x45ba6 to 0x45bb2 (12 bytes) (bank=11) (id=220)
 	db $03 ; tileset
 	db SAFARI_ZONE_CENTER_HEIGHT, SAFARI_ZONE_CENTER_WIDTH ; dimensions (y, x)
-	dw SafariZoneCenterBlocks, SafariZoneCenterTexts, SafariZoneCenterScript ; blocks, texts, scripts
+	dw SafariZoneCenterBlocks, SafariZoneCenterTextPointers, SafariZoneCenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneCenterObject ; objects
@@ -72868,8 +74019,10 @@ SafariZoneCenter_h: ; 0x45ba6 to 0x45bb2 (12 bytes) (bank=11) (id=220)
 SafariZoneCenterScript: ; 45bb2 (11:5bb2)
 	jp EnableAutoTextBoxDrawing
 
-SafariZoneCenterTexts: ; 45bb5 (11:5bb5)
-	dw Predef5CText, SafariZoneCenterText2, SafariZoneCenterText3
+SafariZoneCenterTextPointers: ; 45bb5 (11:5bb5)
+	dw Predef5CText
+	dw SafariZoneCenterText2
+	dw SafariZoneCenterText3
 
 SafariZoneCenterText2: ; 45bbb (11:5bbb)
 	TX_FAR _SafariZoneCenterText2
@@ -72917,7 +74070,7 @@ SafariZoneCenterBlocks: ; 45c1e (11:5c1e)
 SafariZoneRestHouse1_h: ; 0x45ce1 to 0x45ced (12 bytes) (bank=11) (id=221)
 	db $0c ; tileset
 	db SAFARI_ZONE_REST_HOUSE_1_HEIGHT, SAFARI_ZONE_REST_HOUSE_1_WIDTH ; dimensions (y, x)
-	dw SafariZoneRestHouse1Blocks, SafariZoneRestHouse1Texts, SafariZoneRestHouse1Script ; blocks, texts, scripts
+	dw SafariZoneRestHouse1Blocks, SafariZoneRestHouse1TextPointers, SafariZoneRestHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneRestHouse1Object ; objects
@@ -72925,8 +74078,9 @@ SafariZoneRestHouse1_h: ; 0x45ce1 to 0x45ced (12 bytes) (bank=11) (id=221)
 SafariZoneRestHouse1Script: ; 45ced (11:5ced)
 	jp EnableAutoTextBoxDrawing
 
-SafariZoneRestHouse1Texts: ; 45cf0 (11:5cf0)
-	dw SafariZoneRestHouse1Text1, SafariZoneRestHouse1Text2
+SafariZoneRestHouse1TextPointers: ; 45cf0 (11:5cf0)
+	dw SafariZoneRestHouse1Text1
+	dw SafariZoneRestHouse1Text2
 
 SafariZoneRestHouse1Text1: ; 45cf4 (11:5cf4)
 	TX_FAR _SafariZoneRestHouse1Text1
@@ -72956,7 +74110,7 @@ SafariZoneRestHouse1Object: ; 0x45cfe (size=32)
 SafariZoneRestHouse2_h: ; 0x45d1e to 0x45d2a (12 bytes) (bank=11) (id=223)
 	db $0c ; tileset
 	db SAFARI_ZONE_REST_HOUSE_2_HEIGHT, SAFARI_ZONE_REST_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw $40fb, SafariZoneRestHouse2Texts, SafariZoneRestHouse2Script ; blocks, texts, scripts
+	dw $40fb, SafariZoneRestHouse2TextPointers, SafariZoneRestHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneRestHouse2Object ; objects
@@ -72965,8 +74119,10 @@ SafariZoneRestHouse2Script: ; 45d2a (11:5d2a)
 	call EnableAutoTextBoxDrawing
 	ret
 
-SafariZoneRestHouse2Texts: ; 45d2e (11:5d2e)
-	dw SafariZoneRestHouse2Text1, SafariZoneRestHouse2Text2, SafariZoneRestHouse2Text3
+SafariZoneRestHouse2TextPointers: ; 45d2e (11:5d2e)
+	dw SafariZoneRestHouse2Text1
+	dw SafariZoneRestHouse2Text2
+	dw SafariZoneRestHouse2Text3
 
 SafariZoneRestHouse2Text1: ; 45d34 (11:5d34)
 	TX_FAR _SafariZoneRestHouse2Text1
@@ -73001,7 +74157,7 @@ SafariZoneRestHouse2Object: ; 0x45d43 (size=38)
 SafariZoneRestHouse3_h: ; 0x45d69 to 0x45d75 (12 bytes) (bank=11) (id=224)
 	db $0c ; tileset
 	db SAFARI_ZONE_REST_HOUSE_3_HEIGHT, SAFARI_ZONE_REST_HOUSE_3_WIDTH ; dimensions (y, x)
-	dw $40fb, SafariZoneRestHouse3Texts, SafariZoneRestHouse3Script ; blocks, texts, scripts
+	dw $40fb, SafariZoneRestHouse3TextPointers, SafariZoneRestHouse3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneRestHouse3Object ; objects
@@ -73010,8 +74166,10 @@ SafariZoneRestHouse3Script: ; 45d75 (11:5d75)
 	call EnableAutoTextBoxDrawing
 	ret
 
-SafariZoneRestHouse3Texts: ; 45d79 (11:5d79)
-	dw SafariZoneRestHouse3Text1, SafariZoneRestHouse3Text2, SafariZoneRestHouse3Text3
+SafariZoneRestHouse3TextPointers: ; 45d79 (11:5d79)
+	dw SafariZoneRestHouse3Text1
+	dw SafariZoneRestHouse3Text2
+	dw SafariZoneRestHouse3Text3
 
 SafariZoneRestHouse3Text1: ; 45d7f (11:5d7f)
 	TX_FAR _SafariZoneRestHouse3Text1
@@ -73046,7 +74204,7 @@ SafariZoneRestHouse3Object: ; 0x45d8e (size=38)
 SafariZoneRestHouse4_h: ; 0x45db4 to 0x45dc0 (12 bytes) (bank=11) (id=225)
 	db $0c ; tileset
 	db SAFARI_ZONE_REST_HOUSE_4_HEIGHT, SAFARI_ZONE_REST_HOUSE_4_WIDTH ; dimensions (y, x)
-	dw $40fb, SafariZoneRestHouse4Texts, SafariZoneRestHouse4Script ; blocks, texts, scripts
+	dw $40fb, SafariZoneRestHouse4TextPointers, SafariZoneRestHouse4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneRestHouse4Object ; objects
@@ -73055,8 +74213,10 @@ SafariZoneRestHouse4Script: ; 45dc0 (11:5dc0)
 	call EnableAutoTextBoxDrawing
 	ret
 
-SafariZoneRestHouse4Texts: ; 45dc4 (11:5dc4)
-	dw SafariZoneRestHouse4Text1, SafariZoneRestHouse4Text2, SafariZoneRestHouse4Text3
+SafariZoneRestHouse4TextPointers: ; 45dc4 (11:5dc4)
+	dw SafariZoneRestHouse4Text1
+	dw SafariZoneRestHouse4Text2
+	dw SafariZoneRestHouse4Text3
 
 SafariZoneRestHouse4Text1: ; 45dca (11:5dca)
 	TX_FAR _SafariZoneRestHouse4Text1
@@ -73091,7 +74251,7 @@ SafariZoneRestHouse4Object: ; 0x45dd9 (size=38)
 UnknownDungeon2_h: ; 0x45dff to 0x45e0b (12 bytes) (bank=11) (id=226)
 	db $11 ; tileset
 	db UNKNOWN_DUNGEON_2_HEIGHT, UNKNOWN_DUNGEON_2_WIDTH ; dimensions (y, x)
-	dw UnknownDungeon2Blocks, UnknownDungeon2Texts, UnknownDungeon2Script ; blocks, texts, scripts
+	dw UnknownDungeon2Blocks, UnknownDungeon2TextPointers, UnknownDungeon2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UnknownDungeon2Object ; objects
@@ -73099,8 +74259,10 @@ UnknownDungeon2_h: ; 0x45dff to 0x45e0b (12 bytes) (bank=11) (id=226)
 UnknownDungeon2Script: ; 45e0b (11:5e0b)
 	jp EnableAutoTextBoxDrawing
 
-UnknownDungeon2Texts: ; 45e0e (11:5e0e)
-	dw Predef5CText, Predef5CText, Predef5CText
+UnknownDungeon2TextPointers: ; 45e0e (11:5e0e)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 UnknownDungeon2Object: ; 0x45e14 (size=73)
 	db $7d ; border tile
@@ -73134,7 +74296,7 @@ UnknownDungeon2Blocks: ; 45e5d (11:5e5d)
 UnknownDungeon3_h: ; 0x45ee4 to 0x45ef0 (12 bytes) (bank=11) (id=227)
 	db $11 ; tileset
 	db UNKNOWN_DUNGEON_3_HEIGHT, UNKNOWN_DUNGEON_3_WIDTH ; dimensions (y, x)
-	dw UnknownDungeon3Blocks, UnknownDungeon3Texts, UnknownDungeon3Script ; blocks, texts, scripts
+	dw UnknownDungeon3Blocks, UnknownDungeon3TextPointers, UnknownDungeon3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UnknownDungeon3Object ; objects
@@ -73142,17 +74304,21 @@ UnknownDungeon3_h: ; 0x45ee4 to 0x45ef0 (12 bytes) (bank=11) (id=227)
 UnknownDungeon3Script: ; 45ef0 (11:5ef0)
 	call EnableAutoTextBoxDrawing
 	ld hl, UnknownDungeon3TrainerHeaders
-	ld de, UnknownDungeon3Script_Unknown45f03
+	ld de, UnknownDungeon3ScriptPointers
 	ld a, [W_UNKNOWNDUNGEON3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_UNKNOWNDUNGEON3CURSCRIPT], a
 	ret
 
-UnknownDungeon3Script_Unknown45f03: ; 45f03 (11:5f03)
-INCBIN "baserom.gbc",$45f03,$45f09 - $45f03
+UnknownDungeon3ScriptPointers: ; 45f03 (11:5f03)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-UnknownDungeon3Texts: ; 45f09 (11:5f09)
-	dw UnknownDungeon3Text1, Predef5CText, Predef5CText
+UnknownDungeon3TextPointers: ; 45f09 (11:5f09)
+	dw UnknownDungeon3Text1
+	dw Predef5CText
+	dw Predef5CText
 
 UnknownDungeon3TrainerHeaders: ; 45f0f (11:5f0f)
 UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f)
@@ -73164,7 +74330,7 @@ UnknownDungeon3TrainerHeader0: ; 45f0f (11:5f0f)
 	dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
 	dw UnknownDungeon3MewtwoText ; 0x5f26 TextEndBattle
 
-db $ff
+	db $ff
 
 UnknownDungeon3Text1: ; 45f1c (11:5f1c)
 	db $08 ; asm
@@ -73202,7 +74368,7 @@ UnknownDungeon3Blocks: ; 45f58 (11:5f58)
 RockTunnel2_h: ; 0x45fdf to 0x45feb (12 bytes) (bank=11) (id=232)
 	db $11 ; tileset
 	db ROCK_TUNNEL_2_HEIGHT, ROCK_TUNNEL_2_WIDTH ; dimensions (y, x)
-	dw RockTunnel2Blocks, RockTunnel2Texts, RockTunnel2Script ; blocks, texts, scripts
+	dw RockTunnel2Blocks, RockTunnel2TextPointers, RockTunnel2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RockTunnel2Object ; objects
@@ -73210,17 +74376,26 @@ RockTunnel2_h: ; 0x45fdf to 0x45feb (12 bytes) (bank=11) (id=232)
 RockTunnel2Script: ; 45feb (11:5feb)
 	call EnableAutoTextBoxDrawing
 	ld hl, RockTunnel2TrainerHeaders
-	ld de, RockTunnel2Script_Unknown45ffe
+	ld de, RockTunnel2ScriptPointers
 	ld a, [W_ROCKTUNNEL2CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROCKTUNNEL2CURSCRIPT], a
 	ret
 
-RockTunnel2Script_Unknown45ffe: ; 45ffe (11:5ffe)
-INCBIN "baserom.gbc",$45ffe,$46004 - $45ffe
+RockTunnel2ScriptPointers: ; 45ffe (11:5ffe)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-RockTunnel2Texts: ; 46004 (11:6004)
-	dw RockTunnel2Text1, RockTunnel2Text2, RockTunnel2Text3, RockTunnel2Text4, RockTunnel2Text5, RockTunnel2Text6, RockTunnel2Text7, RockTunnel2Text8
+RockTunnel2TextPointers: ; 46004 (11:6004)
+	dw RockTunnel2Text1
+	dw RockTunnel2Text2
+	dw RockTunnel2Text3
+	dw RockTunnel2Text4
+	dw RockTunnel2Text5
+	dw RockTunnel2Text6
+	dw RockTunnel2Text7
+	dw RockTunnel2Text8
 
 RockTunnel2TrainerHeaders: ; 46014 (11:6014)
 RockTunnel2TrainerHeader0: ; 46014 (11:6014)
@@ -73295,7 +74470,7 @@ RockTunnel2TrainerHeader8: ; 46068 (11:6068)
 	dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
 	dw RockTunnel2EndBattleText9 ; 0x6133 TextEndBattle
 
-db $ff
+	db $ff
 
 RockTunnel2Text1: ; 46075 (11:6075)
 	db $08 ; asm
@@ -73474,7 +74649,7 @@ RockTunnel2Blocks: ; 461a1 (11:61a1)
 SeafoamIslands2_h: ; 0x46309 to 0x46315 (12 bytes) (bank=11) (id=159)
 	db $11 ; tileset
 	db SEAFOAM_ISLANDS_2_HEIGHT, SEAFOAM_ISLANDS_2_WIDTH ; dimensions (y, x)
-	dw SeafoamIslands2Blocks, SeafoamIslands2Texts, SeafoamIslands2Script ; blocks, texts, scripts
+	dw SeafoamIslands2Blocks, SeafoamIslands2TextPointers, SeafoamIslands2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SeafoamIslands2Object ; objects
@@ -73524,8 +74699,9 @@ Seafoam2HolesCoords: ; 4636d (11:636d)
 	db $06,$17
 	db $ff
 
-SeafoamIslands2Texts: ; 46372 (11:6372)
-	dw BoulderText, BoulderText
+SeafoamIslands2TextPointers: ; 46372 (11:6372)
+	dw BoulderText
+	dw BoulderText
 
 SeafoamIslands2Object: ; 0x46376 (size=72)
 	db $7d ; border tile
@@ -73560,7 +74736,7 @@ SeafoamIslands2Blocks: ; 463be (11:63be)
 SeafoamIslands3_h: ; 0x46445 to 0x46451 (12 bytes) (bank=11) (id=160)
 	db $11 ; tileset
 	db SEAFOAM_ISLANDS_3_HEIGHT, SEAFOAM_ISLANDS_3_WIDTH ; dimensions (y, x)
-	dw SeafoamIslands3Blocks, SeafoamIslands3Texts, SeafoamIslands3Script ; blocks, texts, scripts
+	dw SeafoamIslands3Blocks, SeafoamIslands3TextPointers, SeafoamIslands3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SeafoamIslands3Object ; objects
@@ -73610,8 +74786,9 @@ Seafoam3HolesCoords: ; 464a9 (11:64a9)
 	db $06,$16
 	db $ff
 
-SeafoamIslands3Texts: ; 464ae (11:64ae)
-	dw BoulderText, BoulderText
+SeafoamIslands3TextPointers: ; 464ae (11:64ae)
+	dw BoulderText
+	dw BoulderText
 
 SeafoamIslands3Object: ; 0x464b2 (size=72)
 	db $7d ; border tile
@@ -73646,7 +74823,7 @@ SeafoamIslands3Blocks: ; 464fa (11:64fa)
 SeafoamIslands4_h: ; 0x46581 to 0x4658d (12 bytes) (bank=11) (id=161)
 	db $11 ; tileset
 	db SEAFOAM_ISLANDS_4_HEIGHT, SEAFOAM_ISLANDS_4_WIDTH ; dimensions (y, x)
-	dw SeafoamIslands4Blocks, SeafoamIslands4Texts, SeafoamIslands4Script ; blocks, texts, scripts
+	dw SeafoamIslands4Blocks, SeafoamIslands4TextPointers, SeafoamIslands4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SeafoamIslands4Object ; objects
@@ -73695,7 +74872,7 @@ SeafoamIslands4Script: ; 4658d (11:658d)
 	bit 4, a
 	ret nz
 .asm_465ed
-	ld hl, SeafoamIslands4Scripts
+	ld hl, SeafoamIslands4ScriptPointers
 	ld a, [W_SEAFOAMISLANDS4CURSCRIPT]
 	jp CallFunctionInTable
 
@@ -73704,8 +74881,11 @@ Seafoam4HolesCoords: ; 465f6 (11:65f6)
 	db $10,$06
 	db $ff
 
-SeafoamIslands4Scripts: ; 465fb (11:65fb)
-	dw SeafoamIslands4Script0, SeafoamIslands4Script1, SeafoamIslands4Script2, SeafoamIslands4Script3
+SeafoamIslands4ScriptPointers: ; 465fb (11:65fb)
+	dw SeafoamIslands4Script0
+	dw SeafoamIslands4Script1
+	dw SeafoamIslands4Script2
+	dw SeafoamIslands4Script3
 
 SeafoamIslands4Script0: ; 46603 (11:6603)
 	ld a, [$d880]
@@ -73755,8 +74935,13 @@ SeafoamIslands4Script3: ; 4668f (11:668f)
 	ld [W_SEAFOAMISLANDS4CURSCRIPT], a
 	ret
 
-SeafoamIslands4Texts: ; 4669a (11:669a)
-	dw BoulderText, BoulderText, BoulderText, BoulderText, BoulderText, BoulderText
+SeafoamIslands4TextPointers: ; 4669a (11:669a)
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
 
 SeafoamIslands4Object: ; 0x466a6 (size=96)
 	db $7d ; border tile
@@ -73795,7 +74980,7 @@ SeafoamIslands4Blocks: ; 46706 (11:6706)
 SeafoamIslands5_h: ; 0x4678d to 0x46799 (12 bytes) (bank=11) (id=162)
 	db $11 ; tileset
 	db SEAFOAM_ISLANDS_5_HEIGHT, SEAFOAM_ISLANDS_5_WIDTH ; dimensions (y, x)
-	dw SeafoamIslands5Blocks, SeafoamIslands5Texts, SeafoamIslands5Script ; blocks, texts, scripts
+	dw SeafoamIslands5Blocks, SeafoamIslands5TextPointers, SeafoamIslands5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SeafoamIslands5Object ; objects
@@ -73803,31 +74988,46 @@ SeafoamIslands5_h: ; 0x4678d to 0x46799 (12 bytes) (bank=11) (id=162)
 SeafoamIslands5Script: ; 46799 (11:6799)
 	call EnableAutoTextBoxDrawing
 	ld a, [W_SEAFOAMISLANDS5CURSCRIPT]
-	ld hl, SeafoamIslands5Scripts
+	ld hl, SeafoamIslands5ScriptPointers
 	jp CallFunctionInTable
 
-INCBIN "baserom.gbc",$467a5,$467ad - $467a5
+SeafoamIslands5Script_467a5: ; 467a5 (11:67a5)
+	xor a
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ld [wJoypadForbiddenButtonsMask], a
+	ret
 
-SeafoamIslands5Scripts: ; 467ad (11:67ad)
-	dw SeafoamIslands5Script0, SeafoamIslands5Script1
+SeafoamIslands5ScriptPointers: ; 467ad (11:67ad)
+	dw SeafoamIslands5Script0
+	dw SeafoamIslands5Script1
+	dw SeafoamIslands5Script2
+	dw SeafoamIslands5Script3
+	dw SeafoamIslands5Script4
 
-INCBIN "baserom.gbc",$467b1,$467c7 - $467b1
+SeafoamIslands5Script4: ; 467b7 (11:67b7)
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jr z, SeafoamIslands5Script_467a5
+	call EndTrainerBattle
+	ld a, $0
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
 
 SeafoamIslands5Script0: ; 467c7 (11:67c7)
 	ld a, [$d880]
 	and $3
 	cp $3
 	ret z
-	ld hl, Unknown_467fe ; $67fe
+	ld hl, CoordsData_467fe
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, [$cd3d]
 	cp $3
-	jr nc, .asm_467e6 ; 0x467db $9
+	jr nc, .asm_467e6
 	ld a, $40
 	ld [$ccd4], a
 	ld a, $2
-	jr .asm_467e8 ; 0x467e4 $2
+	jr .asm_467e8
 .asm_467e6
 	ld a, $1
 .asm_467e8
@@ -73841,8 +75041,12 @@ SeafoamIslands5Script0: ; 467c7 (11:67c7)
 	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
 	ret
 
-Unknown_467fe: ; 467fe (11:67fe)
-INCBIN "baserom.gbc",$467fe,$46807 - $467fe
+CoordsData_467fe: ; 467fe (11:67fe)
+	db $11,$14
+	db $11,$15
+	db $10,$14
+	db $10,$15
+	db $FF
 
 SeafoamIslands5Script1: ; 46807 (11:6807)
 	ld a, [$cd38]
@@ -73854,10 +75058,75 @@ SeafoamIslands5Script1: ; 46807 (11:6807)
 	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
 	ret
 
-INCBIN "baserom.gbc",$46816,$4687c - $46816
+SeafoamIslands5Script2: ; 46816 (11:6816)
+	ld a, [$d881]
+	and $3
+	cp $3
+	ld a, $0
+	jr z, .asm_46849
+	ld hl, CoordsData_4684d
+	call ArePlayerCoordsInArray
+	ld a, $0
+	jr nc, .asm_46849
+	ld a, [$cd3d]
+	cp $1
+	jr nz, .asm_46837
+	ld de, RLEMovementData_46859
+	jr .asm_4683a
+.asm_46837
+	ld de, RLEMovementData_46852
+.asm_4683a
+	ld hl, $ccd3
+	call DecodeRLEList
+	dec a
+	ld [$cd38], a
+	call Func_3486
+	ld a, $3
+.asm_46849
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
 
-SeafoamIslands5Texts: ; 4687c (11:687c)
-	dw BoulderText, BoulderText, SeafoamIslands5Text3, SeafoamIslands5Text4, SeafoamIslands5Text5
+CoordsData_4684d: ; 4684d (11:684d)
+	db $0E,$04
+	db $0E,$05
+	db $FF
+
+RLEMovementData_46852: ; 46852 (11:6852)
+	db $40,$03
+	db $10,$02
+	db $40,$01
+	db $FF
+
+RLEMovementData_46859: ; 46859 (11:6859)
+	db $40,$03
+	db $10,$03
+	db $40,$01
+	db $FF
+
+SeafoamIslands5Script3: ; 46860 (11:6860)
+	ld a, [$cd38]
+	ld b, a
+	cp $1
+	call z, SeaFoamIslands5Script_46872
+	ld a, b
+	and a
+	ret nz
+	ld a, $0
+	ld [W_SEAFOAMISLANDS5CURSCRIPT], a
+	ret
+
+SeaFoamIslands5Script_46872: ; 46872 (11:6872)
+	xor a
+	ld [$d700], a
+	ld [$d11a], a
+	jp ForceBikeOrSurf
+
+SeafoamIslands5TextPointers: ; 4687c (11:687c)
+	dw BoulderText
+	dw BoulderText
+	dw SeafoamIslands5Text3
+	dw SeafoamIslands5Text4
+	dw SeafoamIslands5Text5
 
 SeafoamIslands5TrainerHeaders: ; 46886 (11:6886)
 SeafoamIslands5TrainerHeader0: ; 46886 (11:6886)
@@ -73869,7 +75138,7 @@ SeafoamIslands5TrainerHeader0: ; 46886 (11:6886)
 	dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
 	dw SeafoamIslands5BattleText2 ; 0x68a2 TextEndBattle
 
-db $ff
+	db $ff
 
 SeafoamIslands5Text3: ; 46893 (11:6893)
 	db $08 ; asm
@@ -74656,7 +75925,7 @@ Mansion1HiddenObjects: ; 46f2b (11:6f2b)
 	db $10,$08,MOON_STONE
 	dbw BANK(HiddenItems),HiddenItems
 	db $05,$02,$04 ; XXX, y, x
-	dbw $11,$4316
+	dbw BANK(Func_44316),Func_44316
 	db $FF
 Mansion2HiddenObjects: ; 46f38 (11:6f38)
 	db $0b,$02,$04 ; XXX, y, x
@@ -74970,7 +76239,7 @@ Route7Script: ; 48152 (12:4152)
 	jp EnableAutoTextBoxDrawing
 
 ; XXX
-db $57, $41
+	db $57, $41
 
 Route7Text1: ; 48157 (12:4157)
 	TX_FAR _Route7Text1
@@ -74979,15 +76248,16 @@ Route7Text1: ; 48157 (12:4157)
 RedsHouse1F_h: ; 4815c (12:415c)
 	db $01 ; tileset
 	db $04,$04 ; dimensions
-	dw RedsHouse1FBlocks, RedsHouse1FTexts, RedsHouse1FScript
+	dw RedsHouse1FBlocks, RedsHouse1FTextPointers, RedsHouse1FScript
 	db 0 ; no connections
 	dw RedsHouse1FObject
 
 RedsHouse1FScript: ; 48168 (12:4168)
 	jp EnableAutoTextBoxDrawing
 
-RedsHouse1FTexts: ; 4816b (12:416b)
-	dw RedsHouse1FText1,RedsHouse1FText2
+RedsHouse1FTextPointers: ; 4816b (12:416b)
+	dw RedsHouse1FText1
+	dw RedsHouse1FText2
 
 RedsHouse1FText1: ; 4816f (12:416f) ; 416F Mom
 	db 8
@@ -75083,7 +76353,7 @@ RedsHouse1FBlocks: ; 48209 (12:4209)
 CeladonMart3_h: ; 0x48219 to 0x48225 (12 bytes) (bank=12) (id=124)
 	db $12 ; tileset
 	db CELADON_MART_3_HEIGHT, CELADON_MART_3_WIDTH ; dimensions (y, x)
-	dw CeladonMart3Blocks, CeladonMart3Texts, CeladonMart3Script ; blocks, texts, scripts
+	dw CeladonMart3Blocks, CeladonMart3TextPointers, CeladonMart3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMart3Object ; objects
@@ -75091,8 +76361,24 @@ CeladonMart3_h: ; 0x48219 to 0x48225 (12 bytes) (bank=12) (id=124)
 CeladonMart3Script: ; 48225 (12:4225)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMart3Texts: ; 48228 (12:4228)
-	dw CeladonMart3Text1, CeladonMart3Text2, CeladonMart3Text3, CeladonMart3Text4, CeladonMart3Text5, CeladonMart3Text6, CeladonMart3Text7, CeladonMart3Text8, CeladonMart3Text9, CeladonMart3Text10, CeladonMart3Text11, CeladonMart3Text12, CeladonMart3Text13, CeladonMart3Text14, CeladonMart3Text15, CeladonMart3Text16, CeladonMart3Text17
+CeladonMart3TextPointers: ; 48228 (12:4228)
+	dw CeladonMart3Text1
+	dw CeladonMart3Text2
+	dw CeladonMart3Text3
+	dw CeladonMart3Text4
+	dw CeladonMart3Text5
+	dw CeladonMart3Text6
+	dw CeladonMart3Text7
+	dw CeladonMart3Text8
+	dw CeladonMart3Text9
+	dw CeladonMart3Text10
+	dw CeladonMart3Text11
+	dw CeladonMart3Text12
+	dw CeladonMart3Text13
+	dw CeladonMart3Text14
+	dw CeladonMart3Text15
+	dw CeladonMart3Text16
+	dw CeladonMart3Text17
 
 CeladonMart3Text1: ; 4824a (12:424a)
 	db $08 ; asm
@@ -75222,7 +76508,7 @@ CeladonMart3Blocks: ; 48322 (12:4322)
 CeladonMart4_h: ; 0x4834a to 0x48356 (12 bytes) (bank=12) (id=125)
 	db $12 ; tileset
 	db CELADON_MART_4_HEIGHT, CELADON_MART_4_WIDTH ; dimensions (y, x)
-	dw CeladonMart4Blocks, CeladonMart4Texts, CeladonMart4Script ; blocks, texts, scripts
+	dw CeladonMart4Blocks, CeladonMart4TextPointers, CeladonMart4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMart4Object ; objects
@@ -75230,8 +76516,11 @@ CeladonMart4_h: ; 0x4834a to 0x48356 (12 bytes) (bank=12) (id=125)
 CeladonMart4Script: ; 48356 (12:4356)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMart4Texts: ; 48359 (12:4359)
-	dw CeladonMart4Text1, CeladonMart4Text2, CeladonMart4Text3, CeladonMart4Text4
+CeladonMart4TextPointers: ; 48359 (12:4359)
+	dw CeladonMart4Text1
+	dw CeladonMart4Text2
+	dw CeladonMart4Text3
+	dw CeladonMart4Text4
 
 CeladonMart4Text2: ; 48361 (12:4361)
 	TX_FAR _CeladonMart4Text2
@@ -75272,7 +76561,7 @@ CeladonMart4Blocks: ; 483a1 (12:43a1)
 CeladonMartRoof_h: ; 0x483c9 to 0x483d5 (12 bytes) (bank=12) (id=126)
 	db $12 ; tileset
 	db CELADON_MART_ROOF_HEIGHT, CELADON_MART_ROOF_WIDTH ; dimensions (y, x)
-	dw CeladonMartRoofBlocks, CeladonMartRoofTexts, CeladonMartRoofScript ; blocks, texts, scripts
+	dw CeladonMartRoofBlocks, CeladonMartRoofTextPointers, CeladonMartRoofScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMartRoofObject ; objects
@@ -75467,8 +76756,13 @@ Func_48532: ; 48532 (12:4532)
 	pop hl
 	jr .asm_48538
 
-CeladonMartRoofTexts: ; 4855b (12:455b)
-	dw CeladonMartRoofText1, CeladonMartRoofText2, CeladonMartRoofText5, CeladonMartRoofText5, CeladonMartRoofText5, CeladonMartRoofText6
+CeladonMartRoofTextPointers: ; 4855b (12:455b)
+	dw CeladonMartRoofText1
+	dw CeladonMartRoofText2
+	dw CeladonMartRoofText5
+	dw CeladonMartRoofText5
+	dw CeladonMartRoofText5
+	dw CeladonMartRoofText6
 
 CeladonMartRoofText1: ; 48567 (12:4567)
 	TX_FAR _CeladonMartRoofText1
@@ -75537,7 +76831,7 @@ CeladonMartRoofBlocks: ; 485cc (12:45cc)
 CeladonMartElevator_h: ; 0x485f4 to 0x48600 (12 bytes) (bank=12) (id=127)
 	db $12 ; tileset
 	db CELADON_MART_ELEVATOR_HEIGHT, CELADON_MART_ELEVATOR_WIDTH ; dimensions (y, x)
-	dw CeladonMartElevatorBlocks, CeladonMartElevatorTexts, CeladonMartElevatorScript ; blocks, texts, scripts
+	dw CeladonMartElevatorBlocks, CeladonMartElevatorTextPointers, CeladonMartElevatorScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMartElevatorObject ; objects
@@ -75580,7 +76874,7 @@ Func_48654: ; 48654 (12:4654)
 	ld hl, Func_7bf15
 	jp Bankswitch
 
-CeladonMartElevatorTexts: ; 4865c (12:465c)
+CeladonMartElevatorTextPointers: ; 4865c (12:465c)
 	dw CeladonMartElevatorText1
 
 CeladonMartElevatorText1: ; 4865e (12:465e)
@@ -75613,7 +76907,7 @@ CeladonMartElevatorBlocks: ; 48684 (12:4684)
 CeladonMansion1_h: ; 0x48688 to 0x48694 (12 bytes) (bank=12) (id=128)
 	db $13 ; tileset
 	db CELADON_MANSION_1_HEIGHT, CELADON_MANSION_1_WIDTH ; dimensions (y, x)
-	dw CeladonMansion1Blocks, CeladonMansion1Texts, CeladonMansion1Script ; blocks, texts, scripts
+	dw CeladonMansion1Blocks, CeladonMansion1TextPointers, CeladonMansion1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMansion1Object ; objects
@@ -75621,8 +76915,12 @@ CeladonMansion1_h: ; 0x48688 to 0x48694 (12 bytes) (bank=12) (id=128)
 CeladonMansion1Script: ; 48694 (12:4694)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMansion1Texts: ; 48697 (12:4697)
-	dw CeladonMansion1Text1, CeladonMansion1Text2, CeladonMansion1Text3, CeladonMansion1Text4, CeladonMansion1Text5
+CeladonMansion1TextPointers: ; 48697 (12:4697)
+	dw CeladonMansion1Text1
+	dw CeladonMansion1Text2
+	dw CeladonMansion1Text3
+	dw CeladonMansion1Text4
+	dw CeladonMansion1Text5
 
 Func_486a1: ; 486a1 (12:46a1)
 	call PlayCry
@@ -75686,7 +76984,7 @@ CeladonMansion1Blocks: ; 48716 (12:4716)
 CeladonMansion2_h: ; 0x4872e to 0x4873a (12 bytes) (bank=12) (id=129)
 	db $13 ; tileset
 	db CELADON_MANSION_2_HEIGHT, CELADON_MANSION_2_WIDTH ; dimensions (y, x)
-	dw CeladonMansion2Blocks, CeladonMansion2Texts, CeladonMansion2Script ; blocks, texts, scripts
+	dw CeladonMansion2Blocks, CeladonMansion2TextPointers, CeladonMansion2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMansion2Object ; objects
@@ -75695,7 +76993,7 @@ CeladonMansion2Script: ; 4873a (12:473a)
 	call EnableAutoTextBoxDrawing
 	ret
 
-CeladonMansion2Texts: ; 4873e (12:473e)
+CeladonMansion2TextPointers: ; 4873e (12:473e)
 	dw CeladonMansion2Text1
 
 CeladonMansion2Text1: ; 48740 (12:4740)
@@ -75728,7 +77026,7 @@ CeladonMansion2Blocks: ; 4876c (12:476c)
 CeladonMansion3_h: ; 0x48784 to 0x48790 (12 bytes) (bank=12) (id=130)
 	db $13 ; tileset
 	db CELADON_MANSION_3_HEIGHT, CELADON_MANSION_3_WIDTH ; dimensions (y, x)
-	dw CeladonMansion3Blocks, CeladonMansion3Texts, CeladonMansion3Script ; blocks, texts, scripts
+	dw CeladonMansion3Blocks, CeladonMansion3TextPointers, CeladonMansion3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMansion3Object ; objects
@@ -75736,7 +77034,7 @@ CeladonMansion3_h: ; 0x48784 to 0x48790 (12 bytes) (bank=12) (id=130)
 CeladonMansion3Script: ; 48790 (12:4790)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMansion3Texts: ; 48793 (12:4793)
+CeladonMansion3TextPointers: ; 48793 (12:4793)
 	dw ProgrammerText
 	dw GraphicArtistText
 	dw WriterText
@@ -75840,7 +77138,7 @@ CeladonMansion3Blocks: ; 48847 (12:4847)
 CeladonMansion4_h: ; 0x4885f to 0x4886b (12 bytes) (bank=12) (id=131)
 	db $13 ; tileset
 	db CELADON_MANSION_4_HEIGHT, CELADON_MANSION_4_WIDTH ; dimensions (y, x)
-	dw CeladonMansion4Blocks, CeladonMansion4Texts, CeladonMansion4Script ; blocks, texts, scripts
+	dw CeladonMansion4Blocks, CeladonMansion4TextPointers, CeladonMansion4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMansion4Object ; objects
@@ -75848,7 +77146,7 @@ CeladonMansion4_h: ; 0x4885f to 0x4886b (12 bytes) (bank=12) (id=131)
 CeladonMansion4Script: ; 4886b (12:486b)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMansion4Texts: ; 4886e (12:486e)
+CeladonMansion4TextPointers: ; 4886e (12:486e)
 	dw CeladonMansion4Text1
 
 CeladonMansion4Text1: ; 48870 (12:4870)
@@ -75879,7 +77177,7 @@ CeladonMansion4Blocks: ; 48894 (12:4894)
 CeladonPokecenter_h: ; 0x488ac to 0x488b8 (12 bytes) (bank=12) (id=133)
 	db $06 ; tileset
 	db CELADON_POKECENTER_HEIGHT, CELADON_POKECENTER_WIDTH ; dimensions (y, x)
-	dw CeladonPokecenterBlocks, CeladonPokecenterTexts, CeladonPokecenterScript ; blocks, texts, scripts
+	dw CeladonPokecenterBlocks, CeladonPokecenterTextPointers, CeladonPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonPokecenterObject ; objects
@@ -75888,8 +77186,11 @@ CeladonPokecenterScript: ; 488b8 (12:48b8)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-CeladonPokecenterTexts: ; 488be (12:48be)
-	dw CeladonPokecenterText1, CeladonPokecenterText2, CeladonPokecenterText3, CeladonPokecenterText4
+CeladonPokecenterTextPointers: ; 488be (12:48be)
+	dw CeladonPokecenterText1
+	dw CeladonPokecenterText2
+	dw CeladonPokecenterText3
+	dw CeladonPokecenterText4
 
 CeladonPokecenterText4: ; 488c6 (12:48c6)
 	db $f6
@@ -75927,7 +77228,7 @@ CeladonPokecenterObject: ; 0x488d2 (size=44)
 CeladonGym_h: ; 0x488fe to 0x4890a (12 bytes) (bank=12) (id=134)
 	db $07 ; tileset
 	db CELADON_GYM_HEIGHT, CELADON_GYM_WIDTH ; dimensions (y, x)
-	dw CeladonGymBlocks, CeladonGymTexts, CeladonGymScript ; blocks, texts, scripts
+	dw CeladonGymBlocks, CeladonGymTextPointers, CeladonGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonGymObject ; objects
@@ -75936,16 +77237,16 @@ CeladonGymScript: ; 4890a (12:490a)
 	ld hl, $d126
 	bit 6, [hl]
 	res 6, [hl]
-	call nz, CeladonGymScript_Unknown48927
+	call nz, CeladonGymScript_48927
 	call EnableAutoTextBoxDrawing
 	ld hl, CeladonGymTrainerHeaders
-	ld de, Unknown_4894e ; $494e
+	ld de, CeladonGymScriptPointers
 	ld a, [W_CELADONGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_CELADONGYMCURSCRIPT], a
 	ret
 
-CeladonGymScript_Unknown48927: ; 48927 (12:4927)
+CeladonGymScript_48927: ; 48927 (12:4927)
 	ld hl, Gym4CityName ; $4930
 	ld de, Gym4LeaderName ; $493d
 	jp LoadGymLeaderAndCityName
@@ -75963,8 +77264,13 @@ Func_48943: ; 48943 (12:4943)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_4894e: ; 4894e (12:494e)
-INCBIN "baserom.gbc",$4894e,$48956 - $4894e
+CeladonGymScriptPointers: ; 4894e (12:494e)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw CeladonGymScript3
+
+CeladonGymScript3: ; 48956 (12:4956)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_48943
@@ -76002,8 +77308,18 @@ Func_48963: ; 48963 (12:4963)
 	set 0, [hl]
 	jp Func_48943
 
-CeladonGymTexts: ; 489a6 (12:49a6)
-	dw CeladonGymText1, CeladonGymText2, CeladonGymText3, CeladonGymText4, CeladonGymText5, CeladonGymText6, CeladonGymText7, CeladonGymText8, CeladonGymText9, TM21Text, TM21NoRoomText
+CeladonGymTextPointers: ; 489a6 (12:49a6)
+	dw CeladonGymText1
+	dw CeladonGymText2
+	dw CeladonGymText3
+	dw CeladonGymText4
+	dw CeladonGymText5
+	dw CeladonGymText6
+	dw CeladonGymText7
+	dw CeladonGymText8
+	dw CeladonGymText9
+	dw TM21Text
+	dw TM21NoRoomText
 
 CeladonGymTrainerHeaders: ; 489bc (12:49bc)
 CeladonGymTrainerHeader0: ; 489bc (12:49bc)
@@ -76069,7 +77385,7 @@ CeladonGymTrainerHeader7: ; 48a04 (12:4a04)
 	dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
 	dw CeladonGymEndBattleText8 ; 0x4b26 TextEndBattle
 
-db $ff
+	db $ff
 
 CeladonGymText1: ; 48a11 (12:4a11)
 	db $08 ; asm
@@ -76288,21 +77604,35 @@ CeladonGymBlocks: ; 48b84 (12:4b84)
 CeladonGameCorner_h: ; 0x48bb1 to 0x48bbd (12 bytes) (bank=12) (id=135)
 	db $12 ; tileset
 	db GAME_CORNER_HEIGHT, GAME_CORNER_WIDTH ; dimensions (y, x)
-	dw CeladonGameCornerBlocks, CeladonGameCornerTexts, CeladonGameCornerScript ; blocks, texts, scripts
+	dw CeladonGameCornerBlocks, CeladonGameCornerTextPointers, CeladonGameCornerScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonGameCornerObject ; objects
 
 CeladonGameCornerScript: ; 48bbd (12:4bbd)
-	call Unknown_48bcf
+	call CeladonGameCornerScript_48bcf
 	call Func_48bec
 	call EnableAutoTextBoxDrawing
-	ld hl, CeladonGameCornerScripts
+	ld hl, CeladonGameCornerScriptPointers
 	ld a, [W_CELADONGAMECORNERCURSCRIPT]
 	jp CallFunctionInTable
 
-Unknown_48bcf: ; 48bcf (12:4bcf)
-INCBIN "baserom.gbc",$48bcf,$48bec - $48bcf
+CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
+	ld hl, $d126
+	bit 6, [hl]
+	res 6, [hl]
+	ret z
+	call GenRandom
+	ld a, [$ffd3]
+	cp $7
+	jr nc, .asm_48be2
+	ld a, $8
+.asm_48be2
+	srl a
+	srl a
+	srl a
+	ld [$cd05], a
+	ret
 
 Func_48bec: ; 48bec (12:4bec)
 	ld hl, $d126
@@ -76318,24 +77648,89 @@ Func_48bec: ; 48bec (12:4bec)
 	ld a, $17
 	jp Predef
 
-INCBIN "baserom.gbc",$48c07,$48c12 - $48c07
+CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
 
-CeladonGameCornerScripts: ; 48c12 (12:4c12)
-	dw CeladonGameCornerScript0, CeladonGameCornerScript1, CeladonGameCornerScript2
+CeladonGameCornerScriptPointers: ; 48c12 (12:4c12)
+	dw CeladonGameCornerScript0
+	dw CeladonGameCornerScript1
+	dw CeladonGameCornerScript2
 
 CeladonGameCornerScript0: ; 48c18 (12:4c18)
 	ret
 
 CeladonGameCornerScript1: ; 48c19 (12:4c19)
-INCBIN "baserom.gbc",$48c19,$48c5a - $48c19
+	ld a, [W_ISINBATTLE]
+	cp $ff
+	jp z, CeladonGameCornerScript_48c07
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $d
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	ld a, $b
+	ld [H_SPRITEHEIGHT], a
+	call SetSpriteMovementBytesToFF
+	ld de, $4c5a
+	ld a, [$d361]
+	cp $6
+	jr nz, .asm_48c43
+	ld de, $4c63
+	jr .asm_48c4d
+.asm_48c43
+	ld a, [$d362]
+	cp $8
+	jr nz, .asm_48c4d
+	ld de, $4c63
+.asm_48c4d
+	ld a, $b
+	ld [H_DOWNARROWBLINKCNT2], a
+	call MoveSprite
+	ld a, $2
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	ret
 
-INCBIN "baserom.gbc",$48c5a,$48c69 - $48c5a
+MovementData_48c5a: ; 48c5a (12:4c5a)
+	db $00,$C0,$C0,$40,$C0,$C0,$C0,$C0,$FF
+
+MovementData_48c63: ; 48c63 (12:4c63)
+	db $C0,$C0,$C0,$C0,$C0,$FF
 
 CeladonGameCornerScript2: ; 48c69 (12:4c69)
-INCBIN "baserom.gbc",$48c69,$48c8a - $48c69
+	ld a, [$d730]
+	bit 0, a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld a, $46
+	ld [$cc4d], a
+	ld a, $11
+	call Predef
+	ld hl, $d126
+	set 5, [hl]
+	set 6, [hl]
+	ld a, $0
+	ld [W_CELADONGAMECORNERCURSCRIPT], a
+	ret
 
-CeladonGameCornerTexts: ; 48c8a (12:4c8a)
-	dw CeladonGameCornerText1, CeladonGameCornerText2, CeladonGameCornerText3, CeladonGameCornerText4, CeladonGameCornerText5, CeladonGameCornerText6, CeladonGameCornerText7, CeladonGameCornerText8, CeladonGameCornerText9, CeladonGameCornerText10, CeladonGameCornerText11, CeladonGameCornerText12, CeladonGameCornerText13
+CeladonGameCornerTextPointers: ; 48c8a (12:4c8a)
+	dw CeladonGameCornerText1
+	dw CeladonGameCornerText2
+	dw CeladonGameCornerText3
+	dw CeladonGameCornerText4
+	dw CeladonGameCornerText5
+	dw CeladonGameCornerText6
+	dw CeladonGameCornerText7
+	dw CeladonGameCornerText8
+	dw CeladonGameCornerText9
+	dw CeladonGameCornerText10
+	dw CeladonGameCornerText11
+	dw CeladonGameCornerText12
+	dw CeladonGameCornerText13
 
 CeladonGameCornerText1: ; 48ca4 (12:4ca4)
 	TX_FAR _CeladonGameCornerText1
@@ -76786,7 +78181,7 @@ CeladonGameCornerBlocks: ; 49003 (12:5003)
 CeladonMart5_h: ; 0x4905d to 0x49069 (12 bytes) (bank=12) (id=136)
 	db $12 ; tileset
 	db CELADON_MART_5_HEIGHT, CELADON_MART_5_WIDTH ; dimensions (y, x)
-	dw CeladonMart5Blocks, CeladonMart5Texts, CeladonMart5Script ; blocks, texts, scripts
+	dw CeladonMart5Blocks, CeladonMart5TextPointers, CeladonMart5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMart5Object ; objects
@@ -76794,8 +78189,12 @@ CeladonMart5_h: ; 0x4905d to 0x49069 (12 bytes) (bank=12) (id=136)
 CeladonMart5Script: ; 49069 (12:5069)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMart5Texts: ; 4906c (12:506c)
-	dw CeladonMart5Text1, CeladonMart5Text2, CeladonMart5Text3, CeladonMart5Text4, CeladonMart5Text5
+CeladonMart5TextPointers: ; 4906c (12:506c)
+	dw CeladonMart5Text1
+	dw CeladonMart5Text2
+	dw CeladonMart5Text3
+	dw CeladonMart5Text4
+	dw CeladonMart5Text5
 
 CeladonMart5Text1: ; 49076 (12:5076)
 	TX_FAR _CeladonMart5Text1
@@ -76837,7 +78236,7 @@ CeladonMart5Blocks: ; 490bc (12:50bc)
 CeladonPrizeRoom_h: ; 0x490e4 to 0x490f0 (12 bytes) (bank=12) (id=137)
 	db $12 ; tileset
 	db CELADONPRIZE_ROOM_HEIGHT, CELADONPRIZE_ROOM_WIDTH ; dimensions (y, x)
-	dw CeladonPrizeRoomBlocks, CeladonPrizeRoomTexts, CeladonPrizeRoomScript ; blocks, texts, scripts
+	dw CeladonPrizeRoomBlocks, CeladonPrizeRoomTextPointers, CeladonPrizeRoomScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonPrizeRoomObject ; objects
@@ -76845,8 +78244,12 @@ CeladonPrizeRoom_h: ; 0x490e4 to 0x490f0 (12 bytes) (bank=12) (id=137)
 CeladonPrizeRoomScript: ; 490f0 (12:50f0)
 	jp EnableAutoTextBoxDrawing
 
-CeladonPrizeRoomTexts: ; 490f3 (12:50f3)
-	dw CeladonPrizeRoomText1, CeladonPrizeRoomText2, CeladonPrizeRoomText3, CeladonPrizeRoomText3, CeladonPrizeRoomText3
+CeladonPrizeRoomTextPointers: ; 490f3 (12:50f3)
+	dw CeladonPrizeRoomText1
+	dw CeladonPrizeRoomText2
+	dw CeladonPrizeRoomText3
+	dw CeladonPrizeRoomText3
+	dw CeladonPrizeRoomText3
 
 CeladonPrizeRoomText1: ; 490fd (12:50fd)
 	TX_FAR _CeladonPrizeRoomText1
@@ -76885,7 +78288,7 @@ CeladonPrizeRoomBlocks: ; 49131 (12:5131)
 CeladonDiner_h: ; 0x49145 to 0x49151 (12 bytes) (bank=12) (id=138)
 	db $12 ; tileset
 	db CELADON_DINER_HEIGHT, CELADON_DINER_WIDTH ; dimensions (y, x)
-	dw CeladonDinerBlocks, CeladonDinerTexts, CeladonDinerScript ; blocks, texts, scripts
+	dw CeladonDinerBlocks, CeladonDinerTextPointers, CeladonDinerScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonDinerObject ; objects
@@ -76894,8 +78297,12 @@ CeladonDinerScript: ; 49151 (12:5151)
 	call EnableAutoTextBoxDrawing
 	ret
 
-CeladonDinerTexts: ; 49155 (12:5155)
-	dw CeladonDinerText1, CeladonDinerText2, CeladonDinerText3, CeladonDinerText4, CeladonDinerText5
+CeladonDinerTextPointers: ; 49155 (12:5155)
+	dw CeladonDinerText1
+	dw CeladonDinerText2
+	dw CeladonDinerText3
+	dw CeladonDinerText4
+	dw CeladonDinerText5
 
 CeladonDinerText1: ; 4915f (12:515f)
 	TX_FAR _CeladonDinerText1
@@ -76980,7 +78387,7 @@ CeladonDinerBlocks: ; 491ee (12:51ee)
 CeladonHouse_h: ; 0x49202 to 0x4920e (12 bytes) (bank=12) (id=139)
 	db $13 ; tileset
 	db CELADON_HOUSE_HEIGHT, CELADON_HOUSE_WIDTH ; dimensions (y, x)
-	dw CeladonHouseBlocks, CeladonHouseTexts, CeladonHouseScript ; blocks, texts, scripts
+	dw CeladonHouseBlocks, CeladonHouseTextPointers, CeladonHouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonHouseObject ; objects
@@ -76989,8 +78396,10 @@ CeladonHouseScript: ; 4920e (12:520e)
 	call EnableAutoTextBoxDrawing
 	ret
 
-CeladonHouseTexts: ; 49212 (12:5212)
-	dw CeladonHouseText1, CeladonHouseText2, CeladonHouseText3
+CeladonHouseTextPointers: ; 49212 (12:5212)
+	dw CeladonHouseText1
+	dw CeladonHouseText2
+	dw CeladonHouseText3
 
 CeladonHouseText1: ; 49218 (12:5218)
 	TX_FAR _CeladonHouseText1
@@ -77028,7 +78437,7 @@ CeladonHouseBlocks: ; 4924d (12:524d)
 CeladonHotel_h: ; 0x4925d to 0x49269 (12 bytes) (bank=12) (id=140)
 	db $06 ; tileset
 	db CELADONHOTEL_HEIGHT, CELADONHOTEL_WIDTH ; dimensions (y, x)
-	dw CeladonHotelBlocks, CeladonHotelTexts, CeladonHotelScript ; blocks, texts, scripts
+	dw CeladonHotelBlocks, CeladonHotelTextPointers, CeladonHotelScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonHotelObject ; objects
@@ -77036,8 +78445,10 @@ CeladonHotel_h: ; 0x4925d to 0x49269 (12 bytes) (bank=12) (id=140)
 CeladonHotelScript: ; 49269 (12:5269)
 	jp EnableAutoTextBoxDrawing
 
-CeladonHotelTexts: ; 4926c (12:526c)
-	dw CeladonHotelText1, CeladonHotelText2, CeladonHotelText3
+CeladonHotelTextPointers: ; 4926c (12:526c)
+	dw CeladonHotelText1
+	dw CeladonHotelText2
+	dw CeladonHotelText3
 
 CeladonHotelText1: ; 49272 (12:5272)
 	TX_FAR _CeladonHotelText1
@@ -77075,7 +78486,7 @@ CeladonHotelBlocks: ; 492a7 (12:52a7)
 MtMoonPokecenter_h: ; 0x492c3 to 0x492cf (12 bytes) (bank=12) (id=68)
 	db $06 ; tileset
 	db MT_MOON_POKECENTER_HEIGHT, MT_MOON_POKECENTER_WIDTH ; dimensions (y, x)
-	dw MtMoonPokecenterBlocks, MtMoonPokecenterTexts, MtMoonPokecenterScript ; blocks, texts, scripts
+	dw MtMoonPokecenterBlocks, MtMoonPokecenterTextPointers, MtMoonPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw MtMoonPokecenterObject ; objects
@@ -77084,8 +78495,13 @@ MtMoonPokecenterScript: ; 492cf (12:52cf)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-MtMoonPokecenterTexts: ; 492d5 (12:52d5)
-	dw MtMoonPokecenterText1, MtMoonPokecenterText2, MtMoonPokecenterText3, MtMoonPokecenterText4, MtMoonPokecenterText5, MtMoonPokecenterText6
+MtMoonPokecenterTextPointers: ; 492d5 (12:52d5)
+	dw MtMoonPokecenterText1
+	dw MtMoonPokecenterText2
+	dw MtMoonPokecenterText3
+	dw MtMoonPokecenterText4
+	dw MtMoonPokecenterText5
+	dw MtMoonPokecenterText6
 
 MtMoonPokecenterText1: ; 492e1 (12:52e1)
 	db $ff
@@ -77197,7 +78613,7 @@ MtMoonPokecenterObject: ; 0x49376 (size=56)
 RockTunnelPokecenter_h: ; 0x493ae to 0x493ba (12 bytes) (id=81)
 	db $06 ; tileset
 	db ROCK_TUNNEL_POKECENTER_HEIGHT, ROCK_TUNNEL_POKECENTER_WIDTH ; dimensions (y, x)
-	dw RockTunnelPokecenterBlocks, RockTunnelPokecenterTexts, RockTunnelPokecenterScript ; blocks, texts, scripts
+	dw RockTunnelPokecenterBlocks, RockTunnelPokecenterTextPointers, RockTunnelPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw RockTunnelPokecenterObject ; objects
@@ -77206,8 +78622,11 @@ RockTunnelPokecenterScript: ; 493ba (12:53ba)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-RockTunnelPokecenterTexts: ; 493c0 (12:53c0)
-	dw RockTunnelPokecenterText1, RockTunnelPokecenterText2, RockTunnelPokecenterText3, RockTunnelPokecenterText4
+RockTunnelPokecenterTextPointers: ; 493c0 (12:53c0)
+	dw RockTunnelPokecenterText1
+	dw RockTunnelPokecenterText2
+	dw RockTunnelPokecenterText3
+	dw RockTunnelPokecenterText4
 
 RockTunnelPokecenterText1: ; 493c8 (12:53c8)
 	db $ff
@@ -77245,7 +78664,7 @@ RockTunnelPokecenterObject: ; 0x493d4 (size=44)
 Route11Gate_h: ; 0x49400 to 0x4940c (12 bytes) (id=84)
 	db $0c ; tileset
 	db ROUTE_11_GATE_1F_HEIGHT, ROUTE_11_GATE_1F_WIDTH ; dimensions (y, x)
-	dw Route11GateBlocks, Route11GateTexts, Route11GateScript ; blocks, texts, scripts
+	dw Route11GateBlocks, Route11GateTextPointers, Route11GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route11GateObject ; objects
@@ -77253,7 +78672,7 @@ Route11Gate_h: ; 0x49400 to 0x4940c (12 bytes) (id=84)
 Route11GateScript: ; 4940c (12:540c)
 	jp EnableAutoTextBoxDrawing
 
-Route11GateTexts: ; 4940f (12:540f)
+Route11GateTextPointers: ; 4940f (12:540f)
 	dw Route11GateText1
 
 Route11GateText1: ; 49411 (12:5411)
@@ -77285,7 +78704,7 @@ Route11GateObject: ; 0x49416 (size=50)
 Route11GateUpstairs_h: ; 0x49448 to 0x49454 (12 bytes) (id=86)
 	db $0c ; tileset
 	db ROUTE_11_GATE_2F_HEIGHT, ROUTE_11_GATE_2F_WIDTH ; dimensions (y, x)
-	dw Route11GateUpstairsBlocks, Route11GateUpstairsTexts, Route11GateUpstairsScript ; blocks, texts, scripts
+	dw Route11GateUpstairsBlocks, Route11GateUpstairsTextPointers, Route11GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route11GateUpstairsObject ; objects
@@ -77293,8 +78712,11 @@ Route11GateUpstairs_h: ; 0x49448 to 0x49454 (12 bytes) (id=86)
 Route11GateUpstairsScript: ; 49454 (12:5454)
 	jp DisableAutoTextBoxDrawing
 
-Route11GateUpstairsTexts: ; 49457 (12:5457)
-	dw Route11GateUpstairsText1, Route11GateUpstairsText2, Route11GateUpstairsText3, Route11GateUpstairsText4
+Route11GateUpstairsTextPointers: ; 49457 (12:5457)
+	dw Route11GateUpstairsText1
+	dw Route11GateUpstairsText2
+	dw Route11GateUpstairsText3
+	dw Route11GateUpstairsText4
 
 Route11GateUpstairsText1: ; 4945f (12:545f)
 	db $08 ; asm
@@ -77389,7 +78811,7 @@ Route11GateUpstairsObject: ; 0x494da (size=30)
 Route12Gate_h: ; 0x494f8 to 0x49504 (12 bytes) (id=87)
 	db $0c ; tileset
 	db ROUTE_12_GATE_HEIGHT, ROUTE_12_GATE_WIDTH ; dimensions (y, x)
-	dw Route12GateBlocks, Route12GateTexts, Route12GateScript ; blocks, texts, scripts
+	dw Route12GateBlocks, Route12GateTextPointers, Route12GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route12GateObject ; objects
@@ -77397,7 +78819,7 @@ Route12Gate_h: ; 0x494f8 to 0x49504 (12 bytes) (id=87)
 Route12GateScript: ; 49504 (12:5504)
 	jp EnableAutoTextBoxDrawing
 
-Route12GateTexts: ; 49507 (12:5507)
+Route12GateTextPointers: ; 49507 (12:5507)
 	dw Route12GateText1
 
 Route12GateText1: ; 49509 (12:5509)
@@ -77432,7 +78854,7 @@ Route12GateBlocks: ; 49540 (12:5540)
 Route12GateUpstairs_h: ; 0x49554 to 0x49560 (12 bytes) (id=195)
 	db $0c ; tileset
 	db ROUTE_12_GATE_2F_HEIGHT, ROUTE_12_GATE_2F_WIDTH ; dimensions (y, x)
-	dw Route12GateUpstairsBlocks, Route12GateUpstairsTexts, Route12GateUpstairsScript ; blocks, texts, scripts
+	dw Route12GateUpstairsBlocks, Route12GateUpstairsTextPointers, Route12GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route12GateUpstairsObject ; objects
@@ -77440,8 +78862,10 @@ Route12GateUpstairs_h: ; 0x49554 to 0x49560 (12 bytes) (id=195)
 Route12GateUpstairsScript: ; 49560 (12:5560)
 	jp DisableAutoTextBoxDrawing
 
-Route12GateUpstairsTexts: ; 49563 (12:5563)
-	dw Route12GateUpstairsText1, Route12GateUpstairsText2, Route12GateUpstairsText3
+Route12GateUpstairsTextPointers: ; 49563 (12:5563)
+	dw Route12GateUpstairsText1
+	dw Route12GateUpstairsText2
+	dw Route12GateUpstairsText3
 
 Route12GateUpstairsText1: ; 49569 (12:5569)
 	db $08 ; asm
@@ -77534,7 +78958,7 @@ Route12GateUpstairsObject: ; 0x495de (size=24)
 Route15Gate_h: ; 0x495f6 to 0x49602 (12 bytes) (id=184)
 	db $0c ; tileset
 	db ROUTE_15_GATE_1F_HEIGHT, ROUTE_15_GATE_1F_WIDTH ; dimensions (y, x)
-	dw Route15GateBlocks, Route15GateTexts, Route15GateScript ; blocks, texts, scripts
+	dw Route15GateBlocks, Route15GateTextPointers, Route15GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route15GateObject ; objects
@@ -77542,7 +78966,7 @@ Route15Gate_h: ; 0x495f6 to 0x49602 (12 bytes) (id=184)
 Route15GateScript: ; 49602 (12:5602)
 	jp EnableAutoTextBoxDrawing
 
-Route15GateTexts: ; 49605 (12:5605)
+Route15GateTextPointers: ; 49605 (12:5605)
 	dw Route15GateText1
 
 Route15GateText1: ; 49607 (12:5607)
@@ -77574,7 +78998,7 @@ Route15GateObject: ; 0x4960c (size=50)
 Route15GateUpstairs_h: ; 4963e (12:563e)
 	db $0c ; tileset
 	db ROUTE_15_GATE_2F_HEIGHT, ROUTE_15_GATE_2F_WIDTH ; dimensions (y, x)
-	dw Route15GateUpstairsBlocks, Route15GateUpstairsTexts, Route15GateUpstairsScript ; blocks, texts, scripts
+	dw Route15GateUpstairsBlocks, Route15GateUpstairsTextPointers, Route15GateUpstairsScript ; blocks, texts, scripts
 	;dw 40db, 564d, 564a ; blocks, texts, scripts
 	db $00 ; connections
 	dw Route15GateUpstairsObject ; objects
@@ -77582,7 +79006,7 @@ Route15GateUpstairs_h: ; 4963e (12:563e)
 Route15GateUpstairsScript: ; 4964a (12:564a)
 	jp DisableAutoTextBoxDrawing
 
-Route15GateUpstairsTexts: ; 4964d (12:564d)
+Route15GateUpstairsTextPointers: ; 4964d (12:564d)
 	dw Route15GateUpstairsText1
 	dw Route15GateUpstairsText2
 
@@ -77645,7 +79069,7 @@ Route15GateUpstairsObject: ; 4969d (12:569d)
 Route16GateMap_h: ; 0x496b2 to 0x496be (12 bytes) (id=186)
 	db $0c ; tileset
 	db ROUTE_16_GATE_1F_HEIGHT, ROUTE_16_GATE_1F_WIDTH ; dimensions (y, x)
-	dw Route16GateMapBlocks, Route16GateMapTexts, Route16GateMapScript ; blocks, texts, scripts
+	dw Route16GateMapBlocks, Route16GateMapTextPointers, Route16GateMapScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route16GateMapObject ; objects
@@ -77655,18 +79079,19 @@ Route16GateMapScript: ; 496be (12:56be)
 	res 5, [hl]
 	call EnableAutoTextBoxDrawing
 	ld a, [W_ROUTE16GATECURSCRIPT]
-	ld hl, Route16GateMapScripts
+	ld hl, Route16GateMapScriptPointers
 	jp CallFunctionInTable
 
-Route16GateMapScripts: ; 496cf (12:56cf)
+Route16GateMapScriptPointers: ; 496cf (12:56cf)
 	dw Route16GateMapScript0
-
-INCBIN "baserom.gbc",$496d1,$496d7 - $496d1
+	dw Route16GateMapScript1
+	dw Route16GateMapScript2
+	dw Route16GateMapScript3
 
 Route16GateMapScript0: ; 496d7 (12:56d7)
 	call Func_49755
 	ret nz
-	ld hl, Unknown_49714 ; $5714
+	ld hl, CoordsData_49714
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $3
@@ -77694,15 +79119,53 @@ Route16GateMapScript0: ; 496d7 (12:56d7)
 	ld [W_ROUTE16GATECURSCRIPT], a
 	ret
 
-Unknown_49714: ; 49714 (12:5714)
-INCBIN "baserom.gbc",$49714,$49755 - $49714
+CoordsData_49714: ; 49714 (12:5714)
+	db $07,$04
+	db $08,$04
+	db $09,$04
+	db $0A,$04
+	db $FF
+
+Route16GateMapScript1: ; 4971d (12:571d)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+Route16GateMapScript2: ; 49727 (12:5727)
+	ld a, $1
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	ld a, $1
+	ld [$cd38], a
+	ld a, $10
+	ld [$ccd3], a
+	call Func_3486
+	ld a, $3
+	ld [W_ROUTE16GATECURSCRIPT], a
+	ret
+
+Route16GateMapScript3: ; 49741 (12:5741)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d730
+	res 7, [hl]
+	ld a, $0
+	ld [W_ROUTE16GATECURSCRIPT], a
+	ret
 
 Func_49755: ; 49755 (12:5755)
 	ld b, $6
 	jp IsItemInBag
 
-Route16GateMapTexts: ; 4975a (12:575a)
-	dw Route16GateMapText1, Route16GateMapText2, Route16GateMapText3
+Route16GateMapTextPointers: ; 4975a (12:575a)
+	dw Route16GateMapText1
+	dw Route16GateMapText2
+	dw Route16GateMapText3
 
 Route16GateMapText1: ; 49760 (12:5760)
 	db $08 ; asm
@@ -77770,7 +79233,7 @@ Route16GateMapBlocks: ; 497e3 (12:57e3)
 Route16GateUpstairs_h: ; 0x497ff to 0x4980b (12 bytes) (id=187)
 	db $0c ; tileset
 	db ROUTE_16_GATE_2F_HEIGHT, ROUTE_16_GATE_2F_WIDTH ; dimensions (y, x)
-	dw Route16GateUpstairsBlocks, Route16GateUpstairsTexts, Route16GateUpstairsScript ; blocks, texts, scripts
+	dw Route16GateUpstairsBlocks, Route16GateUpstairsTextPointers, Route16GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route16GateUpstairsObject ; objects
@@ -77778,8 +79241,11 @@ Route16GateUpstairs_h: ; 0x497ff to 0x4980b (12 bytes) (id=187)
 Route16GateUpstairsScript: ; 4980b (12:580b)
 	jp DisableAutoTextBoxDrawing
 
-Route16GateUpstairsTexts: ; 4980e (12:580e)
-	dw Route16GateUpstairsText1, Route16GateUpstairsText2, Route16GateUpstairsText3, Route16GateUpstairsText4
+Route16GateUpstairsTextPointers: ; 4980e (12:580e)
+	dw Route16GateUpstairsText1
+	dw Route16GateUpstairsText2
+	dw Route16GateUpstairsText3
+	dw Route16GateUpstairsText4
 
 Route16GateUpstairsText1: ; 49816 (12:5816)
 	db $08 ; asm
@@ -77839,7 +79305,7 @@ Route16GateUpstairsObject: ; 0x4984c (size=30)
 Route18Gate_h: ; 0x4986a to 0x49876 (12 bytes) (id=190)
 	db $0c ; tileset
 	db ROUTE_18_GATE_1F_HEIGHT, ROUTE_18_GATE_1F_WIDTH ; dimensions (y, x)
-	dw Route18GateBlocks, Route18GateTexts, Route18GateScript ; blocks, texts, scripts
+	dw Route18GateBlocks, Route18GateTextPointers, Route18GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route18GateObject ; objects
@@ -77849,18 +79315,19 @@ Route18GateScript: ; 49876 (12:5876)
 	res 5, [hl]
 	call EnableAutoTextBoxDrawing
 	ld a, [W_ROUTE18GATECURSCRIPT]
-	ld hl, Route18GateScripts
+	ld hl, Route18GateScriptPointers
 	jp CallFunctionInTable
 
-Route18GateScripts: ; 49887 (12:5887)
+Route18GateScriptPointers: ; 49887 (12:5887)
 	dw Route18GateScript0
-
-INCBIN "baserom.gbc",$49889,$4988f - $49889
+	dw Route18GateScript1
+	dw Route18GateScript2
+	dw Route18GateScript3
 
 Route18GateScript0: ; 4988f (12:588f)
 	call Func_49755
 	ret nz
-	ld hl, Unknown_498cc ; $58cc
+	ld hl, CoordsData_498cc
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $2
@@ -77888,11 +79355,48 @@ Route18GateScript0: ; 4988f (12:588f)
 	ld [W_ROUTE18GATECURSCRIPT], a
 	ret
 
-Unknown_498cc: ; 498cc (12:58cc)
-INCBIN "baserom.gbc",$498cc,$4990d - $498cc
+CoordsData_498cc: ; 498cc (12:58cc)
+	db $03,$04
+	db $04,$04
+	db $05,$04
+	db $06,$04
+	db $FF
 
-Route18GateTexts: ; 4990d (12:590d)
-	dw Route18GateText1, Route18GateText2
+Route18GateScript1: ; 498d5 (12:58d5)
+	ld a, [$cd38]
+	and a
+	ret nz
+	ld a, $f0
+	ld [wJoypadForbiddenButtonsMask], a
+
+Route18GateScript2: ; 498df (12:58df)
+	ld a, $1
+	ld [H_SPRITEHEIGHT], a
+	call DisplayTextID
+	ld a, $1
+	ld [$cd38], a
+	ld a, $10
+	ld [$ccd3], a
+	call Func_3486
+	ld a, $3
+	ld [W_ROUTE18GATECURSCRIPT], a
+	ret
+
+Route18GateScript3: ; 498f9 (12:58f9)
+	ld a, [$cd38]
+	and a
+	ret nz
+	xor a
+	ld [wJoypadForbiddenButtonsMask], a
+	ld hl, $d730
+	res 7, [hl]
+	ld a, $0
+	ld [W_ROUTE18GATECURSCRIPT], a
+	ret
+
+Route18GateTextPointers: ; 4990d (12:590d)
+	dw Route18GateText1
+	dw Route18GateText2
 
 Route18GateText1: ; 49911 (12:5911)
 	db $08 ; asm
@@ -77944,7 +79448,7 @@ Route18GateObject: ; 0x49937 (size=50)
 Route18GateUpstairs_h: ; 0x49969 to 0x49975 (12 bytes) (id=191)
 	db $0c ; tileset
 	db ROUTE_18_GATE_2F_HEIGHT, ROUTE_18_GATE_2F_WIDTH ; dimensions (y, x)
-	dw Route18GateUpstairsBlocks, Route18GateUpstairsTexts, Route18GateUpstairsScript ; blocks, texts, scripts
+	dw Route18GateUpstairsBlocks, Route18GateUpstairsTextPointers, Route18GateUpstairsScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route18GateUpstairsObject ; objects
@@ -77952,8 +79456,10 @@ Route18GateUpstairs_h: ; 0x49969 to 0x49975 (12 bytes) (id=191)
 Route18GateUpstairsScript: ; 49975 (12:5975)
 	jp DisableAutoTextBoxDrawing
 
-Route18GateUpstairsTexts: ; 49978 (12:5978)
-	dw Route18GateUpstairsText1, Route18GateUpstairsText2, Route18GateUpstairsText3
+Route18GateUpstairsTextPointers: ; 49978 (12:5978)
+	dw Route18GateUpstairsText1
+	dw Route18GateUpstairsText2
+	dw Route18GateUpstairsText3
 
 Route18GateUpstairsText1: ; 4997e (12:597e)
 	db $08 ; asm
@@ -78000,7 +79506,7 @@ Route18GateUpstairsObject: ; 0x499a4 (size=24)
 MtMoon1_h: ; 0x499bc to 0x499c8 (12 bytes) (id=59)
 	db $11 ; tileset
 	db MT_MOON_1_HEIGHT, MT_MOON_1_WIDTH ; dimensions (y, x)
-	dw MtMoon1Blocks, MtMoon1Texts, MtMoon1Script ; blocks, texts, scripts
+	dw MtMoon1Blocks, MtMoon1TextPointers, MtMoon1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw MtMoon1Object ; objects
@@ -78008,17 +79514,32 @@ MtMoon1_h: ; 0x499bc to 0x499c8 (12 bytes) (id=59)
 MtMoon1Script: ; 499c8 (12:59c8)
 	call EnableAutoTextBoxDrawing
 	ld hl, MtMoon1TrainerHeader0
-	ld de, Unknown_59db
+	ld de, MtMoon1ScriptPointers
 	ld a, [W_MTMOON1CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_MTMOON1CURSCRIPT], a
 	ret
 
-Unknown_59db: ; 499db (12:59db)
-INCBIN "baserom.gbc",$499db,$499e1 - $499db
+MtMoon1ScriptPointers: ; 499db (12:59db)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-MtMoon1Texts: ; 499e1 (12:59e1)
-	dw MtMoon1Text1, MtMoon1Text2, MtMoon1Text3, MtMoon1Text4, MtMoon1Text5, MtMoon1Text6, MtMoon1Text7, Predef5CText, Predef5CText, Predef5CText, Predef5CText, Predef5CText, Predef5CText, MtMoon1Text14
+MtMoon1TextPointers: ; 499e1 (12:59e1)
+	dw MtMoon1Text1
+	dw MtMoon1Text2
+	dw MtMoon1Text3
+	dw MtMoon1Text4
+	dw MtMoon1Text5
+	dw MtMoon1Text6
+	dw MtMoon1Text7
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw MtMoon1Text14
 
 MtMoon1TrainerHeaders: ; 499fd (12:59fd)
 MtMoon1TrainerHeader0: ; 499fd (12:59fd)
@@ -78084,7 +79605,7 @@ MtMoon1TrainerHeader7: ; 49a45 (12:5a45)
 	dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
 	dw MtMoon1EndBattleText8 ; 0x5af7 TextEndBattle
 
-db $ff
+	db $ff
 
 MtMoon1Text1: ; 49a52 (12:5a52)
 	db $08 ; asm
@@ -78257,7 +79778,7 @@ MtMoon1Blocks: ; 49b97 (12:5b97)
 MtMoon3_h: ; 0x49cff to 0x49d0b (12 bytes) (id=61)
 	db $11 ; tileset
 	db MT_MOON_3_HEIGHT, MT_MOON_3_WIDTH ; dimensions (y, x)
-	dw MtMoon3Blocks, MtMoon3Texts, MtMoon3Script ; blocks, texts, scripts
+	dw MtMoon3Blocks, MtMoon3TextPointers, MtMoon3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw MtMoon3Object ; objects
@@ -78265,14 +79786,14 @@ MtMoon3_h: ; 0x49cff to 0x49d0b (12 bytes) (id=61)
 MtMoon3Script: ; 49d0b (12:5d0b)
 	call EnableAutoTextBoxDrawing
 	ld hl, MtMoon3TrainerHeader0 ; $5e48
-	ld de, Unknown_49d63 ; $5d63
+	ld de, MtMoon3ScriptPointers
 	ld a, [W_MTMOON3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_MTMOON3CURSCRIPT], a
 	ld a, [$d7f6]
 	bit 1, a
 	ret z
-	ld hl, Unknown_49d37 ; $5d37
+	ld hl, CoordsData_49d37
 	call ArePlayerCoordsInArray
 	jr nc, .asm_49d31 ; 0x49d29 $6
 	ld hl, $d72e
@@ -78283,8 +79804,24 @@ MtMoon3Script: ; 49d0b (12:5d0b)
 	res 4, [hl]
 	ret
 
-Unknown_49d37: ; 49d37 (12:5d37)
-INCBIN "baserom.gbc",$49d37,$49d58 - $49d37
+CoordsData_49d37: ; 49d37 (12:5d37)
+	db $05,$0B
+	db $05,$0C
+	db $05,$0D
+	db $05,$0E
+	db $06,$0B
+	db $06,$0C
+	db $06,$0D
+	db $06,$0E
+	db $07,$0B
+	db $07,$0C
+	db $07,$0D
+	db $07,$0E
+	db $08,$0B
+	db $08,$0C
+	db $08,$0D
+	db $08,$0E
+	db $FF
 
 Func_49d58: ; 49d58 (12:5d58)
 	xor a
@@ -78293,8 +79830,15 @@ Func_49d58: ; 49d58 (12:5d58)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_49d63: ; 49d63 (12:5d63)
-INCBIN "baserom.gbc",$49d63,$49d6f - $49d63
+MtMoon3ScriptPointers: ; 49d63 (12:5d63)
+	dw MtMoon3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw MtMoon3Script3
+	dw MtMoon3Script4
+	dw MtMoon3Script5
+
+MtMoon3Script0: ; 49d6f (12:5d6f)
 	ld a, [$d7f6]
 	bit 1, a
 	jp nz, Func_49d91
@@ -78315,6 +79859,8 @@ Func_49d91: ; 49d91 (12:5d91)
 	and $c0
 	jp z, CheckFightingMapTrainers
 	ret
+
+MtMoon3Script3: ; 49d9a (12:5d9a)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_49d58
@@ -78328,19 +79874,21 @@ Func_49d91: ; 49d91 (12:5d91)
 	ld [W_MTMOON3CURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
+
+MtMoon3Script4: ; 49dba (12:5dba)
 	ld a, $1
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	call SetSpriteMovementBytesToFF
-	ld hl, Unknown_49dea ; $5dea
+	ld hl, CoordsData_49dea
 	call ArePlayerCoordsInArray
 	jr c, .asm_49dd7
-	ld hl, Unknown_49df1 ; $5df1
+	ld hl, CoordsData_49df1
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
-	ld de, Unknown_49df9 ; $5df9
+	ld de, MovementData_49df9
 	jr .asm_49dda
 .asm_49dd7
-	ld de, Unknown_49df8 ; $5df8
+	ld de, MovementData_49df8
 .asm_49dda
 	ld a, $1
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -78350,17 +79898,25 @@ Func_49d91: ; 49d91 (12:5d91)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_49dea: ; 49dea (12:5dea)
-INCBIN "baserom.gbc",$49dea,$49df1 - $49dea
+CoordsData_49dea: ; 49dea (12:5dea)
+	db $07,$0C
+	db $06,$0B
+	db $05,$0C
+	db $FF
 
-Unknown_49df1: ; 49df1 (12:5df1)
-INCBIN "baserom.gbc",$49df1,$49df8 - $49df1
+CoordsData_49df1: ; 49df1 (12:5df1)
+	db $07,$0D
+	db $06,$0E
+	db $05,$0E
+	db $FF
 
-Unknown_49df8: ; 49df8 (12:5df8)
-INCBIN "baserom.gbc",$49df8,$49df9 - $49df8
+MovementData_49df8: ; 49df8 (12:5df8)
+	db $C0
 
-Unknown_49df9: ; 49df9 (12:5df9)
-INCBIN "baserom.gbc",$49df9,$49dfb - $49df9
+MovementData_49df9: ; 49df9 (12:5df9)
+	db $40,$FF
+
+MtMoon3Script5: ; 49dfb (12:5dfb)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -78389,8 +79945,17 @@ INCBIN "baserom.gbc",$49df9,$49dfb - $49df9
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-MtMoon3Texts: ; 49e34 (12:5e34)
-	dw MtMoon3Text1, MtMoon3Text2, MtMoon3Text3, MtMoon3Text4, MtMoon3Text5, MtMoon3Text6, MtMoon3Text7, Predef5CText, Predef5CText, Unnamed_49f99
+MtMoon3TextPointers: ; 49e34 (12:5e34)
+	dw MtMoon3Text1
+	dw MtMoon3Text2
+	dw MtMoon3Text3
+	dw MtMoon3Text4
+	dw MtMoon3Text5
+	dw MtMoon3Text6
+	dw MtMoon3Text7
+	dw Predef5CText
+	dw Predef5CText
+	dw Unnamed_49f99
 
 MtMoon3TrainerHeaders: ; 49e48 (12:5e48)
 MtMoon3TrainerHeader0: ; 49e48 (12:5e48)
@@ -78429,7 +79994,7 @@ MtMoon3TrainerHeader4: ; 49e6c (12:5e6c)
 	dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
 	dw MtMoon3EndBattleText5 ; 0x5fd1 TextEndBattle
 
-db $ff
+	db $ff
 
 MtMoon3Text1: ; 49e79 (12:5e79)
 	db $08 ; asm
@@ -78666,7 +80231,7 @@ MtMoon3Blocks: ; 4a041 (12:6041)
 SafariZoneWest_h: ; 0x4a1a9 to 0x4a1b5 (12 bytes) (id=219)
 	db $03 ; tileset
 	db SAFARI_ZONE_WEST_HEIGHT, SAFARI_ZONE_WEST_WIDTH ; dimensions (y, x)
-	dw SafariZoneWestBlocks, SafariZoneWestTexts, SafariZoneWestScript ; blocks, texts, scripts
+	dw SafariZoneWestBlocks, SafariZoneWestTextPointers, SafariZoneWestScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneWestObject ; objects
@@ -78674,8 +80239,15 @@ SafariZoneWest_h: ; 0x4a1a9 to 0x4a1b5 (12 bytes) (id=219)
 SafariZoneWestScript: ; 4a1b5 (12:61b5)
 	jp EnableAutoTextBoxDrawing
 
-SafariZoneWestTexts: ; 4a1b8 (12:61b8)
-	dw Predef5CText, Predef5CText, Predef5CText, Predef5CText, SafariZoneWestText5, SafariZoneWestText6, SafariZoneWestText7, SafariZoneWestText8
+SafariZoneWestTextPointers: ; 4a1b8 (12:61b8)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SafariZoneWestText5
+	dw SafariZoneWestText6
+	dw SafariZoneWestText7
+	dw SafariZoneWestText8
 
 SafariZoneWestText5: ; 4a1c8 (12:61c8)
 	TX_FAR _SafariZoneWestText5
@@ -78734,7 +80306,7 @@ SafariZoneWestBlocks: ; 4a248 (12:6248)
 SafariZoneSecretHouse_h: ; 0x4a30b to 0x4a317 (12 bytes) (id=222)
 	db $14 ; tileset
 	db SAFARI_ZONE_SECRET_HOUSE_HEIGHT, SAFARI_ZONE_SECRET_HOUSE_WIDTH ; dimensions (y, x)
-	dw SafariZoneSecretHouseBlocks, SafariZoneSecretHouseTexts, SafariZoneSecretHouseScript ; blocks, texts, scripts
+	dw SafariZoneSecretHouseBlocks, SafariZoneSecretHouseTextPointers, SafariZoneSecretHouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneSecretHouseObject ; objects
@@ -78742,7 +80314,7 @@ SafariZoneSecretHouse_h: ; 0x4a30b to 0x4a317 (12 bytes) (id=222)
 SafariZoneSecretHouseScript: ; 4a317 (12:6317)
 	jp EnableAutoTextBoxDrawing
 
-SafariZoneSecretHouseTexts: ; 4a31a (12:631a)
+SafariZoneSecretHouseTextPointers: ; 4a31a (12:631a)
 	dw SafariZoneSecretHouseText1
 
 SafariZoneSecretHouseText1: ; 4a31c (12:631c)
@@ -78902,7 +80474,7 @@ LancePic: ; 4fba2 (13:7ba2)
 BattleCenterM_h: ; 0x4fd04 to 0x4fd10 (12 bytes) (id=239)
 	db $15 ; tileset
 	db BATTLE_CENTER_HEIGHT, BATTLE_CENTER_WIDTH ; dimensions (y, x)
-	dw BattleCenterMBlocks, BattleCenterMTexts, BattleCenterMScript ; blocks, texts, scripts
+	dw BattleCenterMBlocks, BattleCenterMTextPointers, BattleCenterMScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw BattleCenterMObject ; objects
@@ -78939,7 +80511,7 @@ BattleCenterMScript: ; 4fd10 (13:7d10)
 	ld [$c119], a
 	ret
 
-BattleCenterMTexts: ; 4fd4c (13:7d4c)
+BattleCenterMTextPointers: ; 4fd4c (13:7d4c)
 	dw BattleCenterMText1
 
 BattleCenterMText1: ; 4fd4e (13:7d4e)
@@ -78962,7 +80534,7 @@ BattleCenterMBlocks: ; 4fd5d (13:7d5d)
 TradeCenterM_h: ; 0x4fd71 to 0x4fd7d (12 bytes) (id=240)
 	db $15 ; tileset
 	db TRADE_CENTER_HEIGHT, TRADE_CENTER_WIDTH ; dimensions (y, x)
-	dw TradeCenterMBlocks, TradeCenterMTexts, TradeCenterMScript ; blocks, texts, scripts
+	dw TradeCenterMBlocks, TradeCenterMTextPointers, TradeCenterMScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw TradeCenterMObject ; objects
@@ -78970,7 +80542,7 @@ TradeCenterM_h: ; 0x4fd71 to 0x4fd7d (12 bytes) (id=240)
 TradeCenterMScript: ; 4fd7d (13:7d7d)
 	jp BattleCenterMScript
 
-TradeCenterMTexts: ; 4fd80 (13:7d80)
+TradeCenterMTextPointers: ; 4fd80 (13:7d80)
 	dw TradeCenterMText1
 
 TradeCenterMText1: ; 4fd82 (13:7d82)
@@ -79141,116 +80713,123 @@ PredefPointers: ; 4fe79 (13:7e79)
 	db BANK(LoadMonBackSprite) ; dbw macro gives an error for some reason
 	dw LoadMonBackSprite
 	dbw BANK(Func_79aba),Func_79aba
-	dbw $03,$7132
+	dbw BANK(Func_f132),Func_f132
 HealPartyPredef: ; 4fe8e (13:7e8e)
 	dbw BANK(HealParty),HealParty
 MoveAnimationPredef: ; 4fe91 (13:7e91)
 	dbw BANK(MoveAnimation),MoveAnimation; 08 play move animation
 	dbw BANK(Func_f71e),Func_f71e
 	dbw BANK(Func_f71e),Func_f71e
-	dbw $03,$781D
-	dbw $03,$7836
+	dbw BANK(Func_f81d),Func_f81d
+	dbw BANK(Func_f836),Func_f836
 	dbw BANK(Func_f71e),Func_f71e
 	dbw BANK(Func_f71e),Func_f71e
 	db BANK(InitializePlayerData)
     dw InitializePlayerData
-	dbw $03,$7666
-	dbw $03,$71D7
-	dbw $03,$71A6
-	dbw $03,$469C
-	dbw $0F,$4A83
-	dbw $03,$71C8
-	dbw $03,$71C8
-	dbw $03,$6E9E
+	dbw BANK(HandleBitArray),HandleBitArray
+	db BANK(RemoveMissableObject)
+	dw RemoveMissableObject
+	db BANK(IsMissableObjectHidden)
+	dw IsMissableObjectHidden
+	dbw BANK(Func_c69c),Func_c69c
+	db BANK(AnyPokemonAliveCheck)
+	dw AnyPokemonAliveCheck
+	db BANK(AddMissableObject)
+	dw AddMissableObject
+	db BANK(AddMissableObject)
+	dw AddMissableObject
+	dbw BANK(Func_ee9e),Func_ee9e
 	db BANK(InitializePlayerData)
     dw InitializePlayerData
-	dbw $03,$4754
-	dbw $0E,$6F5B
-	dbw $01,$6E43
-	dbw $03,$78A5; 1C, used in Pokémon Tower
-	dbw $03,$3EB5
-	dbw $03,$3E2E
-	dbw $12,$40EB
-	dbw $03,$78BA
-	dbw $12,$40FF
-	dbw $03,$7929
-	dbw $03,$79A0
-	dbw $12,$4125
-	dbw $03,$7A1D
-	dbw $03,$79DC
-	dbw $01,$5AB0
-	dbw $0F,$6D02
-	dbw $10,$4000
-	dbw $0E,$6D1C
-	dbw $1C,$778C
-	dbw $0F,$6F18
-	dbw $01,$5A5F
+	dbw BANK(Func_c754),Func_c754
+	dbw BANK(Func_3af5b),Func_3af5b
+	dbw BANK(Func_6e43),Func_6e43
+	dbw BANK(Func_f8a5),Func_f8a5; 1C, used in Pokémon Tower
+	dbw $03,Func_3eb5 ; for these two, the bank number is actually 0
+	dbw $03,GiveItem
+	dbw BANK(Func_480eb),Func_480eb
+	dbw BANK(Func_f8ba),Func_f8ba
+	dbw BANK(Func_480ff),Func_480ff
+	dbw BANK(Func_f929),Func_f929
+	dbw BANK(Func_f9a0),Func_f9a0
+	dbw BANK(Func_48125),Func_48125
+	dbw BANK(UpdateHPBar),UpdateHPBar
+	dbw BANK(Func_f9dc),Func_f9dc
+	dbw BANK(Func_5ab0),Func_5ab0
+	dbw BANK(Func_3ed02),Func_3ed02
+	db BANK(DisplayPokedexMenu_)
+	dw DisplayPokedexMenu_
+	dbw BANK(Func_3ad1c),Func_3ad1c
+	dbw BANK(SaveSAVtoSRAM0),SaveSAVtoSRAM0
+	dbw BANK(Func_3ef18),Func_3ef18
+	dbw BANK(Func_5a5f),Func_5a5f
 	dbw BANK(DrawBadges), DrawBadges
-	dbw $10,$50F3
-	dbw $1C,$496D
-	dbw $1E,$5DDA
-	dbw $10,$5682
-	dbw $1E,$5869
-	dbw $1C,$4B5D
-	dbw $03,$4586
-StatusScreenPredef: ; 4ff1b (13:7f1b)
+	dbw BANK(Func_410f3),Func_410f3
+	dbw BANK(Func_7096d),Func_7096d
+	dbw BANK(Func_79dda),Func_79dda
+	dbw BANK(PlayIntro),PlayIntro
+	dbw BANK(Func_79869),Func_79869
+	dbw BANK(Func_70b5d),Func_70b5d
+	dbw BANK(Func_c586),Func_c586
 	dbw BANK(StatusScreen),StatusScreen ; 37 0x12953
-StatusSceren2Predef: ; 4ff1e (13:7f1e)
 	dbw BANK(StatusScreen2),StatusScreen2 ; 38
-	dbw $10,$50E2
-	dbw $15,$690F
-	dbw $10,$5010
-Predef3BPredef: ; 4ff2a (13:7f2a)
+	dbw BANK(Func_410e2),Func_410e2
+	db BANK(CheckEngagePlayer)
+	dw CheckEngagePlayer
+	dbw BANK(IndexToPokedex),IndexToPokedex
 	dbw BANK(Predef3B),Predef3B; 3B display pic?
-	dbw $03,$6F54
-	dbw $10,$42D1
-	dbw $0E,$6FB8
-	dbw $1C,$770A
-	dbw $1C,$602B
-	dbw $03,$7113
-	dbw $17,$5B5E
-	dbw $04,$773E
-	dbw $04,$7763
-	dbw $1C,$5DDF
-	dbw $17,$40DC; 46 load dex screen
-	dbw $03,$72E5
-	dbw $03,$7A1D
-	dbw $0F,$4DEC
-	dbw $1C,$4F60
-	dbw $09,$7D6B
-	dbw $05,$7C47; 4C player exclamation
-	dbw $01,$5AAF; return immediately
-	dbw $01,$64EB
-	dbw $0D,$7CA1
-	dbw $1C,$780F
-	dbw $1C,$76BD
-	dbw $1C,$75E8
-	dbw $1C,$77E2
-Predef54Predef: ; 4ff75 (13:7f75)
+	dbw BANK(Func_ef54),Func_ef54
+	dbw BANK(ShowPokedexData),ShowPokedexData
+	dbw BANK(WriteMonMoves),WriteMonMoves
+	dbw BANK(SaveSAV),SaveSAV
+	dbw BANK(Func_7202b),Func_7202b
+	dbw BANK(Func_f113),Func_f113
+	dbw BANK(SetPartyMonTypes),SetPartyMonTypes
+	db BANK(TestMonMoveCompatibility)
+	dw TestMonMoveCompatibility
+	dbw BANK(TMToMove),TMToMove
+	dbw BANK(Func_71ddf),Func_71ddf
+	dbw BANK(Func_5c0dc),Func_5c0dc; 46 load dex screen
+	db BANK(_AddPokemonToParty)
+	dw _AddPokemonToParty
+	dbw BANK(UpdateHPBar),UpdateHPBar
+	dbw BANK(Func_3cdec),Func_3cdec
+	dbw BANK(Func_70f60),Func_70f60
+	dbw BANK(Func_27d6b),Func_27d6b
+	dbw BANK(Func_17c47),Func_17c47; 4C player exclamation
+	dbw BANK(Func_5aaf),Func_5aaf; return immediately
+	db BANK(AskForMonNickname)
+	dw AskForMonNickname
+	dbw BANK(Func_37ca1),Func_37ca1
+	dbw BANK(SaveSAVtoSRAM2),SaveSAVtoSRAM2
+	dbw BANK(LoadSAVCheckSum2),LoadSAVCheckSum2
+	dbw BANK(LoadSAV),LoadSAV
+	dbw BANK(SaveSAVtoSRAM1),SaveSAVtoSRAM1
 	dbw BANK(Predef54),Predef54 ; 54 initiate trade
-	dbw $1D,$405C
-	dbw $11,$4169
-	dbw $1E,$45BA
-	dbw $1E,$4510
-	dbw $03,$45BE
-	dbw $03,$460B
-	dbw $03,$4D99
-	dbw $01,$4DE1
-	dbw $09,$7D98
-LoadMovePPsPredef:
+	dbw BANK(Func_7405c),Func_7405c
+	dbw BANK(DisplayDexRating),DisplayDexRating
+	db $1E ; uses wrong bank number
+	dw _DoFlyOrTeleportAwayGraphics
+	db $1E ; uses wrong bank number
+	dw Func_70510
+	dbw BANK(Func_c5be),Func_c5be
+	dbw BANK(Func_c60b),Func_c60b
+	dbw BANK(Func_cd99),Func_cd99
+	dbw BANK(PickupItem),PickupItem
+	dbw BANK(Func_27d98),Func_27d98
 	dbw BANK(LoadMovePPs),LoadMovePPs
 DrawHPBarPredef: ; 4ff96 (13:7f96)
-	dbw $04,$68EF ; 5F draw HP bar
-	dbw $04,$68F6
-	dbw $07,$49C6
-	dbw $16,$5035
+	dbw BANK(Func_128ef),Func_128ef ; 5F draw HP bar
+	dbw BANK(Func_128f6),Func_128f6
+	dbw BANK(Func_1c9c6),Func_1c9c6
+	dbw BANK(Func_59035),Func_59035
 
 SECTION "bank14",ROMX,BANK[$14]
 
 Route22_h: ; 0x50000 to 0x50022 (34 bytes) (id=33)
 	db $00 ; tileset
 	db ROUTE_22_HEIGHT, ROUTE_22_WIDTH ; dimensions (y, x)
-	dw Route22Blocks, Route22Texts, Route22Script ; blocks, texts, scripts
+	dw Route22Blocks, Route22TextPointers, Route22Script ; blocks, texts, scripts
 	db NORTH | EAST ; connections
 
 	; connections data
@@ -79295,7 +80874,7 @@ Route22Blocks: ; 5003d (14:403d)
 Route20_h: ; 0x500f1 to 0x50113 (34 bytes) (id=31)
 	db $00 ; tileset
 	db ROUTE_20_HEIGHT, ROUTE_20_WIDTH ; dimensions (y, x)
-	dw Route20Blocks, Route20Texts, Route20Script ; blocks, texts, scripts
+	dw Route20Blocks, Route20TextPointers, Route20Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -79351,7 +80930,7 @@ Route20Blocks: ; 5017d (14:417d)
 Route23_h: ; 0x5033f to 0x50361 (34 bytes) (id=34)
 	db $17 ; tileset
 	db ROUTE_23_HEIGHT, ROUTE_23_WIDTH ; dimensions (y, x)
-	dw Route23Blocks, Route23Texts, Route23Script ; blocks, texts, scripts
+	dw Route23Blocks, Route23TextPointers, Route23Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
 
 	; connections data
@@ -79407,7 +80986,7 @@ Route23Blocks: ; 503b2 (14:43b2)
 Route24_h: ; 0x50682 to 0x506a4 (34 bytes) (id=35)
 	db $00 ; tileset
 	db ROUTE_24_HEIGHT, ROUTE_24_WIDTH ; dimensions (y, x)
-	dw Route24Blocks, Route24Texts, Route24Script ; blocks, texts, scripts
+	dw Route24Blocks, Route24TextPointers, Route24Script ; blocks, texts, scripts
 	db SOUTH | EAST ; connections
 
 	; connections data
@@ -79453,7 +81032,7 @@ Route24Blocks: ; 506e7 (14:46e7)
 Route25_h: ; 0x5079b to 0x507b2 (23 bytes) (id=36)
 	db $00 ; tileset
 	db ROUTE_25_HEIGHT, ROUTE_25_WIDTH ; dimensions (y, x)
-	dw Route25Blocks, Route25Texts, Route25Script ; blocks, texts, scripts
+	dw Route25Blocks, Route25TextPointers, Route25Script ; blocks, texts, scripts
 	db WEST ; connections
 
 	; connections data
@@ -79499,7 +81078,7 @@ Route25Blocks: ; 50810 (14:4810)
 IndigoPlateau_h: ; 0x5091e to 0x50935 (23 bytes) (id=9)
 	db $17 ; tileset
 	db INDIGO_PLATEAU_HEIGHT, INDIGO_PLATEAU_WIDTH ; dimensions (y, x)
-	dw IndigoPlateauBlocks, IndigoPlateauTexts, IndigoPlateauScript ; blocks, texts, scripts
+	dw IndigoPlateauBlocks, IndigoPlateauTextPointers, IndigoPlateauScript ; blocks, texts, scripts
 	db SOUTH ; connections
 
 	; connections data
@@ -79518,7 +81097,7 @@ IndigoPlateau_h: ; 0x5091e to 0x50935 (23 bytes) (id=9)
 IndigoPlateauScript: ; 50935 (14:4935)
 	ret
 
-IndigoPlateauTexts: ; 50936 (14:4936)
+IndigoPlateauTextPointers: ; 50936 (14:4936)
 IndigoPlateauObject: ; 0x50936 (size=20)
 	db $e ; border tile
 
@@ -79540,7 +81119,7 @@ IndigoPlateauBlocks: ; 5094a (14:494a)
 SaffronCity_h: ; 0x509a4 to 0x509dc (56 bytes) (id=10)
 	db $00 ; tileset
 	db SAFFRON_CITY_HEIGHT, SAFFRON_CITY_WIDTH ; dimensions (y, x)
-	dw SaffronCityBlocks, SaffronCityTexts, SaffronCityScript ; blocks, texts, scripts
+	dw SaffronCityBlocks, SaffronCityTextPointers, SaffronCityScript ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST | EAST ; connections
 
 	; connections data
@@ -79635,8 +81214,32 @@ SaffronCityBlocks: ; 50a98 (14:4a98)
 SaffronCityScript: ; 50c00 (14:4c00)
 	jp EnableAutoTextBoxDrawing
 
-SaffronCityTexts: ; 50c03 (14:4c03)
-	dw SaffronCityText1, SaffronCityText2, SaffronCityText3, SaffronCityText4, SaffronCityText5, SaffronCityText6, SaffronCityText7, SaffronCityText8, SaffronCityText9, SaffronCityText10, SaffronCityText11, SaffronCityText12, SaffronCityText13, SaffronCityText14, SaffronCityText15, SaffronCityText16, SaffronCityText17, SaffronCityText18, MartSignText, SaffronCityText20, SaffronCityText21, SaffronCityText22, PokeCenterSignText, SaffronCityText24, SaffronCityText25
+SaffronCityTextPointers: ; 50c03 (14:4c03)
+	dw SaffronCityText1
+	dw SaffronCityText2
+	dw SaffronCityText3
+	dw SaffronCityText4
+	dw SaffronCityText5
+	dw SaffronCityText6
+	dw SaffronCityText7
+	dw SaffronCityText8
+	dw SaffronCityText9
+	dw SaffronCityText10
+	dw SaffronCityText11
+	dw SaffronCityText12
+	dw SaffronCityText13
+	dw SaffronCityText14
+	dw SaffronCityText15
+	dw SaffronCityText16
+	dw SaffronCityText17
+	dw SaffronCityText18
+	dw MartSignText
+	dw SaffronCityText20
+	dw SaffronCityText21
+	dw SaffronCityText22
+	dw PokeCenterSignText
+	dw SaffronCityText24
+	dw SaffronCityText25
 
 SaffronCityText1: ; 50c35 (14:4c35)
 	TX_FAR _SaffronCityText1
@@ -79737,7 +81340,7 @@ Route20Script: ; 50ca9 (14:4ca9)
 	call nz, Func_50cc6
 	call EnableAutoTextBoxDrawing
 	ld hl, Route20TrainerHeader0 ; $4d3a
-	ld de, Unknown_50d1c ; $4d1c
+	ld de, Route20ScriptPointers
 	ld a, [W_ROUTE20CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE20CURSCRIPT], a
@@ -79752,7 +81355,7 @@ Func_50cc6: ; 50cc6 (14:4cc6)
 	call Func_50d0c
 	ld a, $d8
 	call Func_50d0c
-	ld hl, .unknown_50ce8 ; $4ce8
+	ld hl, .MissableObjectIDs ; $4ce8
 .asm_50cdc
 	ld a, [hli]
 	cp $ff
@@ -79762,8 +81365,8 @@ Func_50cc6: ; 50cc6 (14:4cc6)
 	pop hl
 	jr .asm_50cdc
 
-.unknown_50ce8: ; 50ce8 (14:4ce8)
-INCBIN "baserom.gbc",$50ce8,$50cef - $50ce8
+.MissableObjectIDs: ; 50ce8 (14:4ce8)
+	db $D9,$DA,$DB,$DC,$DF,$E0,$FF
 
 .asm_50cef
 	ld a, [$d881]
@@ -79790,11 +81393,24 @@ Func_50d14: ; 50d14 (14:4d14)
 	ld a, $11
 	jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
 
-Unknown_50d1c: ; 50d1c (14:4d1c)
-INCBIN "baserom.gbc",$50d1c,$50d22 - $50d1c
+Route20ScriptPointers: ; 50d1c (14:4d1c)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route20Texts: ; 50d22 (14:4d22)
-	dw Route20Text1, Route20Text2, Route20Text3, Route20Text4, Route20Text5, Route20Text6, Route20Text7, Route20Text8, Route20Text9, Route20Text10, Route20Text11, Route20Text12
+Route20TextPointers: ; 50d22 (14:4d22)
+	dw Route20Text1
+	dw Route20Text2
+	dw Route20Text3
+	dw Route20Text4
+	dw Route20Text5
+	dw Route20Text6
+	dw Route20Text7
+	dw Route20Text8
+	dw Route20Text9
+	dw Route20Text10
+	dw Route20Text11
+	dw Route20Text12
 
 Route20TrainerHeaders: ; 50d3a (14:4d3a)
 Route20TrainerHeader0: ; 50d3a (14:4d3a)
@@ -79887,7 +81503,7 @@ Route20TrainerHeader10: ; 50da6 (14:4da6)
 	dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
 	dw Route20EndBattleText10 ; 0x4ea3 TextEndBattle
 
-db $ff
+	db $ff
 
 Route20Text1: ; 50db3 (14:4db3)
 	db $08 ; asm
@@ -80076,19 +81692,25 @@ Route20Text11: ; 50ead (14:4ead)
 
 Route22Script: ; 50eb2 (14:4eb2)
 	call EnableAutoTextBoxDrawing
-	ld hl, Route22Scripts
+	ld hl, Route22ScriptPointers
 	ld a, [W_ROUTE22CURSCRIPT]
 	jp CallFunctionInTable
 
-Route22Scripts: ; 50ebe (14:4ebe)
-	dw Route22Script0, Route22Script1, Route22Script2, Route22Script3
-
-INCBIN "baserom.gbc",$50ec6,$50ece - $50ec6
+Route22ScriptPointers: ; 50ebe (14:4ebe)
+	dw Route22Script0
+	dw Route22Script1
+	dw Route22Script2
+	dw Route22Script3
+	dw Route22Script4
+	dw Route22Script5
+	dw Route22Script6
+	dw $4Ed5
 
 Func_50ece: ; 50ece (14:4ece)
 	xor a
 	ld [wJoypadForbiddenButtonsMask], a
 	ld [W_ROUTE22CURSCRIPT], a
+Route22Script7: ; 50ed5 (14:4ed5)
 	ret
 
 Func_50ed6: ; 50ed6 (14:4ed6)
@@ -80106,7 +81728,7 @@ Func_50ed6: ; 50ed6 (14:4ed6)
 	ret
 
 Func_50ee6: ; 50ee6 (14:4ee6)
-	ld de, Unknown_50efb ; $4efb
+	ld de, MovementData_50efb ; $4efb
 	ld a, [$cf0d]
 	cp $1
 	jr z, .asm_50ef1
@@ -80117,14 +81739,14 @@ Func_50ee6: ; 50ee6 (14:4ee6)
 	ld [$FF00+$8d], a
 	jp Func_34a6
 
-Unknown_50efb: ; 50efb (14:4efb)
-INCBIN "baserom.gbc",$50efb,$50f00 - $50efb
+MovementData_50efb: ; 50efb (14:4efb)
+	db $C0,$C0,$C0,$C0,$FF
 
 Route22Script0: ; 50f00 (14:4f00)
 	ld a, [$d7eb]
 	bit 7, a
 	ret z
-	ld hl, .unknown_50f2d ; $4f2d
+	ld hl, .CoordsData_50f2d ; $4f2d
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, [$cd3d]
@@ -80142,7 +81764,7 @@ Route22Script0: ; 50f00 (14:4f00)
 	jp nz, Func_5104e
 	ret
 
-.unknown_50f2d
+.CoordsData_50f2d
 	db $04, $1D
 	db $05, $1D
 	db $FF
@@ -80209,7 +81831,9 @@ Route22Script1: ; 50f62 (14:4f62)
 	ret
 
 Unknown_50faf: ; 50faf (14:4faf)
-INCBIN "baserom.gbc",$50faf,$50fb5 - $50faf
+	db SQUIRTLE,$04
+	db BULBASAUR,$05
+	db CHARMANDER,$06
 
 Route22Script2: ; 50fb5 (14:4fb5)
 	ld a, [$d057]
@@ -80253,21 +81877,21 @@ Route22Script2: ; 50fb5 (14:4fb5)
 	ret
 
 Func_51008: ; 51008 (14:5008)
-	ld de, Unknown_51017 ; $5017
+	ld de, MovementData_51017 ; $5017
 	jr asm_51010
 
 Func_5100d: ; 5100d (14:500d)
-	ld de, Unknown_5101f ; $501f
+	ld de, MovementData_5101f ; $501f
 asm_51010
 	ld a, $1
 	ld [H_SPRITEHEIGHT], a
 	jp MoveSprite
 
-Unknown_51017: ; 51017 (14:5017)
-INCBIN "baserom.gbc",$51017,$5101f - $51017
+MovementData_51017: ; 51017 (14:5017)
+	db $C0,$C0,$00,$00,$00,$00,$00,$FF
 
-Unknown_5101f: ; 5101f (14:501f)
-INCBIN "baserom.gbc",$5101f,$5102a - $5101f
+MovementData_5101f: ; 5101f (14:501f)
+	db $40,$C0,$C0,$C0,$00,$00,$00,$00,$00,$00,$FF
 
 Route22Script3: ; 5102a (14:502a)
 	ld a, [$d730]
@@ -80313,6 +81937,8 @@ Func_5104e: ; 5104e (14:504e)
 	ld a, $4
 	ld [W_ROUTE22CURSCRIPT], a
 	ret
+
+Route22Script4: ; 51087 (14:5087)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -80352,7 +81978,11 @@ Func_5104e: ; 5104e (14:504e)
 	ret
 
 Unknown_510d9: ; 510d9 (14:50d9)
-INCBIN "baserom.gbc",$510d9,$510df - $510d9
+	db SQUIRTLE,$0a
+	db BULBASAUR,$0b
+	db CHARMANDER,$0c
+
+Route22Script5: ; 510df (14:50df)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_50ece
@@ -80398,21 +82028,23 @@ INCBIN "baserom.gbc",$510d9,$510df - $510d9
 	ret
 
 Func_5113d: ; 5113d (14:513d)
-	ld de, Unknown_5114c ; $514c
+	ld de, MovementData_5114c ; $514c
 	jr asm_51145
 
 Func_51142: ; 51142 (14:5142)
-	ld de, Unknown_5114d ; $514d
+	ld de, MovementData_5114d ; $514d
 asm_51145: ; 51145 (14:5145)
 	ld a, $2
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	jp MoveSprite
 
-Unknown_5114c: ; 5114c (14:514c)
-INCBIN "baserom.gbc",$5114c,$5114d - $5114c
+MovementData_5114c: ; 5114c (14:514c)
+	db $80
 
-Unknown_5114d: ; 5114d (14:514d)
-INCBIN "baserom.gbc",$5114d,$51151 - $5114d
+MovementData_5114d: ; 5114d (14:514d)
+	db $80,$80,$80,$FF
+
+Route22Script6: ; 51151 (14:5151)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -80430,8 +82062,10 @@ INCBIN "baserom.gbc",$5114d,$51151 - $5114d
 	ld [W_ROUTE22CURSCRIPT], a
 	ret
 
-Route22Texts: ; 51175 (14:5175)
-	dw Route22Text1, Route22Text2, Route22Text3
+Route22TextPointers: ; 51175 (14:5175)
+	dw Route22Text1
+	dw Route22Text2
+	dw Route22Text3
 
 Route22Text1: ; 5117b (14:517b)
 	db $08 ; asm
@@ -80500,7 +82134,7 @@ Route22Text3: ; 511d5 (14:51d5)
 Route23Script: ; 511da (14:51da)
 	call Func_511e9
 	call EnableAutoTextBoxDrawing
-	ld hl, Route23Scripts
+	ld hl, Route23ScriptPointers
 	ld a, [W_ROUTE23CURSCRIPT]
 	jp CallFunctionInTable
 
@@ -80524,12 +82158,14 @@ Func_511e9: ; 511e9 (14:51e9)
 	ld a, $11
 	jp Predef ; indirect jump to RemoveMissableObject (f1d7 (3:71d7))
 
-Route23Scripts: ; 51213 (14:5213)
-	dw Route23Script0, Route23Script1, Route23Script2
+Route23ScriptPointers: ; 51213 (14:5213)
+	dw Route23Script0
+	dw Route23Script1
+	dw Route23Script2
 
 Route23Script0: ; 51219 (14:5219)
-	ld hl, Unknown_51255 ; $5255
-	ld a, [$d361]
+	ld hl, YCoordsData_51255 ; $5255
+	ld a, [W_YCOORD]
 	ld b, a
 	ld e, $0
 	ld c, $7
@@ -80543,7 +82179,7 @@ Route23Script0: ; 51219 (14:5219)
 	jr nz, .asm_51224 ; 0x5122b $f7
 	cp $23
 	jr nz, .asm_51237 ; 0x5122f $6
-	ld a, [$d362]
+	ld a, [W_XCOORD]
 	cp $e
 	ret nc
 .asm_51237
@@ -80564,11 +82200,11 @@ Route23Script0: ; 51219 (14:5219)
 	ld [H_CURRENTPRESSEDBUTTONS], a
 	ret
 
-Unknown_51255: ; 51255 (14:5255)
-INCBIN "baserom.gbc",$51255,$5125d - $51255
+YCoordsData_51255: ; 51255 (14:5255)
+	db $23,$38,$55,$60,$69,$77,$88,$FF
 
 Func_5125d: ; 5125d (14:525d)
-	ld hl, Unknown_51276 ; $5276
+	ld hl, BadgeTextPointers ; $5276
 	ld a, [wWhichTrade] ; $cd3d
 	ld c, a
 	ld b, $0
@@ -80586,16 +82222,34 @@ Func_5125d: ; 5125d (14:525d)
 	jr nz, .asm_5126e
 	ret
 
-Unknown_51276: ; 51276 (14:5276)
-INCBIN "baserom.gbc",$51276,$51284 - $51276
+BadgeTextPointers: ; 51276 (14:5276)
+	dw CascadeBadgeText
+	dw ThunderBadgeText
+	dw RainbowBadgeText
+	dw SoulBadgeText
+	dw MarshBadgeText
+	dw VolcanoBadgeText
+	dw EarthBadgeText
 
-BadgeList: ; 51284 (14:5284)
+EarthBadgeText: ; 51284 (14:5284)
 	db "EARTHBADGE@"
+
+VolcanoBadgeText: ; 5128f (14:528f)
 	db "VOLCANOBADGE@"
+
+MarshBadgeText: ; 5129c (14:529c)
 	db "MARSHBADGE@"
+
+SoulBadgeText: ; 512a7 (14:52a7)
 	db "SOULBADGE@"
+
+RainbowBadgeText: ; 512b1 (14:52b1)
 	db "RAINBOWBADGE@"
+
+ThunderBadgeText: ; 512be (14:52be)
 	db "THUNDERBADGE@"
+
+CascadeBadgeText: ; 512cb (14:52cb)
 	db "CASCADEBADGE@"
 
 Func_512d8: ; 512d8 (14:52d8)
@@ -80617,8 +82271,15 @@ Route23Script2: ; 512f1 (14:52f1)
 	ld [W_ROUTE23CURSCRIPT], a
 	ret
 
-Route23Texts: ; 512f7 (14:52f7)
-	dw Route23Text1, Route23Text2, Route23Text3, Route23Text4, Route23Text5, Route23Text6, Route23Text7, Route23Text8
+Route23TextPointers: ; 512f7 (14:52f7)
+	dw Route23Text1
+	dw Route23Text2
+	dw Route23Text3
+	dw Route23Text4
+	dw Route23Text5
+	dw Route23Text6
+	dw Route23Text7
+	dw Route23Text8
 
 Route23Text1: ; 51307 (14:5307)
 	db $08 ; asm
@@ -80675,14 +82336,14 @@ Func_51346: ; 51346 (14:5346)
 	ld a, c
 	and a
 	jr nz, .asm_5136e
-	ld hl, Unknown_5138e ; $538e
+	ld hl, VictoryRoadGuardText1 ; $538e
 	call PrintText
 	call Func_512d8
 	ld a, $1
 	ld [W_ROUTE23CURSCRIPT], a
 	ret
 .asm_5136e
-	ld hl, Unknown_5139e ; $539e
+	ld hl, VictoryRoadGuardText2 ; $539e
 	call PrintText
 	ld a, [wWhichTrade] ; $cd3d
 	ld c, a
@@ -80694,15 +82355,21 @@ Func_51346: ; 51346 (14:5346)
 	ld [W_ROUTE23CURSCRIPT], a
 	ret
 
-INCBIN "baserom.gbc",$51388,$5138e - $51388
+Func_51388: ; 51388 (14:5388)
+	ld hl, VictoryRoadGuardText2
+	jp PrintText
 
-Unknown_5138e: ; 5138e (14:538e)
-INCBIN "baserom.gbc",$5138e,$5139e - $5138e
+VictoryRoadGuardText1: ; 5138e (14:538e)
+	TX_FAR _VictoryRoadGuardText1
+	db $08 ; asm
+	ld a, $a5
+	call PlaySoundWaitForCurrent
+	call WaitForSoundToFinish
+	jp TextScriptEnd
 
-Unknown_5139e: ; 5139e (14:539e)
-INCBIN "baserom.gbc",$5139e,$513a3 - $5139e
-
-UnnamedText_513a3: ; 513a3 (14:53a3)
+VictoryRoadGuardText2: ; 5139e (14:539e)
+	TX_FAR _VictoryRoadGuardText2
+	db $b
 	TX_FAR _UnnamedText_513a3
 	db "@"
 
@@ -80713,7 +82380,7 @@ Route23Text8: ; 513a8 (14:53a8)
 Route24Script: ; 513ad (14:53ad)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route24TrainerHeaders
-	ld de, Unknown_513cb ; $53cb
+	ld de, Route24ScriptPointers
 	ld a, [W_ROUTE24CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE24CURSCRIPT], a
@@ -80726,12 +82393,18 @@ Func_513c0: ; 513c0 (14:53c0)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_513cb: ; 513cb (14:53cb)
-INCBIN "baserom.gbc",$513cb,$513d5 - $513cb
+Route24ScriptPointers: ; 513cb (14:53cb)
+	dw Route24Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw Route24Script3
+	dw Route24Script4
+
+Route24Script0: ; 513d5 (14:53d5)
 	ld a, [$d7ef]
 	bit 0, a
 	jp nz, CheckFightingMapTrainers
-	ld hl, Unknown_5140e ; $540e
+	ld hl, CoordsData_5140e ; $540e
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -80753,8 +82426,20 @@ INCBIN "baserom.gbc",$513cb,$513d5 - $513cb
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_5140e: ; 5140e (14:540e)
-INCBIN "baserom.gbc",$5140e,$51422 - $5140e
+CoordsData_5140e: ; 5140e (14:540e)
+	db $0F,$0A,$FF
+
+Route24Script4: ; 51411 (14:5411)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	ld a, $0
+	ld [W_ROUTE24CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
+
+Route24Script3: ; 51422 (14:5422) 
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_513c0
@@ -80773,8 +82458,15 @@ INCBIN "baserom.gbc",$5140e,$51422 - $5140e
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Route24Texts: ; 5144b (14:544b)
-	dw Route24Text1, Route24Text2, Route24Text3, Route24Text4, Route24Text5, Route24Text6, Route24Text7, Predef5CText
+Route24TextPointers: ; 5144b (14:544b)
+	dw Route24Text1
+	dw Route24Text2
+	dw Route24Text3
+	dw Route24Text4
+	dw Route24Text5
+	dw Route24Text6
+	dw Route24Text7
+	dw Predef5CText
 
 Route24TrainerHeaders: ; 5145b (14:545b)
 Route24TrainerHeader0: ; 5145b (14:545b)
@@ -80831,7 +82523,7 @@ Route24TrainerHeader6: ; 51497 (14:5497)
 	dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
 	dw Route24EndBattleText6 ; 0x55c1 TextEndBattle
 
-db $ff
+	db $ff
 
 Route24Text1: ; 514a4 (14:54a4)
 	db $8
@@ -81016,7 +82708,7 @@ Route25Script: ; 515cb (14:55cb)
 	call Unknown_515e1
 	call EnableAutoTextBoxDrawing
 	ld hl, Route25TrainerHeaders
-	ld de, Unknown_51622 ; $5622
+	ld de, Route25ScriptPointers
 	ld a, [W_ROUTE25CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE25CURSCRIPT], a
@@ -81054,11 +82746,23 @@ Unknown_515e1: ; 515e1 (14:55e1)
 	ld a, $15
 	jp Predef ; indirect jump to AddMissableObject (f1c8 (3:71c8))
 
-Unknown_51622: ; 51622 (14:5622)
-INCBIN "baserom.gbc",$51622,$51628 - $51622
+Route25ScriptPointers: ; 51622 (14:5622)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route25Texts: ; 51628 (14:5628)
-	dw Route25Text1, Route25Text2, Route25Text3, Route25Text4, Route25Text5, Route25Text6, Route25Text7, Route25Text8, Route25Text9, Predef5CText, Route25Text11
+Route25TextPointers: ; 51628 (14:5628)
+	dw Route25Text1
+	dw Route25Text2
+	dw Route25Text3
+	dw Route25Text4
+	dw Route25Text5
+	dw Route25Text6
+	dw Route25Text7
+	dw Route25Text8
+	dw Route25Text9
+	dw Predef5CText
+	dw Route25Text11
 
 Route25TrainerHeaders: ; 5163e (14:563e)
 Route25TrainerHeader0: ; 5163e (14:563e)
@@ -81142,7 +82846,7 @@ Route25TrainerHeader9: ; 5169e (14:569e)
 	dw Route25EndBattleText9 ; 0x5782 TextEndBattle
 	dw Route25EndBattleText9 ; 0x5782 TextEndBattle
 
-db $ff
+	db $ff
 
 Route25Text1: ; 516ab (14:56ab)
 	db $08 ; asm
@@ -81313,7 +83017,7 @@ Route25Text11: ; 5178c (14:578c)
 VictoryRoad2_h: ; 0x51791 to 0x5179d (12 bytes) (id=194)
 	db $11 ; tileset
 	db VICTORY_ROAD_2_HEIGHT, VICTORY_ROAD_2_WIDTH ; dimensions (y, x)
-	dw VictoryRoad2Blocks, VictoryRoad2Texts, VictoryRoad2Script ; blocks, texts, scripts
+	dw VictoryRoad2Blocks, VictoryRoad2TextPointers, VictoryRoad2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VictoryRoad2Object ; objects
@@ -81322,20 +83026,20 @@ VictoryRoad2Script: ; 5179d (14:579d)
 	ld hl, $d126
 	bit 6, [hl]
 	res 6, [hl]
-	call nz, VictoryRoad2Script_Unknown517c4
+	call nz, VictoryRoad2Script_517c4
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
 	call nz, Func_517c9
 	call EnableAutoTextBoxDrawing
 	ld hl, VictoryRoad2TrainerHeaders
-	ld de, Unknown_517eb ; $57eb
+	ld de, VictoryRoad2ScriptPointers
 	ld a, [W_VICTORYROAD2CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_VICTORYROAD2CURSCRIPT], a
 	ret
 
-VictoryRoad2Script_Unknown517c4: ; 517c4 (14:57c4)
+VictoryRoad2Script_517c4: ; 517c4 (14:57c4)
 	ld hl, $d869
 	res 7, [hl]
 
@@ -81360,9 +83064,13 @@ Func_517e2: ; 517e2 (14:57e2)
 	call Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
 	ret
 
-Unknown_517eb: ; 517eb (14:57eb)
-INCBIN "baserom.gbc",$517eb,$517f1 - $517eb
-	ld hl, Unknown_51816 ; $5816
+VictoryRoad2ScriptPointers: ; 517eb (14:57eb)
+	dw VictoryRoad2Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+VictoryRoad2Script0: ; 517f1 (14:57f1)
+	ld hl, CoordsData_51816 ; $5816
 	call CheckBoulderCoords
 	jp nc, CheckFightingMapTrainers
 	ld hl, $d7ee
@@ -81382,11 +83090,25 @@ INCBIN "baserom.gbc",$517eb,$517f1 - $517eb
 	set 5, [hl]
 	ret
 
-Unknown_51816: ; 51816 (14:5816)
-INCBIN "baserom.gbc",$51816,$5181b - $51816
+CoordsData_51816: ; 51816 (14:5816)
+	db $10,$01
+	db $10,$09
+	db $FF
 
-VictoryRoad2Texts: ; 5181b (14:581b)
-	dw VictoryRoad2Text1, VictoryRoad2Text2, VictoryRoad2Text3, VictoryRoad2Text4, VictoryRoad2Text5, VictoryRoad2Text6, Predef5CText, Predef5CText, Predef5CText, Predef5CText, BoulderText, BoulderText, BoulderText
+VictoryRoad2TextPointers: ; 5181b (14:581b)
+	dw VictoryRoad2Text1
+	dw VictoryRoad2Text2
+	dw VictoryRoad2Text3
+	dw VictoryRoad2Text4
+	dw VictoryRoad2Text5
+	dw VictoryRoad2Text6
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
 
 VictoryRoad2TrainerHeaders: ; 51835 (14:5835)
 VictoryRoad2TrainerHeader0: ; 51835 (14:5835)
@@ -81443,7 +83165,7 @@ VictoryRoad2TrainerHeader6: ; 51871 (14:5871)
 	dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
 	dw VictoryRoad2BattleText6 ; 0x58ba TextEndBattle
 
-db $ff
+	db $ff
 
 VictoryRoad2Text1: ; 5187e (14:587e)
 	db $08 ; asm
@@ -81593,7 +83315,7 @@ VictoryRoad2Blocks: ; 519af (14:59af)
 MtMoon2_h: ; 0x51a36 to 0x51a42 (12 bytes) (id=60)
 	db $11 ; tileset
 	db MT_MOON_2_HEIGHT, MT_MOON_2_WIDTH ; dimensions (y, x)
-	dw MtMoon2Blocks, MtMoon2Texts, MtMoon2Script ; blocks, texts, scripts
+	dw MtMoon2Blocks, MtMoon2TextPointers, MtMoon2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw MtMoon2Object ; objects
@@ -81602,7 +83324,7 @@ MtMoon2Script: ; 51a42 (14:5a42)
 	call EnableAutoTextBoxDrawing
 	ret
 
-MtMoon2Texts: ; 51a46 (14:5a46)
+MtMoon2TextPointers: ; 51a46 (14:5a46)
 	dw MtMoonText1
 
 MtMoonText1: ; 51a48 (14:5a48)
@@ -81642,22 +83364,22 @@ MtMoon2Blocks: ; 51a91 (14:5a91)
 SilphCo7_h: ; 0x51b55 to 0x51b61 (12 bytes) (id=212)
 	db $16 ; tileset
 	db SILPH_CO_7F_HEIGHT, SILPH_CO_7F_WIDTH ; dimensions (y, x)
-	dw SilphCo7Blocks, SilphCo7Texts, SilphCo7Script ; blocks, texts, scripts
+	dw SilphCo7Blocks, SilphCo7TextPointers, SilphCo7Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo7Object ; objects
 
 SilphCo7Script: ; 51b61 (14:5b61)
-	call SilphCo7Script_Unknown51b77
+	call SilphCo7Script_51b77
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo7TrainerHeaders
-	ld de, Unknown_51c17 ; $5c17
+	ld de, SilphCo7ScriptPointers
 	ld a, [W_SILPHCO7CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO7CURSCRIPT], a
 	ret
 
-SilphCo7Script_Unknown51b77: ; 51b77 (14:5b77)
+SilphCo7Script_51b77: ; 51b77 (14:5b77)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -81760,12 +83482,19 @@ Func_51c10: ; 51c10 (14:5c10)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_51c17: ; 51c17 (14:5c17)
-INCBIN "baserom.gbc",$51c17,$51c23 - $51c17
+SilphCo7ScriptPointers: ; 51c17 (14:5c17)
+	dw SilphCo7Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw SilphCo7Script3
+	dw SilphCo7Script4
+	dw SilphCo7Script5
+
+SilphCo7Script0: ; 51c23 (14:5c23)
 	ld a, [$d82f]
 	bit 0, a
 	jp nz, CheckFightingMapTrainers
-	ld hl, Unknown_51c78 ; $5c78
+	ld hl, CoordsData_51c78
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -81786,7 +83515,7 @@ INCBIN "baserom.gbc",$51c17,$51c23 - $51c17
 	ld a, $9
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	call SetSpriteMovementBytesToFF
-	ld de, Unknown_51c7d ; $5c7d
+	ld de, MovementData_51c7d
 	ld a, [wWhichTrade] ; $cd3d
 	ld [$cf0d], a
 	cp $1
@@ -81799,11 +83528,15 @@ INCBIN "baserom.gbc",$51c17,$51c23 - $51c17
 	ld a, $3
 	jp Func_51c10
 
-Unknown_51c78: ; 51c78 (14:5c78)
-INCBIN "baserom.gbc",$51c78,$51c7d - $51c78
+CoordsData_51c78: ; 51c78 (14:5c78)
+	db $02,$03
+	db $03,$03
+	db $FF
 
-Unknown_51c7d: ; 51c7d (14:5c7d)
-INCBIN "baserom.gbc",$51c7d,$51c82 - $51c7d
+MovementData_51c7d: ; 51c7d (14:5c7d)
+	db $40,$40,$40,$40,$FF
+
+SilphCo7Script3: ; 51c82 (14:5c82)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -81837,6 +83570,8 @@ INCBIN "baserom.gbc",$51c7d,$51c82 - $51c7d
 	ld [W_TRAINERNO], a ; $d05d
 	ld a, $4
 	jp Func_51c10
+
+SilphCo7Script4: ; 51cc8 (14:5cc8)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_51c0c
@@ -81860,11 +83595,11 @@ INCBIN "baserom.gbc",$51c7d,$51c82 - $51c7d
 	ld b, BANK(Music_RivalAlternateStart)
 	ld hl, Music_RivalAlternateStart
 	call Bankswitch ; indirect jump to Music_RivalAlternateStart (9b47 (2:5b47))
-	ld de, Unknown_51d1d ; $5d1d
+	ld de, MovementData_51d1d
 	ld a, [$cf0d]
 	cp $1
 	jr nz, .asm_51d0e
-	ld de, Unknown_51d1a ; $5d1a
+	ld de, MovementData_51d1a
 .asm_51d0e
 	ld a, $9
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
@@ -81872,11 +83607,13 @@ INCBIN "baserom.gbc",$51c7d,$51c82 - $51c7d
 	ld a, $5
 	jp Func_51c10
 
-Unknown_51d1a: ; 51d1a (14:5d1a)
-INCBIN "baserom.gbc",$51d1a,$51d1d - $51d1a
+MovementData_51d1a: ; 51d1a (14:5d1a)
+	db $C0,$C0,$FF
 
-Unknown_51d1d: ; 51d1d (14:5d1d)
-INCBIN "baserom.gbc",$51d1d,$51d25 - $51d1d
+MovementData_51d1d: ; 51d1d (14:5d1d)
+	db $80,$40,$40,$C0,$C0,$C0,$00,$FF
+
+SilphCo7Script5: ; 51d25 (14:5d25)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -81889,8 +83626,22 @@ INCBIN "baserom.gbc",$51d1d,$51d25 - $51d1d
 	ld [wJoypadForbiddenButtonsMask], a
 	jp Func_51c10
 
-SilphCo7Texts: ; 51d3f (14:5d3f)
-	dw SilphCo7Text1, SilphCo7Text2, SilphCo7Text3, SilphCo7Text4, SilphCo7Text5, SilphCo7Text6, SilphCo7Text7, SilphCo7Text8, SilphCo7Text9, Predef5CText, Predef5CText, Predef5CText, SilphCo7Text13, SilphCo7Text14, SilphCo7Text15
+SilphCo7TextPointers: ; 51d3f (14:5d3f)
+	dw SilphCo7Text1
+	dw SilphCo7Text2
+	dw SilphCo7Text3
+	dw SilphCo7Text4
+	dw SilphCo7Text5
+	dw SilphCo7Text6
+	dw SilphCo7Text7
+	dw SilphCo7Text8
+	dw SilphCo7Text9
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw SilphCo7Text13
+	dw SilphCo7Text14
+	dw SilphCo7Text15
 
 SilphCo7TrainerHeaders: ; 51d5d (14:5d5d)
 SilphCo7TrainerHeader0: ; 51d5d (14:5d5d)
@@ -81929,7 +83680,7 @@ SilphCo7TrainerHeader4: ; 51d81 (14:5d81)
 	dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
 	dw SilphCo7EndBattleText4 ; 0x5eaa TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo7Text1: ; 51d8e (14:5d8e)
 	db $08 ; asm
@@ -82183,7 +83934,7 @@ SilphCo7Blocks: ; 51f57 (14:5f57)
 Mansion2_h: ; 0x51fcc to 0x51fd8 (12 bytes) (id=214)
 	db $16 ; tileset
 	db MANSION_2_HEIGHT, MANSION_2_WIDTH ; dimensions (y, x)
-	dw Mansion2Blocks, Mansion2Texts, Mansion2Script ; blocks, texts, scripts
+	dw Mansion2Blocks, Mansion2TextPointers, Mansion2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Mansion2Object ; objects
@@ -82192,7 +83943,7 @@ Mansion2Script: ; 51fd8 (14:5fd8)
 	call Mansion2Script_Unknown51fee
 	call EnableAutoTextBoxDrawing
 	ld hl, Mansion2TrainerHeaders
-	ld de, Unknown_52047 ; $6047
+	ld de, Mansion2ScriptPointers
 	ld a, [W_MANSION2CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_MANSION2CURSCRIPT], a
@@ -82233,13 +83984,27 @@ Func_5202f: ; 5202f (14:602f)
 	ld a, $17
 	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
 
-INCBIN "baserom.gbc",$52037,$52047 - $52037
+Func_52037: ; 52037 (14:6037)
+	ld a, [$c109]
+	cp $4
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld a, $5
+	ld [H_SPRITEHEIGHT], a
+	jp DisplayTextID
 
-Unknown_52047: ; 52047 (14:6047)
-INCBIN "baserom.gbc",$52047,$5204d - $52047
+Mansion2ScriptPointers: ; 52047 (14:6047)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Mansion2Texts: ; 5204d (14:604d)
-	dw Mansion2Text1, Predef5CText, Mansion2Text3, Mansion2Text4, Mansion2Text5
+Mansion2TextPointers: ; 5204d (14:604d)
+	dw Mansion2Text1
+	dw Predef5CText
+	dw Mansion2Text3
+	dw Mansion2Text4
+	dw Mansion2Text5
 
 Mansion2TrainerHeaders: ; 52057 (14:6057)
 Mansion2TrainerHeader0: ; 52057 (14:6057)
@@ -82251,7 +84016,7 @@ Mansion2TrainerHeader0: ; 52057 (14:6057)
 	dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
 	dw Mansion2EndBattleText1 ; 0x6073 TextEndBattle
 
-db $ff
+	db $ff
 
 Mansion2Text1: ; 52064 (14:6064)
 	db $08 ; asm
@@ -82349,22 +84114,22 @@ Mansion2Blocks: ; 52110 (14:6110)
 Mansion3_h: ; 0x521e2 to 0x521ee (12 bytes) (id=215)
 	db $16 ; tileset
 	db MANSION_3_HEIGHT, MANSION_3_WIDTH ; dimensions (y, x)
-	dw Mansion3Blocks, Mansion3Texts, Mansion3Script ; blocks, texts, scripts
+	dw Mansion3Blocks, Mansion3TextPointers, Mansion3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Mansion3Object ; objects
 
 Mansion3Script: ; 521ee (14:61ee)
-	call Unnamed_52204
+	call Mansion3Script_52204
 	call EnableAutoTextBoxDrawing
 	ld hl, Mansion3TrainerHeader0
-	ld de, Unknown_52235 ; $6235
+	ld de, Mansion3ScriptPointers
 	ld a, [W_MANSION3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_MANSION3CURSCRIPT], a
 	ret
 
-Unnamed_52204: ; 52204 (14:6204)
+Mansion3Script_52204: ; 52204 (14:6204)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -82388,9 +84153,13 @@ Unnamed_52204: ; 52204 (14:6204)
 	call Func_5202f
 	ret
 
-Unknown_52235: ; 52235 (14:6235)
-INCBIN "baserom.gbc",$52235,$5223b - $52235
-	ld hl, Unknown_52254 ; $6254
+Mansion3ScriptPointers: ; 52235 (14:6235)
+	dw Mansion3Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+Mansion3Script0: ; 5223b (14:623b)
+	ld hl, CoordsData_52254
 	call Func_5225b
 	ld a, [$d71e]
 	and a
@@ -82403,8 +84172,11 @@ INCBIN "baserom.gbc",$52235,$5223b - $52235
 	ld [$d71d], a
 	ret
 
-Unknown_52254: ; 52254 (14:6254)
-INCBIN "baserom.gbc",$52254,$5225b - $52254
+CoordsData_52254: ; 52254 (14:6254)
+	db $0E,$10
+	db $0E,$11
+	db $0E,$13
+	db $FF
 
 Func_5225b: ; 5225b (14:625b)
 	xor a
@@ -82430,8 +84202,13 @@ Func_5225b: ; 5225b (14:625b)
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	jp DisplayTextID
 
-Mansion3Texts: ; 5228a (14:628a)
-	dw Mansion3Text1, Mansion3Text2, Predef5CText, Predef5CText, Mansion3Text5, Mansion3Text6
+Mansion3TextPointers: ; 5228a (14:628a)
+	dw Mansion3Text1
+	dw Mansion3Text2
+	dw Predef5CText
+	dw Predef5CText
+	dw Mansion3Text5
+	dw Mansion3Text6
 
 Mansion3TrainerHeaders: ; 52296 (14:6296)
 Mansion3TrainerHeader0: ; 52296 (14:6296)
@@ -82452,7 +84229,7 @@ Mansion3TrainerHeader2: ; 522a2 (14:62a2)
 	dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
 	dw Mansion3EndBattleText2 ; 0x62d7 TextEndBattle
 
-db $ff
+	db $ff
 
 Mansion3Text1: ; 522af (14:62af)
 	db $08 ; asm
@@ -82522,7 +84299,7 @@ Mansion3Blocks: ; 52326 (14:6326)
 Mansion4_h: ; 0x523ad to 0x523b9 (12 bytes) (id=216)
 	db $16 ; tileset
 	db MANSION_4_HEIGHT, MANSION_4_WIDTH ; dimensions (y, x)
-	dw Mansion4Blocks, Mansion4Texts, Mansion4Script ; blocks, texts, scripts
+	dw Mansion4Blocks, Mansion4TextPointers, Mansion4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Mansion4Object ; objects
@@ -82531,7 +84308,7 @@ Mansion4Script: ; 523b9 (14:63b9)
 	call Unknown_523cf
 	call EnableAutoTextBoxDrawing
 	ld hl, Mansion4TrainerHeader0
-	ld de, Unknown_52430 ; $6430
+	ld de, Mansion4ScriptPointers
 	ld a, [W_MANSION4CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_MANSION4CURSCRIPT], a
@@ -82581,11 +84358,21 @@ Unknown_523cf: ; 523cf (14:63cf)
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	jp DisplayTextID
 
-Unknown_52430: ; 52430 (14:6430)
-INCBIN "baserom.gbc",$52430,$52436 - $52430
+Mansion4ScriptPointers: ; 52430 (14:6430)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Mansion4Texts: ; 52436 (14:6436)
-INCBIN "baserom.gbc",$52436,$52448 - $52436
+Mansion4TextPointers: ; 52436 (14:6436)
+	dw Mansion4Text1
+	dw Mansion4Text2
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw Mansion4Text7
+	dw Predef5CText
+	dw Mansion3Text6
 
 Mansion4TrainerHeaders: ; 52448 (14:6448)
 Mansion4TrainerHeader0: ; 52448 (14:6448)
@@ -82606,7 +84393,7 @@ Mansion4TrainerHeader2: ; 52454 (14:6454)
 	dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
 	dw Mansion4EndBattleText2 ; 0x6489 TextEndBattle
 
-db $ff
+	db $ff
 
 Mansion4Text1: ; 52461 (14:6461)
 	db $08 ; asm
@@ -83327,7 +85114,7 @@ Route2_h: ; 54000 (15:4000)
 	db 00 ; Tileset
 	db ROUTE_2_HEIGHT,ROUTE_2_WIDTH ;Height,Width blocks (1 block = 4x4 tiles)
 	dw Route2Blocks ;Map-Pointer
-	dw Route2Texts ;Maps text pointer
+	dw Route2TextPointers ;Maps text pointer
 	dw Route2Script ;Maps script pointer
 	db NORTH | SOUTH ;Connection Byte
 
@@ -83387,7 +85174,7 @@ Route2Blocks: ; 5407e (15:407e)
 Route3_h: ; 0x541e6 to 0x54208 (34 bytes) (id=14)
 	db $00 ; tileset
 	db ROUTE_3_HEIGHT, ROUTE_3_WIDTH ; dimensions (y, x)
-	dw Route3Blocks, Route3Texts, Route3Script ; blocks, texts, scripts
+	dw Route3Blocks, Route3TextPointers, Route3Script ; blocks, texts, scripts
 	db NORTH | WEST ; connections
 
 	; connections data
@@ -83435,7 +85222,7 @@ Route3Blocks: ; 54255 (15:4255)
 Route4_h: ; 0x54390 to 0x543b2 (34 bytes) (id=15)
 	db $00 ; tileset
 	db ROUTE_4_HEIGHT, ROUTE_4_WIDTH ; dimensions (y, x)
-	dw Route4Blocks, Route4Texts, Route4Script; blocks, texts, scripts
+	dw Route4Blocks, Route4TextPointers, Route4Script; blocks, texts, scripts
 	db SOUTH | EAST ; connections
 
 	; connections data
@@ -83487,7 +85274,7 @@ Route4Blocks: ; 543ec (15:43ec)
 Route5_h: ; 0x54581 to 0x545a3 (34 bytes) (id=16)
 	db $00 ; tileset
 	db ROUTE_5_HEIGHT, ROUTE_5_WIDTH ; dimensions (y, x)
-	dw Route5Blocks, Route5Texts, Route5Script ; blocks, texts, scripts
+	dw Route5Blocks, Route5TextPointers, Route5Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
 
 	; connections data
@@ -83538,7 +85325,7 @@ Route5Blocks: ; 545d2 (15:45d2)
 Route9_h: ; 0x54686 to 0x546a8 (34 bytes) (id=20)
 	db $00 ; tileset
 	db ROUTE_9_HEIGHT, ROUTE_9_WIDTH ; dimensions (y, x)
-	dw Route9Blocks, Route9Texts, Route9Script ; blocks, texts, scripts
+	dw Route9Blocks, Route9TextPointers, Route9Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -83587,7 +85374,7 @@ Route9Blocks: ; 546fe (15:46fe)
 Route13_h: ; 0x5480c to 0x5482e (34 bytes) (id=24)
 	db $00 ; tileset
 	db ROUTE_13_HEIGHT, ROUTE_13_WIDTH ; dimensions (y, x)
-	dw Route13Blocks, Route13Texts, Route13Script ; blocks, texts, scripts
+	dw Route13Blocks, Route13TextPointers, Route13Script ; blocks, texts, scripts
 	db NORTH | WEST ; connections
 
 	; connections data
@@ -83638,7 +85425,7 @@ Route13Blocks: ; 5488b (15:488b)
 Route14_h: ; 0x54999 to 0x549bb (34 bytes) (id=25)
 	db $00 ; tileset
 	db ROUTE_14_HEIGHT, ROUTE_14_WIDTH ; dimensions (y, x)
-	dw Route14Blocks, Route14Texts, Route14Script ; blocks, texts, scripts
+	dw Route14Blocks, Route14TextPointers, Route14Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -83687,7 +85474,7 @@ Route14Blocks: ; 54a12 (15:4a12)
 Route17_h: ; 0x54b20 to 0x54b42 (34 bytes) (id=28)
 	db $00 ; tileset
 	db ROUTE_17_HEIGHT, ROUTE_17_WIDTH ; dimensions (y, x)
-	dw Route17Blocks, Route17Texts, Route17Script ; blocks, texts, scripts
+	dw Route17Blocks, Route17TextPointers, Route17Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
 
 	; connections data
@@ -83741,7 +85528,7 @@ Route17Blocks: ; 54ba8 (15:4ba8)
 Route19_h: ; 0x54e78 to 0x54e9a (34 bytes) (id=30)
 	db $00 ; tileset
 	db ROUTE_19_HEIGHT, ROUTE_19_WIDTH ; dimensions (y, x)
-	dw Route19Blocks, Route19Texts, Route19Script ; blocks, texts, scripts
+	dw Route19Blocks, Route19TextPointers, Route19Script ; blocks, texts, scripts
 	db NORTH | WEST ; connections
 
 	; connections data
@@ -83790,7 +85577,7 @@ Route19Blocks: ; 54ef1 (15:4ef1)
 Route21_h: ; 0x54fff to 0x55021 (34 bytes) (id=32)
 	db $00 ; tileset
 	db ROUTE_21_HEIGHT, ROUTE_21_WIDTH ; dimensions (y, x)
-	dw Route21Blocks, Route21Texts, Route21Script ; blocks, texts, scripts
+	dw Route21Blocks, Route21TextPointers, Route21Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
 
 	; connections data
@@ -84222,8 +86009,11 @@ INCBIN "baserom.gbc",$554dd,$554e3 - $554dd
 Route2Script: ; 554e3 (15:54e3)
 	jp EnableAutoTextBoxDrawing
 
-Route2Texts: ; 554e6 (15:54e6)
-	dw Predef5CText, Predef5CText, Route2Text3, Route2Text4
+Route2TextPointers: ; 554e6 (15:54e6)
+	dw Predef5CText
+	dw Predef5CText
+	dw Route2Text3
+	dw Route2Text4
 
 Route2Text3: ; 554ee (15:54ee)
 	TX_FAR _Route2Text3
@@ -84236,17 +86026,28 @@ Route2Text4: ; 554f3 (15:54f3)
 Route3Script: ; 554f8 (15:54f8)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route3TrainerHeader0
-	ld de, Unknown_5550b
+	ld de, Route3ScriptPointers
 	ld a, [W_ROUTE3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE3CURSCRIPT], a
 	ret
 
-Unknown_5550b: ; 5550b (15:550b)
-INCBIN "baserom.gbc",$5550b,$55511 - $5550b
+Route3ScriptPointers: ; 5550b (15:550b)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route3Texts: ; 55511 (15:5511)
-	dw Route3Text1, Route3Text2, Route3Text3, Route3Text4, Route3Text5, Route3Text6, Route3Text7, Route3Text8, Route3Text9, Route3Text10
+Route3TextPointers: ; 55511 (15:5511)
+	dw Route3Text1
+	dw Route3Text2
+	dw Route3Text3
+	dw Route3Text4
+	dw Route3Text5
+	dw Route3Text6
+	dw Route3Text7
+	dw Route3Text8
+	dw Route3Text9
+	dw Route3Text10
 
 Route3TrainerHeaders: ; 55525 (15:5525)
 Route3TrainerHeader0: ; 55525 (15:5525)
@@ -84321,7 +86122,7 @@ Route3TrainerHeader8: ; 55579 (15:5579)
 	dw Route3EndBattleText8 ; 0x5649 TextEndBattle
 	dw Route3EndBattleText8 ; 0x5649 TextEndBattle
 
-db $ff
+	db $ff
 
 Route3Text1: ; 55586 (15:5586)
 	TX_FAR _Route3Text1
@@ -84478,17 +86279,24 @@ Route3Text10: ; 55653 (15:5653)
 Route4Script: ; 55658 (15:5658)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route4TrainerHeaders
-	ld de, Unknown_5566b
+	ld de, Route4ScriptPointers
 	ld a, [W_ROUTE4CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE4CURSCRIPT], a
 	ret
 
-Unknown_5566b: ; 5566b (15:566b)
-INCBIN "baserom.gbc",$5566b,$55671 - $5566b
+Route4ScriptPointers: ; 5566b (15:566b)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route4Texts: ; 55671 (15:5671)
-	dw Route4Text1, Route4Text2, Predef5CText, PokeCenterSignText, Route4Text5, Route4Text6
+Route4TextPointers: ; 55671 (15:5671)
+	dw Route4Text1
+	dw Route4Text2
+	dw Predef5CText
+	dw PokeCenterSignText
+	dw Route4Text5
+	dw Route4Text6
 
 Route4TrainerHeaders: ; 5567d (15:567d)
 Route4TrainerHeader0: ; 5567d (15:567d)
@@ -84500,7 +86308,7 @@ Route4TrainerHeader0: ; 5567d (15:567d)
 	dw Route4EndBattleText1 ; 0x569e TextEndBattle
 	dw Route4EndBattleText1 ; 0x569e TextEndBattle
 
-db $ff
+	db $ff
 
 Route4Text1: ; 5568a (15:568a)
 	TX_FAR _Route4Text1
@@ -84535,7 +86343,7 @@ Route4Text6: ; 556ad (15:56ad)
 Route5Script: ; 556b2 (15:56b2)
 	jp EnableAutoTextBoxDrawing
 
-Route5Texts: ; 556b5 (15:56b5)
+Route5TextPointers: ; 556b5 (15:56b5)
 	dw Route5Text1
 
 Route5Text1: ; 556b7 (15:56b7)
@@ -84545,17 +86353,29 @@ Route5Text1: ; 556b7 (15:56b7)
 Route9Script: ; 556bc (15:56bc)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route9TrainerHeaders
-	ld de, Unknown_556cf
+	ld de, Route9ScriptPointers
 	ld a, [W_ROUTE9CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE9CURSCRIPT], a
 	ret
 
-Unknown_556cf: ; 556cf (15:56cf)
-INCBIN "baserom.gbc",$556cf,$556d5 - $556cf
+Route9ScriptPointers: ; 556cf (15:56cf)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route9Texts: ; 556d5 (15:56d5)
-	dw Route9Text1, Route9Text2, Route9Text3, Route9Text4, Route9Text5, Route9Text6, Route9Text7, Route9Text8, Route9Text9, Predef5CText, Route9Text11
+Route9TextPointers: ; 556d5 (15:56d5)
+	dw Route9Text1
+	dw Route9Text2
+	dw Route9Text3
+	dw Route9Text4
+	dw Route9Text5
+	dw Route9Text6
+	dw Route9Text7
+	dw Route9Text8
+	dw Route9Text9
+	dw Predef5CText
+	dw Route9Text11
 
 Route9TrainerHeaders: ; 556eb (15:56eb)
 Route9TrainerHeader0: ; 556eb (15:56eb)
@@ -84639,7 +86459,7 @@ Route9TrainerHeader9: ; 5574b (15:574b)
 	dw Route9EndBattleText9 ; 0x580f TextEndBattle
 	dw Route9EndBattleText9 ; 0x580f TextEndBattle
 
-db $ff
+	db $ff
 
 Route9Text1: ; 55758 (15:5758)
 	db $8 ; asm
@@ -84803,17 +86623,31 @@ Route9Text11: ; 55819 (15:5819)
 Route13Script: ; 5581e (15:581e)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route13TrainerHeaders
-	ld de, Route13Script_Unknown55831
+	ld de, Route13ScriptPointers
 	ld a, [W_ROUTE13CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE13CURSCRIPT], a
 	ret
 
-Route13Script_Unknown55831: ; 55831 (15:5831)
-INCBIN "baserom.gbc",$55831,$55837 - $55831
+Route13ScriptPointers: ; 55831 (15:5831)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route13Texts: ; 55837 (15:5837)
-	dw Route13Text1, Route13Text2, Route13Text3, Route13Text4, Route13Text5, Route13Text6, Route13Text7, Route13Text8, Route13Text9, Route13Text10, Route13Text11, Route13Text12, Route13Text13
+Route13TextPointers: ; 55837 (15:5837)
+	dw Route13Text1
+	dw Route13Text2
+	dw Route13Text3
+	dw Route13Text4
+	dw Route13Text5
+	dw Route13Text6
+	dw Route13Text7
+	dw Route13Text8
+	dw Route13Text9
+	dw Route13Text10
+	dw Route13Text11
+	dw Route13Text12
+	dw Route13Text13
 
 Route13TrainerHeaders: ; 55851 (15:5851)
 Route13TrainerHeader0: ; 55851 (15:5851)
@@ -84906,7 +86740,7 @@ Route13TrainerHeader10: ; 558bd (15:58bd)
 	dw Route13EndBattleText11 ; 0x59ba TextEndBattle
 	dw Route13EndBattleText11 ; 0x59ba TextEndBattle
 
-db $ff
+	db $ff
 
 Route13Text1: ; 558ca (15:58ca)
 	db $08 ; asm
@@ -85103,17 +86937,29 @@ Route13Text13: ; 559ce (15:59ce)
 Route14Script: ; 559d3 (15:59d3)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route14TrainerHeaders
-	ld de, Unknown_559e6
+	ld de, Route14ScriptPointers
 	ld a, [W_ROUTE14CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE14CURSCRIPT], a
 	ret
 
-Unknown_559e6: ; 559e6 (15:59e6)
-INCBIN "baserom.gbc",$559e6,$559ec - $559e6
+Route14ScriptPointers: ; 559e6 (15:59e6)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route14Texts: ; 559ec (15:59ec)
-	dw Route14Text1, Route14Text2, Route14Text3, Route14Text4, Route14Text5, Route14Text6, Route14Text7, Route14Text8, Route14Text9, Route14Text10, Route14Text11
+Route14TextPointers: ; 559ec (15:59ec)
+	dw Route14Text1
+	dw Route14Text2
+	dw Route14Text3
+	dw Route14Text4
+	dw Route14Text5
+	dw Route14Text6
+	dw Route14Text7
+	dw Route14Text8
+	dw Route14Text9
+	dw Route14Text10
+	dw Route14Text11
 
 Route14TrainerHeaders: ; 55a02 (15:5a02)
 Route14TrainerHeader0: ; 55a02 (15:5a02)
@@ -85206,7 +87052,7 @@ Route14TrainerHeader9: ; 55a6e (15:5a6e)
 	dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
 	dw Route14EndBattleText10 ; 0x5b6b TextEndBattle
 
-db $ff
+	db $ff
 
 Route14Text1: ; 55a7b (15:5a7b)
 	db $08 ; asm
@@ -85395,17 +87241,34 @@ Route14Text11: ; 55b75 (15:5b75)
 Route17Script: ; 55b7a (15:5b7a)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route17TrainerHeaders
-	ld de, Route17_Unknown55b8d
+	ld de, Route17ScriptPointers
 	ld a, [W_ROUTE17CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE17CURSCRIPT], a
 	ret
 
-Route17_Unknown55b8d: ; 55b8d (15:5b8d)
-INCBIN "baserom.gbc",$55b8d,$55b93 - $55b8d
+Route17ScriptPointers: ; 55b8d (15:5b8d)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route17Texts: ; 55b93 (15:5b93)
-	dw Route17Text1, Route17Text2, Route17Text3, Route17Text4, Route17Text5, Route17Text6, Route17Text7, Route17Text8, Route17Text9, Route17Text10, Route17Text11, Route17Text12, Route17Text13, Route17Text14, Route17Text15, Route17Text16
+Route17TextPointers: ; 55b93 (15:5b93)
+	dw Route17Text1
+	dw Route17Text2
+	dw Route17Text3
+	dw Route17Text4
+	dw Route17Text5
+	dw Route17Text6
+	dw Route17Text7
+	dw Route17Text8
+	dw Route17Text9
+	dw Route17Text10
+	dw Route17Text11
+	dw Route17Text12
+	dw Route17Text13
+	dw Route17Text14
+	dw Route17Text15
+	dw Route17Text16
 
 Route17TrainerHeaders: ; 55bb3 (15:5bb3)
 Route17TrainerHeader0: ; 55bb3 (15:5bb3)
@@ -85498,7 +87361,7 @@ Route17TrainerHeader9: ; 55c1f (15:5c1f)
 	dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
 	dw Route17EndBattleText10 ; 0x5d1c TextEndBattle
 
-db $ff
+	db $ff
 
 Route17Text1: ; 55c2c (15:5c2c)
 	db $08 ; asm
@@ -85707,17 +87570,29 @@ Route17Text16: ; 55d3f (15:5d3f)
 Route19Script: ; 55d44 (15:5d44)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route19TrainerHeaders
-	ld de, Route19_Unknown55d57
+	ld de, Route19ScriptPointers
 	ld a, [W_ROUTE19CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE19CURSCRIPT], a
 	ret
 
-Route19_Unknown55d57: ; 55d57 (15:5d57)
-INCBIN "baserom.gbc",$55d57,$55d5d - $55d57
+Route19ScriptPointers: ; 55d57 (15:5d57)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route19Texts: ; 55d5d (15:5d5d)
-	dw Route19Text1, Route19Text2, Route19Text3, Route19Text4, Route19Text5, Route19Text6, Route19Text7, Route19Text8, Route19Text9, Route19Text10, Route19Text11
+Route19TextPointers: ; 55d5d (15:5d5d)
+	dw Route19Text1
+	dw Route19Text2
+	dw Route19Text3
+	dw Route19Text4
+	dw Route19Text5
+	dw Route19Text6
+	dw Route19Text7
+	dw Route19Text8
+	dw Route19Text9
+	dw Route19Text10
+	dw Route19Text11
 
 Route19TrainerHeaders: ; 55d73 (15:5d73)
 Route19TrainerHeader0: ; 55d73 (15:5d73)
@@ -85810,7 +87685,7 @@ Route19TrainerHeader9: ; 55ddf (15:5ddf)
 	dw Route19EndBattleText10 ; 0x5edc TextEndBattle
 	dw Route19EndBattleText10 ; 0x5edc TextEndBattle
 
-db $ff
+	db $ff
 
 Route19Text1: ; 55dec (15:5dec)
 	db $08 ; asm
@@ -85999,17 +87874,27 @@ Route19Text11: ; 55ee6 (15:5ee6)
 Route21Script: ; 55eeb (15:5eeb)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route21TrainerHeaders
-	ld de, Route21_Unknown55efe
+	ld de, Route21ScriptPointers
 	ld a, [W_ROUTE21CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE21CURSCRIPT], a
 	ret
 
-Route21_Unknown55efe: ; 55efe (15:5efe)
-INCBIN "baserom.gbc",$55efe,$55f04 - $55efe
+Route21ScriptPointers: ; 55efe (15:5efe)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route21Texts: ; 55f04 (15:5f04)
-	dw Route21Text1, Route21Text2, Route21Text3, Route21Text4, Route21Text5, Route21Text6, Route21Text7, Route21Text8, Route21Text9
+Route21TextPointers: ; 55f04 (15:5f04)
+	dw Route21Text1
+	dw Route21Text2
+	dw Route21Text3
+	dw Route21Text4
+	dw Route21Text5
+	dw Route21Text6
+	dw Route21Text7
+	dw Route21Text8
+	dw Route21Text9
 
 Route21TrainerHeaders: ; 55f16 (15:5f16)
 Route21TrainerHeader0: ; 55f16 (15:5f16)
@@ -86093,7 +87978,7 @@ Route21TrainerHeader8: ; 55f76 (15:5f76)
 	dw Route21EndBattleText9 ; 0x605a TextEndBattle
 	dw Route21EndBattleText9 ; 0x605a TextEndBattle
 
-db $ff
+	db $ff
 
 Route21Text1: ; 55f83 (15:5f83)
 	db $08 ; asm
@@ -86260,7 +88145,7 @@ Route21AfterBattleText9: ; 5605f (15:605f)
 VermilionHouse2_h: ; 0x56064 to 0x56070 (12 bytes) (id=163)
 	db $08 ; tileset
 	db VERMILION_HOUSE_2_HEIGHT, VERMILION_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw VermilionHouse2Blocks, VermilionHouse2Texts, VermilionHouse2Script ; blocks, texts, scripts
+	dw VermilionHouse2Blocks, VermilionHouse2TextPointers, VermilionHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionHouse2Object ; objects
@@ -86268,7 +88153,7 @@ VermilionHouse2_h: ; 0x56064 to 0x56070 (12 bytes) (id=163)
 VermilionHouse2Script: ; 56070 (15:6070)
 	jp EnableAutoTextBoxDrawing
 
-VermilionHouse2Texts: ; 56073 (15:6073)
+VermilionHouse2TextPointers: ; 56073 (15:6073)
 	dw VermilionHouse2Text1
 
 VermilionHouse2Text1: ; 56075 (15:6075)
@@ -86342,7 +88227,7 @@ VermilionHouse2Object: ; 0x560cf (size=26)
 CeladonMart2_h: ; 0x560e9 to 0x560f5 (12 bytes) (id=123)
 	db $12 ; tileset
 	db CELADON_MART_2_HEIGHT, CELADON_MART_2_WIDTH ; dimensions (y, x)
-	dw CeladonMart2Blocks, CeladonMart2Texts, CeladonMart2Script ; blocks, texts, scripts
+	dw CeladonMart2Blocks, CeladonMart2TextPointers, CeladonMart2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMart2Object ; objects
@@ -86350,8 +88235,12 @@ CeladonMart2_h: ; 0x560e9 to 0x560f5 (12 bytes) (id=123)
 CeladonMart2Script: ; 560f5 (15:60f5)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMart2Texts: ; 560f8 (15:60f8)
-	dw CeladonMart2Text1, CeladonMart2Text2, CeladonMart2Text3, CeladonMart2Text4, CeladonMart2Text5
+CeladonMart2TextPointers: ; 560f8 (15:60f8)
+	dw CeladonMart2Text1
+	dw CeladonMart2Text2
+	dw CeladonMart2Text3
+	dw CeladonMart2Text4
+	dw CeladonMart2Text5
 
 CeladonMart2Text3: ; 56102 (15:6102)
 	TX_FAR _CeladonMart2Text3
@@ -86393,7 +88282,7 @@ CeladonMart2Blocks: ; 56148 (15:6148)
 FuchsiaHouse3_h: ; 0x56170 to 0x5617c (12 bytes) (id=164)
 	db $0d ; tileset
 	db FUCHSIA_HOUSE_3_HEIGHT, FUCHSIA_HOUSE_3_WIDTH ; dimensions (y, x)
-	dw FuchsiaHouse3Blocks, FuchsiaHouse3Texts, FuchsiaHouse3Script ; blocks, texts, scripts
+	dw FuchsiaHouse3Blocks, FuchsiaHouse3TextPointers, FuchsiaHouse3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaHouse3Object ; objects
@@ -86401,7 +88290,7 @@ FuchsiaHouse3_h: ; 0x56170 to 0x5617c (12 bytes) (id=164)
 FuchsiaHouse3Script: ; 5617c (15:617c)
 	jp EnableAutoTextBoxDrawing
 
-FuchsiaHouse3Texts: ; 5617f (15:617f)
+FuchsiaHouse3TextPointers: ; 5617f (15:617f)
 	dw FuchsiaHouse3Text1
 
 FuchsiaHouse3Text1: ; 56181 (15:6181)
@@ -86477,7 +88366,7 @@ FuchsiaHouse3Object: ; 0x56221 (size=34)
 DayCareM_h: ; 0x56243 to 0x5624f (12 bytes) (id=72)
 	db $08 ; tileset
 	db DAYCAREM_HEIGHT, DAYCAREM_WIDTH ; dimensions (y, x)
-	dw DayCareMBlocks, DayCareMTexts, DayCareMScript ; blocks, texts, scripts
+	dw DayCareMBlocks, DayCareMTextPointers, DayCareMScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw DayCareMObject ; objects
@@ -86485,7 +88374,7 @@ DayCareM_h: ; 0x56243 to 0x5624f (12 bytes) (id=72)
 DayCareMScript: ; 5624f (15:624f)
 	jp EnableAutoTextBoxDrawing
 
-DayCareMTexts: ; 56252 (15:6252)
+DayCareMTextPointers: ; 56252 (15:6252)
 	dw DayCareMText1
 
 DayCareMText1: ; 56254 (15:6254)
@@ -86628,7 +88517,7 @@ DayCareMObject: ; 0x56459 (size=26)
 Route12House_h: ; 0x56473 to 0x5647f (12 bytes) (id=189)
 	db $08 ; tileset
 	db ROUTE_12_HOUSE_HEIGHT, ROUTE_12_HOUSE_WIDTH ; dimensions (y, x)
-	dw Route12HouseBlocks, Route12HouseTexts, Route12HouseScript ; blocks, texts, scripts
+	dw Route12HouseBlocks, Route12HouseTextPointers, Route12HouseScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route12HouseObject ; objects
@@ -86636,7 +88525,7 @@ Route12House_h: ; 0x56473 to 0x5647f (12 bytes) (id=189)
 Route12HouseScript: ; 5647f (15:647f)
 	jp EnableAutoTextBoxDrawing
 
-Route12HouseTexts: ; 56482 (15:6482)
+Route12HouseTextPointers: ; 56482 (15:6482)
 	dw Route12HouseText1
 
 Route12HouseText1: ; 56484 (15:6484)
@@ -86710,7 +88599,7 @@ Route12HouseObject: ; 0x564de (size=26)
 SilphCo8_h: ; 0x564f8 to 0x56504 (12 bytes) (id=213)
 	db $16 ; tileset
 	db SILPH_CO_8F_HEIGHT, SILPH_CO_8F_WIDTH ; dimensions (y, x)
-	dw SilphCo8Blocks, SilphCo8Texts, SilphCo8Script ; blocks, texts, scripts
+	dw SilphCo8Blocks, SilphCo8TextPointers, SilphCo8Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo8Object ; objects
@@ -86719,7 +88608,7 @@ SilphCo8Script: ; 56504 (15:6504)
 	call SilphCo8_Unknown5651a
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo8TrainerHeader0
-	ld de, Unknown_56577 ; $6577
+	ld de, SilphCo8ScriptPointers
 	ld a, [W_SILPHCO8CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO8CURSCRIPT], a
@@ -86789,11 +88678,16 @@ Func_5656d: ; 5656d (15:656d)
 	set 0, [hl]
 	ret
 
-Unknown_56577: ; 56577 (15:6577)
-INCBIN "baserom.gbc",$56577,$5657d - $56577
+SilphCo8ScriptPointers: ; 56577 (15:6577)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SilphCo8Texts: ; 5657d (15:657d)
-	dw SilphCo8Text1, SilphCo8Text2, SilphCo8Text3, SilphCo8Text4
+SilphCo8TextPointers: ; 5657d (15:657d)
+	dw SilphCo8Text1
+	dw SilphCo8Text2
+	dw SilphCo8Text3
+	dw SilphCo8Text4
 
 SilphCo8TrainerHeaders: ; 56585 (15:6585)
 SilphCo8TrainerHeader0: ; 56585 (15:6585)
@@ -86823,7 +88717,7 @@ SilphCo8TrainerHeader2: ; 5659d (15:659d)
 	dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
 	dw SilphCo8EndBattleText3 ; 0x6609 TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo8Text1: ; 565aa (15:65aa)
 	db $08 ; asm
@@ -87393,7 +89287,7 @@ SECTION "bank16",ROMX,BANK[$16]
 Route6_h: ; 0x58000 to 0x58022 (34 bytes) (id=17)
 	db $00 ; tileset
 	db ROUTE_6_HEIGHT, ROUTE_6_WIDTH ; dimensions (y, x)
-	dw Route6Blocks, Route6Texts, Route6Script ; blocks, texts, scripts
+	dw Route6Blocks, Route6TextPointers, Route6Script ; blocks, texts, scripts
 	db NORTH | SOUTH ; connections
 
 	; connections data
@@ -87448,7 +89342,7 @@ Route6Blocks: ; 58079 (16:4079)
 Route8_h: ; 0x5812d to 0x5814f (34 bytes) (id=19)
 	db $00 ; tileset
 	db ROUTE_8_HEIGHT, ROUTE_8_WIDTH ; dimensions (y, x)
-	dw Route8Blocks, Route8Texts, Route8Script ; blocks, texts, scripts
+	dw Route8Blocks, Route8TextPointers, Route8Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -87508,7 +89402,7 @@ Route8Blocks: ; 581c6 (16:41c6)
 Route10_h: ; 0x582d4 to 0x582f6 (34 bytes) (id=21)
 	db $00 ; tileset
 	db ROUTE_10_HEIGHT, ROUTE_10_WIDTH ; dimensions (y, x)
-	dw Route10Blocks, Route10Texts, Route10Script ; blocks, texts, scripts
+	dw Route10Blocks, Route10TextPointers, Route10Script ; blocks, texts, scripts
 	db SOUTH | WEST ; connections
 
 	; connections data
@@ -87566,7 +89460,7 @@ Route10Blocks: ; 58356 (16:4356)
 Route11_h: ; 0x584be to 0x584e0 (34 bytes) (id=22)
 	db $00 ; tileset
 	db ROUTE_11_HEIGHT, ROUTE_11_WIDTH ; dimensions (y, x)
-	dw Route11Blocks, Route11Texts, Route11Script ; blocks, texts, scripts
+	dw Route11Blocks, Route11TextPointers, Route11Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -87627,7 +89521,7 @@ Route11Blocks: ; 5855f (16:455f)
 Route12_h: ; 0x5866d to 0x5869a (45 bytes) (id=23)
 	db $00 ; tileset
 	db ROUTE_12_HEIGHT, ROUTE_12_WIDTH ; dimensions (y, x)
-	dw Route12Blocks, Route12Texts, Route12Script ; blocks, texts, scripts
+	dw Route12Blocks, Route12TextPointers, Route12Script ; blocks, texts, scripts
 	db NORTH | SOUTH | WEST ; connections
 
 	; connections data
@@ -87694,7 +89588,7 @@ Route12Blocks: ; 58710 (16:4710)
 Route15_h: ; 0x5892c to 0x5894e (34 bytes) (id=26)
 	db $00 ; tileset
 	db ROUTE_15_HEIGHT, ROUTE_15_WIDTH ; dimensions (y, x)
-	dw Route15Blocks, Route15Texts, Route15Script ; blocks, texts, scripts
+	dw Route15Blocks, Route15TextPointers, Route15Script ; blocks, texts, scripts
 	db WEST | EAST ; connections
 
 	; connections data
@@ -87754,7 +89648,7 @@ Route15Blocks: ; 589cc (16:49cc)
 Route16_h: ; 0x58ada to 0x58afc (34 bytes) (id=27)
 	db $00 ; tileset
 	db ROUTE_16_HEIGHT, ROUTE_16_WIDTH ; dimensions (y, x)
-	dw Route16Blocks, Route16Texts, Route16Script ; blocks, texts, scripts
+	dw Route16Blocks, Route16TextPointers, Route16Script ; blocks, texts, scripts
 	db SOUTH | EAST ; connections
 
 	; connections data
@@ -87821,7 +89715,7 @@ Route16Blocks: ; 58b84 (16:4b84)
 Route18_h: ; 0x58c38 to 0x58c5a (34 bytes) (id=29)
 	db $00 ; tileset
 	db ROUTE_18_HEIGHT, ROUTE_18_WIDTH ; dimensions (y, x)
-	dw Route18Blocks, Route18Texts, Route18Script ; blocks, texts, scripts
+	dw Route18Blocks, Route18TextPointers, Route18Script ; blocks, texts, scripts
 	db NORTH | EAST ; connections
 
 	; connections data
@@ -88203,12 +90097,12 @@ CalcDSquared: ; 59010 (16:5010)
 ;  (a*n^3)/b + sign*c*n^2 + d*n - e
 ; where sign = -1 <=> S=1
 GrowthRateTable: ; 5901d (16:501d)
-db $11,$00,$00,$00 ; medium fast      n^3
-db $34,$0A,$00,$1E ; (unused?)    3/4 n^3 + 10 n^2         - 30
-db $34,$14,$00,$46 ; (unused?)    3/4 n^3 + 20 n^2         - 70
-db $65,$8F,$64,$8C ; medium slow: 6/5 n^3 - 15 n^2 + 100 n - 140
-db $45,$00,$00,$00 ; fast:        4/5 n^3
-db $54,$00,$00,$00 ; slow:        5/4 n^3
+	db $11,$00,$00,$00 ; medium fast      n^3
+	db $34,$0A,$00,$1E ; (unused?)    3/4 n^3 + 10 n^2         - 30
+	db $34,$14,$00,$46 ; (unused?)    3/4 n^3 + 20 n^2         - 70
+	db $65,$8F,$64,$8C ; medium slow: 6/5 n^3 - 15 n^2 + 100 n - 140
+	db $45,$00,$00,$00 ; fast:        4/5 n^3
+	db $54,$00,$00,$00 ; slow:        5/4 n^3
 
 Func_59035 ; 0x59035
 	ld hl, UnnamedText_59091 ; $5091
@@ -88283,17 +90177,25 @@ UnnamedText_590ab: ; 590ab (16:50ab)
 Route6Script: ; 590b0 (16:50b0)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route6TrainerHeaders
-	ld de, Route6_Unknown590c3
+	ld de, Route6ScriptPointers
 	ld a, [W_ROUTE6CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE6CURSCRIPT], a
 	ret
 
-Route6_Unknown590c3: ; 590c3 (16:50c3)
-INCBIN "baserom.gbc",$590c3,$590c9 - $590c3
+Route6ScriptPointers: ; 590c3 (16:50c3)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route6Texts: ; 590c9 (16:50c9)
-	dw Route6Text1, Route6Text2, Route6Text3, Route6Text4, Route6Text5, Route6Text6, Route6Text7
+Route6TextPointers: ; 590c9 (16:50c9)
+	dw Route6Text1
+	dw Route6Text2
+	dw Route6Text3
+	dw Route6Text4
+	dw Route6Text5
+	dw Route6Text6
+	dw Route6Text7
 
 Route6TrainerHeaders: ; 590d7 (16:50d7)
 Route6TrainerHeader0: ; 590d7 (16:50d7)
@@ -88350,7 +90252,7 @@ Route6TrainerHeader5: ; 59113 (16:5113)
 	dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
 	dw Route6EndBattleText6 ; 0x51a7 TextEndBattle
 
-db $ff
+	db $ff
 
 Route6Text1: ; 59120 (16:5120)
 	db $8
@@ -88463,17 +90365,28 @@ Route6Text7: ; 591b1 (16:51b1)
 Route8Script: ; 591b6 (16:51b6)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route8TrainerHeaders
-	ld de, Route8_Unknown591c9
+	ld de, Route8ScriptPointers
 	ld a, [W_ROUTE8CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE8CURSCRIPT], a
 	ret
 
-Route8_Unknown591c9: ; 591c9 (16:51c9)
-INCBIN "baserom.gbc",$591c9,$591cf - $591c9
+Route8ScriptPointers: ; 591c9 (16:51c9)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route8Texts: ; 591cf (16:51cf)
-	dw Route8Text1, Route8Text2, Route8Text3, Route8Text4, Route8Text5, Route8Text6, Route8Text7, Route8Text8, Route8Text9, Route8Text10
+Route8TextPointers: ; 591cf (16:51cf)
+	dw Route8Text1
+	dw Route8Text2
+	dw Route8Text3
+	dw Route8Text4
+	dw Route8Text5
+	dw Route8Text6
+	dw Route8Text7
+	dw Route8Text8
+	dw Route8Text9
+	dw Route8Text10
 
 Route8TrainerHeaders: ; 591e3 (16:51e3)
 Route8TrainerHeader0: ; 591e3 (16:51e3)
@@ -88557,7 +90470,7 @@ Route8TrainerHeader8: ; 59243 (16:5243)
 	dw Route8EndBattleText9 ; 0x5327 TextEndBattle
 	dw Route8EndBattleText9 ; 0x5327 TextEndBattle
 
-db $ff
+	db $ff
 
 Route8Text1: ; 59250 (16:5250)
 	db $8
@@ -88728,17 +90641,28 @@ Route8Text10: ; 59331 (16:5331)
 Route10Script: ; 59336 (16:5336)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route10TrainerHeaders
-	ld de, Route10_Unknown59349
+	ld de, Route10ScriptPointers
 	ld a, [W_ROUTE10CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE10CURSCRIPT], a
 	ret
 
-Route10_Unknown59349: ; 59349 (16:5349)
-INCBIN "baserom.gbc",$59349,$5934f - $59349
+Route10ScriptPointers: ; 59349 (16:5349)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route10Texts: ; 5934f (16:534f)
-	dw Route10Text1, Route10Text2, Route10Text3, Route10Text4, Route10Text5, Route10Text6, Route10Text7, PokeCenterSignText, Route10Text9, Route10Text10
+Route10TextPointers: ; 5934f (16:534f)
+	dw Route10Text1
+	dw Route10Text2
+	dw Route10Text3
+	dw Route10Text4
+	dw Route10Text5
+	dw Route10Text6
+	dw Route10Text7
+	dw PokeCenterSignText
+	dw Route10Text9
+	dw Route10Text10
 
 Route10TrainerHeaders: ; 59363 (16:5363)
 Route10TrainerHeader0: ; 59363 (16:5363)
@@ -88795,7 +90719,7 @@ Route10TrainerHeader5: ; 5939f (16:539f)
 	dw Route10EndBattleText6 ; 0x5438 TextEndBattle
 	dw Route10EndBattleText6 ; 0x5438 TextEndBattle
 
-db $ff
+	db $ff
 
 Route10Text1: ; 593ac (16:53ac)
 	db $08 ; asm
@@ -88917,19 +90841,29 @@ Route10Text10: ; 59447 (16:5447)
 Route11Script: ; 5944c (16:544c)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route11TrainerHeaders
-	ld de, Route11_Unknown5945f
+	ld de, Route11ScriptPointers
 	ld a, [W_ROUTE11CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE11CURSCRIPT], a
 	ret
 
-Route11_Unknown5945f: ; 5945f (16:545f)
+Route11ScriptPointers: ; 5945f (16:545f)
 	dw CheckFightingMapTrainers
 	dw Func_324c
 	dw EndTrainerBattle
 
-Route11Texts: ; 59465 (16:5465)
-	dw UnnamedText_594f4, Route11Text2, Route11Text3, Route11Text4, Route11Text5, Route11Text6, Route11Text7, Route11Text8, Route11Text9, Route11Text10, Route11Text11
+Route11TextPointers: ; 59465 (16:5465)
+	dw Route11Text1
+	dw Route11Text2
+	dw Route11Text3
+	dw Route11Text4
+	dw Route11Text5
+	dw Route11Text6
+	dw Route11Text7
+	dw Route11Text8
+	dw Route11Text9
+	dw Route11Text10
+	dw Route11Text11
 
 Route11TrainerHeaders: ; 5947b (16:547b)
 Route11TrainerHeader0: ; 5947b (16:547b)
@@ -89022,9 +90956,9 @@ Route11TrainerHeader9: ; 594e7 (16:54e7)
 	dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
 	dw Route11EndBattleText10 ; 0x55e4 TextEndBattle
 
-db $ff
+	db $ff
 
-UnnamedText_594f4: ; 594f4 (16:54f4)
+Route11Text1: ; 594f4 (16:54f4)
 	db $8
 	ld hl, Route11TrainerHeader0
 	call TalkToTrainer
@@ -89211,21 +91145,26 @@ Route11Text11: ; 595ee (16:55ee)
 Route12Script: ; 595f3 (16:55f3)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route12TrainerHeaders
-	ld de, .unknown_59611 ; $5611
+	ld de, Route12ScriptPointers
 	ld a, [W_ROUTE12CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE12CURSCRIPT], a
 	ret
-.asm_59606
+
+Route12Script_59606: ; 59606 (16:5606)
 	xor a
 	ld [wJoypadForbiddenButtonsMask], a
 	ld [W_ROUTE12CURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-.unknown_59611: ; 59611 (16:5611)
-INCBIN "baserom.gbc",$59611,$59619 - $59611
+Route12ScriptPointers: ; 59611 (16:5611)
+	dw Route12Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw Route12Script3
 
+Route12Script0: ; 59619 (16:5619)
 	ld hl, $d7d8
 	bit 7, [hl]
 	jp nz, CheckFightingMapTrainers
@@ -89247,9 +91186,11 @@ INCBIN "baserom.gbc",$59611,$59619 - $59611
 	ld [W_ROUTE12CURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
+
+Route12Script3: ; 5964c (16:564c)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
-	jr z, .asm_59606
+	jr z, Route12Script_59606
 	call UpdateSprites
 	ld a, [$cf0b]
 	cp $2
@@ -89266,8 +91207,21 @@ INCBIN "baserom.gbc",$59611,$59619 - $59611
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Route12Texts: ; 59675 (16:5675)
-	dw Route12Text1, Route12Text2, Route12Text3, Route12Text4, Route12Text5, Route12Text6, Route12Text7, Route12Text8, Predef5CText, Predef5CText, Route12Text11, Route12Text12, Route12Text13, Route12Text14
+Route12TextPointers: ; 59675 (16:5675)
+	dw Route12Text1
+	dw Route12Text2
+	dw Route12Text3
+	dw Route12Text4
+	dw Route12Text5
+	dw Route12Text6
+	dw Route12Text7
+	dw Route12Text8
+	dw Predef5CText
+	dw Predef5CText
+	dw Route12Text11
+	dw Route12Text12
+	dw Route12Text13
+	dw Route12Text14
 
 Route12TrainerHeaders: ; 59691 (16:5691)
 Route12TrainerHeader0: ; 59691 (16:5691)
@@ -89333,7 +91287,7 @@ Route12TrainerHeader6: ; 596d9 (16:56d9)
 	dw Route12EndBattleText7 ; 0x579a TextEndBattle
 	dw Route12EndBattleText7 ; 0x579a TextEndBattle
 
-db $ff
+	db $ff
 
 Route12Text1: ; 596e6 (16:56e6)
 	TX_FAR _Route12Text1
@@ -89486,17 +91440,30 @@ Route12Text12: ; 597a9 (16:57a9)
 Route15Script: ; 597ae (16:57ae)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route15TrainerHeaders
-	ld de, Route15_Unknown597c1
+	ld de, Route15ScriptPointers
 	ld a, [W_ROUTE15CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE15CURSCRIPT], a
 	ret
 
-Route15_Unknown597c1: ; 597c1 (16:57c1)
-INCBIN "baserom.gbc",$597c1,$597c7 - $597c1
+Route15ScriptPointers: ; 597c1 (16:57c1)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route15Texts: ; 597c7 (16:57c7)
-	dw Route15Text1, Route15Text2, Route15Text3, Route15Text4, Route15Text5, Route15Text6, Route15Text7, Route15Text8, Route15Text9, Route15Text10, Predef5CText, Route15Text12
+Route15TextPointers: ; 597c7 (16:57c7)
+	dw Route15Text1
+	dw Route15Text2
+	dw Route15Text3
+	dw Route15Text4
+	dw Route15Text5
+	dw Route15Text6
+	dw Route15Text7
+	dw Route15Text8
+	dw Route15Text9
+	dw Route15Text10
+	dw Predef5CText
+	dw Route15Text12
 
 Route15TrainerHeaders: ; 597df (16:57df)
 Route15TrainerHeader0: ; 597df (16:57df)
@@ -89589,7 +91556,7 @@ Route15TrainerHeader9: ; 5984b (16:584b)
 	dw Route15EndBattleText10 ; 0x5924 TextEndBattle
 	dw Route15EndBattleText10 ; 0x5924 TextEndBattle
 
-db $ff
+	db $ff
 
 Route15Text1: ; 59858 (16:5858)
 	db $8 ; asm
@@ -89770,7 +91737,7 @@ Route15Text12: ; 5992e (16:592e)
 Route16Script: ; 59933 (16:5933)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route16TrainerHeaders
-	ld de, Unknown_59951 ; $5951
+	ld de, Route16ScriptPointers
 	ld a, [W_ROUTE16CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE16CURSCRIPT], a
@@ -89783,8 +91750,13 @@ Func_59946: ; 59946 (16:5946)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_59951: ; 59951 (16:5951)
-INCBIN "baserom.gbc",$59951,$59959 - $59951
+Route16ScriptPointers: ; 59951 (16:5951)
+	dw Route16Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw Route16Script3
+
+Route16Script0: ; 59959 (16:5959)
 	ld hl, $d7e0
 	bit 1, [hl]
 	jp nz, CheckFightingMapTrainers
@@ -89807,6 +91779,8 @@ INCBIN "baserom.gbc",$59951,$59959 - $59951
 	ld [W_ROUTE16CURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
+
+Route16Script3: ; 5998f (16:598f)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_59946
@@ -89826,8 +91800,18 @@ INCBIN "baserom.gbc",$59951,$59959 - $59951
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Route16Texts: ; 599b9 (16:59b9)
-	dw Route16Text1, Route16Text2, Route16Text3, Route16Text4, Route16Text5, Route16Text6, Route16Text7, Route16Text8, Route16Text9, Route16Text10, Route16Text11
+Route16TextPointers: ; 599b9 (16:59b9)
+	dw Route16Text1
+	dw Route16Text2
+	dw Route16Text3
+	dw Route16Text4
+	dw Route16Text5
+	dw Route16Text6
+	dw Route16Text7
+	dw Route16Text8
+	dw Route16Text9
+	dw Route16Text10
+	dw Route16Text11
 
 Route16TrainerHeaders: ; 599cf (16:59cf)
 Route16TrainerHeader0: ; 599cf (16:59cf)
@@ -89884,7 +91868,7 @@ Route16TrainerHeader5: ; 59a0b (16:5a0b)
 	dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
 	dw Route16EndBattleText6 ; 0x5aa4 TextEndBattle
 
-db $ff
+	db $ff
 
 Route16Text1: ; 59a18 (16:5a18)
 	db $08 ; asm
@@ -90017,17 +92001,23 @@ Route16Text9: ; 59ac2 (16:5ac2)
 Route18Script: ; 59ac7 (16:5ac7)
 	call EnableAutoTextBoxDrawing
 	ld hl, Route18TrainerHeaders
-	ld de, Route18_Unknown59ada
+	ld de, Route18ScriptPointers
 	ld a, [W_ROUTE18CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_ROUTE18CURSCRIPT], a
 	ret
 
-Route18_Unknown59ada: ; 59ada (16:5ada)
-INCBIN "baserom.gbc",$59ada,$59ae0 - $59ada
+Route18ScriptPointers: ; 59ada (16:5ada)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-Route18Texts: ; 59ae0 (16:5ae0)
-	dw Route18Text1, Route18Text2, Route18Text3, Route18Text4, Route18Text5
+Route18TextPointers: ; 59ae0 (16:5ae0)
+	dw Route18Text1
+	dw Route18Text2
+	dw Route18Text3
+	dw Route18Text4
+	dw Route18Text5
 
 Route18TrainerHeaders: ; 59aea (16:5aea)
 Route18TrainerHeader0: ; 59aea (16:5aea)
@@ -90057,7 +92047,7 @@ Route18TrainerHeader2: ; 59b02 (16:5b02)
 	dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
 	dw Route18EndBattleText3 ; 0x5b50 TextEndBattle
 
-db $ff
+	db $ff
 
 Route18Text1: ; 59b0f (16:5b0f)
 	db $08 ; asm
@@ -90124,7 +92114,7 @@ Route18Text5: ; 59b5f (16:5b5f)
 FanClub_h: ; 0x59b64 to 0x59b70 (12 bytes) (id=90)
 	db $10 ; tileset
 	db POKEMON_FAN_CLUB_HEIGHT, POKEMON_FAN_CLUB_WIDTH ; dimensions (y, x)
-	dw FanClubBlocks, FanClubTexts, FanClubScript ; blocks, texts, scripts
+	dw FanClubBlocks, FanClubTextPointers, FanClubScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FanClubObject ; objects
@@ -90142,8 +92132,15 @@ Func_59b73: ; 59b73 (16:5b73)
 	ld b, $2d
 	jp IsItemInBag
 
-FanClubTexts: ; 59b84 (16:5b84)
-	dw FanClubText1, FanClubText2, FanClubText3, FanClubText4, FanClubText5, FanClubText6, FanClubText7, FanClubText8
+FanClubTextPointers: ; 59b84 (16:5b84)
+	dw FanClubText1
+	dw FanClubText2
+	dw FanClubText3
+	dw FanClubText4
+	dw FanClubText5
+	dw FanClubText6
+	dw FanClubText7
+	dw FanClubText8
 
 FanClubText1: ; 59b94 (16:5b94)
 	db $08 ; asm
@@ -90324,23 +92321,50 @@ FanClubBlocks: ; 59cd5 (16:5cd5)
 SilphCo2_h: ; 0x59ce5 to 0x59cf1 (12 bytes) (id=207)
 	db $16 ; tileset
 	db SILPH_CO_2F_HEIGHT, SILPH_CO_2F_WIDTH ; dimensions (y, x)
-	dw SilphCo2Blocks, SilphCo2Texts, SilphCo2Script ; blocks, texts, scripts
+	dw SilphCo2Blocks, SilphCo2TextPointers, SilphCo2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo2Object ; objects
 
 SilphCo2Script: ; 59cf1 (16:5cf1)
-	call SilphCo2_Unknown59d07
+	call SilphCo2Script_59d07
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo2TrainerHeaders
-	ld de, Unknown_59d80 ; $5d80
+	ld de, SilphCo2ScriptPointers
 	ld a, [W_SILPHCO2CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO2CURSCRIPT], a
 	ret
 
-SilphCo2_Unknown59d07: ; 59d07 (16:5d07)
-INCBIN "baserom.gbc",$59d07,$59d43 - $59d07
+SilphCo2Script_59d07: ; 59d07 (16:5d07)
+	ld hl, $d126
+	bit 5, [hl]
+	res 5, [hl]
+	ret z
+	ld hl, Unknown_59d3e
+	call Func_59d43
+	call Func_59d6f
+	ld a, [$d826]
+	bit 5, a
+	jr nz, .asm_59d2e
+	push af
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $0202
+	ld a, $17
+	call Predef
+	pop af
+.asm_59d2e
+	bit 6, a
+	ret nz
+	ld a, $54
+	ld [$d09f], a
+	ld bc, $0502
+	ld a, $17
+	jp Predef
+
+Unknown_59d3e: ; 59d3e (16:5d3e)
+INCBIN "baserom.gbc",$59d3e,$59d43 - $59d3e
 
 Func_59d43: ; 59d43 (16:5d43)
 	push hl
@@ -90378,13 +92402,30 @@ Func_59d43: ; 59d43 (16:5d43)
 	ld [$FF00+$e0], a
 	ret
 
-INCBIN "baserom.gbc",$59d6f,$59d80 - $59d6f
+Func_59d6f: ; 59d6f (16:5d6f)
+	ld hl, $d826
+	ld a, [$ffe0]
+	and a
+	ret z
+	cp $1
+	jr nz, .asm_59d7d
+	set 5, [hl]
+	ret
+.asm_59d7d
+	set 6, [hl]
+	ret
 
-Unknown_59d80: ; 59d80 (16:5d80)
-INCBIN "baserom.gbc",$59d80,$59d86 - $59d80
+SilphCo2ScriptPointers: ; 59d80 (16:5d80)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SilphCo2Texts: ; 59d86 (16:5d86)
-	dw SilphCo2Text1, SilphCo2Text2, SilphCo2Text3, SilphCo2Text4, SilphCo2Text5
+SilphCo2TextPointers: ; 59d86 (16:5d86)
+	dw SilphCo2Text1
+	dw SilphCo2Text2
+	dw SilphCo2Text3
+	dw SilphCo2Text4
+	dw SilphCo2Text5
 
 SilphCo2TrainerHeaders: ; 59d90 (16:5d90)
 SilphCo2TrainerHeader0: ; 59d90 (16:5d90)
@@ -90423,7 +92464,7 @@ SilphCo2TrainerHeader3: ; 59db4 (16:5db4)
 	dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
 	dw SilphCo2EndBattleText4 ; 0x5e5c TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo2Text1: ; 59dc1 (16:5dc1)
 	db $08 ; asm
@@ -90570,22 +92611,22 @@ SilphCo2Blocks: ; 59ec8 (16:5ec8)
 SilphCo3_h: ; 0x59f4f to 0x59f5b (12 bytes) (id=208)
 	db $16 ; tileset
 	db SILPH_CO_3F_HEIGHT, SILPH_CO_3F_WIDTH ; dimensions (y, x)
-	dw SilphCo3Blocks, SilphCo3Texts, SilphCo3Script ; blocks, texts, scripts
+	dw SilphCo3Blocks, SilphCo3TextPointers, SilphCo3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo3Object ; objects
 
 SilphCo3Script: ; 59f5b (16:5f5b)
-	call SilphCo3Script_Unknown59f71
+	call SilphCo3Script_59f71
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo3TrainerHeaders
-	ld de, Unknown_59fbe ; $5fbe
+	ld de, SilphCo3ScriptPointers
 	ld a, [W_SILPHCO3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO3CURSCRIPT], a
 	ret
 
-SilphCo3Script_Unknown59f71: ; 59f71 (16:5f71)
+SilphCo3Script_59f71: ; 59f71 (16:5f71)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -90628,11 +92669,16 @@ Func_59fad: ; 59fad (16:5fad)
 	set 1, [hl]
 	ret
 
-Unknown_59fbe: ; 59fbe (16:5fbe)
-INCBIN "baserom.gbc",$59fbe,$59fc4 - $59fbe
+SilphCo3ScriptPointers: ; 59fbe (16:5fbe)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SilphCo3Texts: ; 59fc4 (16:5fc4)
-	dw SilphCo3Text1, SilphCo3Text2, SilphCo3Text3, Predef5CText
+SilphCo3TextPointers: ; 59fc4 (16:5fc4)
+	dw SilphCo3Text1
+	dw SilphCo3Text2
+	dw SilphCo3Text3
+	dw Predef5CText
 
 SilphCo3TrainerHeaders: ; 59fcc (16:5fcc)
 SilphCo3TrainerHeader0: ; 59fcc (16:5fcc)
@@ -90653,7 +92699,7 @@ SilphCo3TrainerHeader1: ; 59fd8 (16:5fd8)
 	dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
 	dw SilphCo3EndBattleText2 ; 0x602b TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo3Text1: ; 59fe5 (16:5fe5)
 	db $08 ; asm
@@ -90751,22 +92797,22 @@ SilphCo3Blocks: ; 5a0a6 (16:60a6)
 SilphCo10_h: ; 0x5a12d to 0x5a139 (12 bytes) (id=234)
 	db $16 ; tileset
 	db SILPH_CO_10F_HEIGHT, SILPH_CO_10F_WIDTH ; dimensions (y, x)
-	dw SilphCo10Blocks, SilphCo10Texts, SilphCo10Script ; blocks, texts, scripts
+	dw SilphCo10Blocks, SilphCo10TextPointers, SilphCo10Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo10Object ; objects
 
 SilphCo10Script: ; 5a139 (16:6139)
-	call SilphCo10Script_Unknown5a14f
+	call SilphCo10Script_5a14f
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo10TrainerHeaders
-	ld de, Unknown_5a180 ; $6180
+	ld de, SilphCo10ScriptPointers
 	ld a, [W_SILPHCO10CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO10CURSCRIPT], a
 	ret
 
-SilphCo10Script_Unknown5a14f: ; 5a14f (16:614f)
+SilphCo10Script_5a14f: ; 5a14f (16:614f)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -90794,11 +92840,18 @@ Func_5a176: ; 5a176 (16:6176)
 	set 0, [hl]
 	ret
 
-Unknown_5a180: ; 5a180 (16:6180)
-INCBIN "baserom.gbc",$5a180,$5a186 - $5a180
+SilphCo10ScriptPointers: ; 5a180 (16:6180)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SilphCo10Texts: ; 5a186 (16:6186)
-	dw SilphCo10Text1, SilphCo10Text2, SilphCo10Text3, Predef5CText, Predef5CText, Predef5CText
+SilphCo10TextPointers: ; 5a186 (16:6186)
+	dw SilphCo10Text1
+	dw SilphCo10Text2
+	dw SilphCo10Text3
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 SilphCo10TrainerHeaders: ; 5a192 (16:6192)
 SilphCo10TrainerHeader0: ; 5a192 (16:6192)
@@ -90819,7 +92872,7 @@ SilphCo10TrainerHeader1: ; 5a19e (16:619e)
 	dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
 	dw SilphCo10EndBattleText2 ; 0x61f1 TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo10Text1: ; 5a1ab (16:61ab)
 	db $08 ; asm
@@ -90838,9 +92891,9 @@ SilphCo10Text3: ; 5a1bf (16:61bf)
 	ld a, [$d838]
 	bit 7, a
 	ld hl, UnnamedText_5a1d8
-	jr nz, asm_cf85f ; 0x5a1c8
+	jr nz, .asm_cf85f
 	ld hl, UnnamedText_5a1d3
-asm_cf85f ; 0x5a1cd
+.asm_cf85f
 	call PrintText
 	jp TextScriptEnd
 
@@ -90911,22 +92964,22 @@ SilphCo10Blocks: ; 5a25a (16:625a)
 Lance_h: ; 0x5a2a2 to 0x5a2ae (12 bytes) (id=113)
 	db $05 ; tileset
 	db LANCES_ROOM_HEIGHT, LANCES_ROOM_WIDTH ; dimensions (y, x)
-	dw LanceBlocks, LanceTexts, LanceScript ; blocks, texts, scripts
+	dw LanceBlocks, LanceTextPointers, LanceScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw LanceObject ; objects
 
 LanceScript: ; 5a2ae (16:62ae)
-	call LanceScript_Unknown5a2c4
+	call LanceScript_5a2c4
 	call EnableAutoTextBoxDrawing
 	ld hl, LanceTrainerHeaders
-	ld de, Unknown_5a2fa ; $62fa
+	ld de, LanceScriptPointers
 	ld a, [W_LANCECURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_LANCECURSCRIPT], a
 	ret
 
-LanceScript_Unknown5a2c4: ; 5a2c4 (16:62c4)
+LanceScript_5a2c4: ; 5a2c4 (16:62c4)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -90960,12 +93013,21 @@ Func_5a2f5: ; 5a2f5 (16:62f5)
 	ld [W_LANCECURSCRIPT], a
 	ret
 
-Unknown_5a2fa: ; 5a2fa (16:62fa)
-INCBIN "baserom.gbc",$5a2fa,$5a305 - $5a2fa
+LanceScriptPointers: ; 5a2fa (16:62fa)
+	dw LanceScript0
+	dw Func_324c
+	dw LanceScript2
+	dw LanceScript3
+	dw LanceScript4
+
+LanceScript4: ; 5a304 (16:6304)
+	ret
+
+LanceScript0: ; 5a305 (16:6305)
 	ld a, [$d866]
 	bit 6, a
 	ret nz
-	ld hl, .unknown_5a33e ; $633e
+	ld hl, CoordsData_5a33e ; $633e
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -90978,7 +93040,7 @@ INCBIN "baserom.gbc",$5a2fa,$5a305 - $5a2fa
 	jp DisplayTextID
 .asm_5a325
 	cp $5
-	jr z, .asm_5a35b
+	jr z, Func_5a35b
 	ld hl, $d866
 	bit 7, [hl]
 	set 7, [hl]
@@ -90987,11 +93049,12 @@ INCBIN "baserom.gbc",$5a2fa,$5a305 - $5a2fa
 	set 5, [hl]
 	ld a, $ad
 	call PlaySound
-	jp LanceScript_Unknown5a2c4
+	jp LanceScript_5a2c4
 
-.unknown_5a33e: ; 5a33e (16:633e)
+CoordsData_5a33e: ; 5a33e (16:633e)
 INCBIN "baserom.gbc",$5a33e,$5a349 - $5a33e
 
+LanceScript2: ; 5a349 (16:6349)
 	call EndTrainerBattle
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
@@ -90999,7 +93062,8 @@ INCBIN "baserom.gbc",$5a33e,$5a349 - $5a33e
 	ld a, $1
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	jp DisplayTextID
-.asm_5a35b
+
+Func_5a35b: ; 5a35b (16:635b)
 	ld a, $ff
 	ld [wJoypadForbiddenButtonsMask], a
 	ld hl, $ccd3
@@ -91014,13 +93078,13 @@ INCBIN "baserom.gbc",$5a33e,$5a349 - $5a33e
 	ret
 
 RLEList_5a379: ; 5a379 (16:6379)
-db $40, $0C
-db $20, $0C
-db $80, $07
-db $20, $06
-db $FF
+	db $40, $0C
+	db $20, $0C
+	db $80, $07
+	db $20, $06
+	db $FF
 
-Func_5a382: ; 5a382 (16:6382)
+LanceScript3: ; 5a382 (16:6382)
 	ld a, [$cd38]
 	and a
 	ret nz
@@ -91031,7 +93095,7 @@ Func_5a382: ; 5a382 (16:6382)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-LanceTexts: ; 5a395 (16:6395)
+LanceTextPointers: ; 5a395 (16:6395)
 	dw LanceText1
 
 LanceTrainerHeaders: ; 5a397 (16:6397)
@@ -91044,7 +93108,7 @@ LanceTrainerHeader0: ; 5a397 (16:6397)
 	dw LanceEndBattleText ; 0x63b3 TextEndBattle
 	dw LanceEndBattleText ; 0x63b3 TextEndBattle
 
-db $ff
+	db $ff
 
 LanceText1: ; 5a3a4 (16:63a4)
 	db $08 ; asm
@@ -91091,21 +93155,24 @@ LanceBlocks: ; 5a3e9 (16:63e9)
 HallofFameRoom_h: ; 0x5a492 to 0x5a49e (12 bytes) (id=118)
 	db $07 ; tileset
 	db HALL_OF_FAME_HEIGHT, HALL_OF_FAME_WIDTH ; dimensions (y, x)
-	dw HallofFameRoomBlocks, HallofFameRoomTexts, HallofFameRoomScript ; blocks, texts, scripts
+	dw HallofFameRoomBlocks, HallofFameRoomTextPointers, HallofFameRoomScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw HallofFameRoomObject ; objects
 
 HallofFameRoomScript: ; 5a49e (16:649e)
 	call EnableAutoTextBoxDrawing
-	ld hl, HallofFameRoomScripts
+	ld hl, HallofFameRoomScriptPointers
 	ld a, [W_HALLOFFAMEROOMCURSCRIPT]
 	jp CallFunctionInTable
 
 INCBIN "baserom.gbc",$5a4aa,$5a4b2 - $5a4aa
 
-HallofFameRoomScripts: ; 5a4b2 (16:64b2)
-	dw HallofFameRoomScript0, HallofFameRoomScript1, HallofFameRoomScript2, HallofFameRoomScript3
+HallofFameRoomScriptPointers: ; 5a4b2 (16:64b2)
+	dw HallofFameRoomScript0
+	dw HallofFameRoomScript1
+	dw HallofFameRoomScript2
+	dw HallofFameRoomScript3
 
 HallofFameRoomScript3: ; 5a4ba (16:64ba)
 	db $c9
@@ -91200,7 +93267,7 @@ HallofFameRoomScript1: ; 5a52b (16:652b)
 	ld [W_HALLOFFAMEROOMCURSCRIPT], a
 	ret
 
-HallofFameRoomTexts: ; 5a56a (16:656a)
+HallofFameRoomTextPointers: ; 5a56a (16:656a)
 	dw HallofFameRoomText1
 
 HallofFameRoomText1: ; 5a56c (16:656c)
@@ -91282,7 +93349,7 @@ ViridianForestexitBlocks: ; 5c090 (17:4090)
 RedsHouse2F_h: ; 5c0a4 (17:40a4)
 	db $04 ; tileset
 	db $04,$04 ; dimensions
-	dw RedsHouse2FBlocks, RedsHouse2FTexts, RedsHouse2FScript
+	dw RedsHouse2FBlocks, RedsHouse2FTextPointers, RedsHouse2FScript
 	db 0 ; no connections
 	dw RedsHouse2FObject
 
@@ -91293,9 +93360,10 @@ RedsHouse2FScript: ; 5c0b0 (17:40b0)
 	jp CallFunctionInTable
 
 RedsHouse2FScriptPointers: ; 5c0bc (17:40bc)
-	dw RedsHouse2FScript1,RedsHouse2FScript2
+	dw RedsHouse2FScript0
+	dw RedsHouse2FScript1
 
-RedsHouse2FScript1: ; 5c0c0 (17:40c0)
+RedsHouse2FScript0: ; 5c0c0 (17:40c0)
 	xor a
 	ld [H_CURRENTPRESSEDBUTTONS],a
 	ld a,8
@@ -91304,10 +93372,10 @@ RedsHouse2FScript1: ; 5c0c0 (17:40c0)
 	ld [W_REDSHOUSE2CURSCRIPT],a
 	ret
 
-RedsHouse2FScript2: ; 5c0ce (17:40ce)
+RedsHouse2FScript1: ; 5c0ce (17:40ce)
 	ret
 
-RedsHouse2FTexts: ; 5c0cf (17:40cf)
+RedsHouse2FTextPointers: ; 5c0cf (17:40cf)
 	db "@"
 
 RedsHouse2FObject: ; 0x5c0d0 ?
@@ -91335,7 +93403,7 @@ Func_5c0dc: ; 5c0dc (17:40dc)
 MuseumF1_h: ; 0x5c0eb to 0x5c0f7 (12 bytes) (id=52)
 	db $0a ; tileset
 	db MUSEUM_1F_HEIGHT, MUSEUM_1F_WIDTH ; dimensions (y, x)
-	dw MuseumF1Blocks, MuseumF1Texts, MuseumF1Script ; blocks, texts, scripts
+	dw MuseumF1Blocks, MuseumF1TextPointers, MuseumF1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw MuseumF1Object ; objects
@@ -91345,12 +93413,13 @@ MuseumF1Script: ; 5c0f7 (17:40f7)
 	ld [$cf0c], a
 	xor a
 	ld [$cc3c], a
-	ld hl, MuseumF1Scripts
+	ld hl, MuseumF1ScriptPointers
 	ld a, [W_MUSEUMF1CURSCRIPT]
 	jp CallFunctionInTable
 
-MuseumF1Scripts: ; 5c109 (17:4109)
-	dw MuseumF1Script0, MuseumF1Script1
+MuseumF1ScriptPointers: ; 5c109 (17:4109)
+	dw MuseumF1Script0
+	dw MuseumF1Script1
 
 MuseumF1Script0: ; 5c10d (17:410d)
 	ld a, [$d361]
@@ -91372,8 +93441,12 @@ MuseumF1Script0: ; 5c10d (17:410d)
 MuseumF1Script1: ; 5c12a (17:412a)
 	ret
 
-MuseumF1Texts: ; 5c12b (17:412b)
-	dw MuseumF1Text1, MuseumF1Text2, MuseumF1Text3, MuseumF1Text4, MuseumF1Text5
+MuseumF1TextPointers: ; 5c12b (17:412b)
+	dw MuseumF1Text1
+	dw MuseumF1Text2
+	dw MuseumF1Text3
+	dw MuseumF1Text4
+	dw MuseumF1Text5
 
 MuseumF1Text1: ; 5c135 (17:4135)
 	db $8
@@ -91618,7 +93691,7 @@ MuseumF1Object: ; 0x5c2c1 (size=74)
 MuseumF2_h: ; 0x5c30b to 0x5c317 (12 bytes) (id=53)
 	db $0a ; tileset
 	db MUSEUM_2F_HEIGHT, MUSEUM_2F_WIDTH ; dimensions (y, x)
-	dw MuseumF2Blocks, MuseumF2Texts, MuseumF2Script ; blocks, texts, scripts
+	dw MuseumF2Blocks, MuseumF2TextPointers, MuseumF2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw MuseumF2Object ; objects
@@ -91626,8 +93699,14 @@ MuseumF2_h: ; 0x5c30b to 0x5c317 (12 bytes) (id=53)
 MuseumF2Script: ; 5c317 (17:4317)
 	jp EnableAutoTextBoxDrawing
 
-MuseumF2Texts: ; 5c31a (17:431a)
-	dw MuseumF2Text1, MuseumF2Text2, MuseumF2Text3, MuseumF2Text4, MuseumF2Text5, MuseumF2Text6, MuseumF2Text7
+MuseumF2TextPointers: ; 5c31a (17:431a)
+	dw MuseumF2Text1
+	dw MuseumF2Text2
+	dw MuseumF2Text3
+	dw MuseumF2Text4
+	dw MuseumF2Text5
+	dw MuseumF2Text6
+	dw MuseumF2Text7
 
 MuseumF2Text1: ; 5c328 (17:4328)
 	TX_FAR _MuseumF2Text1
@@ -91680,7 +93759,7 @@ MuseumF2Object: ; 0x5c34b (size=48)
 PewterGym_h: ; 0x5c37b to 0x5c387 (12 bytes) (id=54)
 	db $07 ; tileset
 	db PEWTER_GYM_HEIGHT, PEWTER_GYM_WIDTH ; dimensions (y, x)
-	dw PewterGymBlocks, PewterGymTexts, PewterGymScript ; blocks, texts, scripts
+	dw PewterGymBlocks, PewterGymTextPointers, PewterGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PewterGymObject ; objects
@@ -91692,7 +93771,7 @@ PewterGymScript: ; 5c387 (17:4387)
 	call nz, PewterGymScript_Unknown5c3a4
 	call EnableAutoTextBoxDrawing
 	ld hl, PewterGymTrainerHeaders
-	ld de, Unknown_5c3ca ; $43ca
+	ld de, PewterGymScriptPointers
 	ld a, [W_PEWTERGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_PEWTERGYMCURSCRIPT], a
@@ -91716,8 +93795,13 @@ Func_5c3bf: ; 5c3bf (17:43bf)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_5c3ca: ; 5c3ca (17:43ca)
-INCBIN "baserom.gbc",$5c3ca,$5c3d2 - $5c3ca
+PewterGymScriptPointers: ; 5c3ca (17:43ca)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw PewterGymScript3
+
+PewterGymScript3: ; 5c3d2 (17:43d2)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_5c3bf
@@ -91763,8 +93847,13 @@ Func_5c3df: ; 5c3df (17:43df)
 	set 2, [hl]
 	jp Func_5c3bf
 
-PewterGymTexts: ; 5c435 (17:4435)
-	dw PewterGymText1, PewterGymText2, PewterGymText3, PewterGymText4, PewterGymText5, PewterGymText6
+PewterGymTextPointers: ; 5c435 (17:4435)
+	dw PewterGymText1
+	dw PewterGymText2
+	dw PewterGymText3
+	dw PewterGymText4
+	dw PewterGymText5
+	dw PewterGymText6
 
 PewterGymTrainerHeaders: ; 5c441 (17:4441)
 PewterGymTrainerHeader0: ; 5c441 (17:4441)
@@ -91776,7 +93865,7 @@ PewterGymTrainerHeader0: ; 5c441 (17:4441)
 	dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
 	dw PewterGymEndBattleText1 ; 0x44d5 TextEndBattle
 
-db $ff
+	db $ff
 
 PewterGymText1: ; 5c44e (17:444e)
 	db $08 ; asm
@@ -91932,7 +94021,7 @@ PewterGymBlocks: ; 5c558 (17:4558)
 PewterPokecenter_h: ; 0x5c57b to 0x5c587 (12 bytes) (id=58)
 	db $06 ; tileset
 	db PEWTER_POKECENTER_HEIGHT, PEWTER_POKECENTER_WIDTH ; dimensions (y, x)
-	dw PewterPokecenterBlocks, PewterPokecenterTexts, PewterPokecenterScript ; blocks, texts, scripts
+	dw PewterPokecenterBlocks, PewterPokecenterTextPointers, PewterPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PewterPokecenterObject ; objects
@@ -91941,8 +94030,11 @@ PewterPokecenterScript: ; 5c587 (17:4587)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-PewterPokecenterTexts: ; 5c58d (17:458d)
-	dw PewterPokecenterText1, PewterPokecenterText2, PewterPokecenterText3, PewterPokecenterText4
+PewterPokecenterTextPointers: ; 5c58d (17:458d)
+	dw PewterPokecenterText1
+	dw PewterPokecenterText2
+	dw PewterPokecenterText3
+	dw PewterPokecenterText4
 
 PewterPokecenterText1: ; 5c595 (17:4595)
 	db $ff
@@ -92005,7 +94097,7 @@ PewterPokecenterText5: ; 5c603 (17:4603)
 	db "@"
 
 Unknown_5c608: ; 5c608 (17:4608)
-db $30, $38, $34, $3c
+	db $30, $38, $34, $3c
 
 PewterPokecenterText4: ; 5c60c (17:460c)
 	db $f6
@@ -92032,7 +94124,7 @@ PewterPokecenterObject: ; 0x5c60d (size=44)
 CeruleanPokecenter_h: ; 0x5c639 to 0x5c645 (12 bytes) (id=64)
 	db $06 ; tileset
 	db CERULEAN_POKECENTER_HEIGHT, CERULEAN_POKECENTER_WIDTH ; dimensions (y, x)
-	dw CeruleanPokecenterBlocks, CeruleanPokecenterTexts, CeruleanPokecenterScript ; blocks, texts, scripts
+	dw CeruleanPokecenterBlocks, CeruleanPokecenterTextPointers, CeruleanPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeruleanPokecenterObject ; objects
@@ -92041,8 +94133,11 @@ CeruleanPokecenterScript: ; 5c645 (17:4645)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-CeruleanPokecenterTexts: ; 5c64b (17:464b)
-	dw CeruleanPokecenterText1, CeruleanPokecenterText2, CeruleanPokecenterText3, CeruleanPokecenterText4
+CeruleanPokecenterTextPointers: ; 5c64b (17:464b)
+	dw CeruleanPokecenterText1
+	dw CeruleanPokecenterText2
+	dw CeruleanPokecenterText3
+	dw CeruleanPokecenterText4
 
 CeruleanPokecenterText4: ; 5c653 (17:4653)
 	db $f6
@@ -92083,7 +94178,7 @@ CeruleanPokecenterBlocks: ; 5c68b (17:468b)
 CeruleanGym_h: ; 0x5c6a7 to 0x5c6b3 (12 bytes) (id=65)
 	db $07 ; tileset
 	db CERULEAN_GYM_HEIGHT, CERULEAN_GYM_WIDTH ; dimensions (y, x)
-	dw CeruleanGymBlocks, CeruleanGymTexts, CeruleanGymScript ; blocks, texts, scripts
+	dw CeruleanGymBlocks, CeruleanGymTextPointers, CeruleanGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeruleanGymObject ; objects
@@ -92092,16 +94187,16 @@ CeruleanGymScript: ; 5c6b3 (17:46b3)
 	ld hl, $d126
 	bit 6, [hl]
 	res 6, [hl]
-	call nz, CeruleanGymScript_Unknown5c6d0
+	call nz, CeruleanGymScript_5c6d0
 	call EnableAutoTextBoxDrawing
 	ld hl, CeruleanGymTrainerHeaders
-	ld de, Unknown_5c6f8 ; $46f8
+	ld de, CeruleanGymScriptPointers
 	ld a, [W_CERULEANGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_CERULEANGYMCURSCRIPT], a
 	ret
 
-CeruleanGymScript_Unknown5c6d0: ; 5c6d0 (17:46d0)
+CeruleanGymScript_5c6d0: ; 5c6d0 (17:46d0)
 	ld hl, Gym2CityName ; $46d9
 	ld de, Gym2LeaderName ; $46e7
 	jp LoadGymLeaderAndCityName
@@ -92119,8 +94214,13 @@ Func_5c6ed: ; 5c6ed (17:46ed)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_5c6f8: ; 5c6f8 (17:46f8)
-INCBIN "baserom.gbc",$5c6f8,$5c700 - $5c6f8
+CeruleanGymScriptPointers: ; 5c6f8 (17:46f8)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw CeruleanGymScript3
+
+CeruleanGymScript3: ; 5c700 (17:4700)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_5c6ed
@@ -92156,8 +94256,14 @@ Func_5c70d: ; 5c70d (17:470d)
 	set 3, [hl]
 	jp Func_5c6ed
 
-CeruleanGymTexts: ; 5c74a (17:474a)
-	dw CeruleanGymText1, CeruleanGymText2, CeruleanGymText3, CeruleanGymText4, CeruleanGymText5, CeruleanGymText6, CeruleanGymText7
+CeruleanGymTextPointers: ; 5c74a (17:474a)
+	dw CeruleanGymText1
+	dw CeruleanGymText2
+	dw CeruleanGymText3
+	dw CeruleanGymText4
+	dw CeruleanGymText5
+	dw CeruleanGymText6
+	dw CeruleanGymText7
 
 CeruleanGymTrainerHeaders: ; 5c758 (17:4758)
 CeruleanGymTrainerHeader0: ; 5c758 (17:4758)
@@ -92178,7 +94284,7 @@ CeruleanGymTrainerHeader1: ; 5c764 (17:4764)
 	dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
 	dw CeruleanGymEndBattleText2 ; 0x4807 TextEndBattle
 
-db $ff
+	db $ff
 
 CeruleanGymText1: ; 5c771 (17:4771)
 	db $08 ; asm
@@ -92324,7 +94430,7 @@ CeruleanGymBlocks: ; 5c866 (17:4866)
 CeruleanMart_h: ; 0x5c889 to 0x5c895 (12 bytes) (id=67)
 	db $02 ; tileset
 	db CERULEAN_MART_HEIGHT, CERULEAN_MART_WIDTH ; dimensions (y, x)
-	dw CeruleanMartBlocks, CeruleanMartTexts, CeruleanMartScript ; blocks, texts, scripts
+	dw CeruleanMartBlocks, CeruleanMartTextPointers, CeruleanMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeruleanMartObject ; objects
@@ -92332,8 +94438,10 @@ CeruleanMart_h: ; 0x5c889 to 0x5c895 (12 bytes) (id=67)
 CeruleanMartScript: ; 5c895 (17:4895)
 	jp EnableAutoTextBoxDrawing
 
-CeruleanMartTexts: ; 5c898 (17:4898)
-	dw CeruleanMartText1, CeruleanMartText2, CeruleanMartText3
+CeruleanMartTextPointers: ; 5c898 (17:4898)
+	dw CeruleanMartText1
+	dw CeruleanMartText2
+	dw CeruleanMartText3
 
 CeruleanMartText2: ; 5c89e (17:489e)
 	TX_FAR _CeruleanMartText2
@@ -92364,7 +94472,7 @@ CeruleanMartObject: ; 0x5c8a8 (size=38)
 LavenderPokecenter_h: ; 0x5c8ce to 0x5c8da (12 bytes) (id=141)
 	db $06 ; tileset
 	db LAVENDER_POKECENTER_HEIGHT, LAVENDER_POKECENTER_WIDTH ; dimensions (y, x)
-	dw LavenderPokecenterBlocks, LavenderPokecenterTexts, LavenderPokecenterScript ; blocks, texts, scripts
+	dw LavenderPokecenterBlocks, LavenderPokecenterTextPointers, LavenderPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw LavenderPokecenterObject ; objects
@@ -92373,8 +94481,11 @@ LavenderPokecenterScript: ; 5c8da (17:48da)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-LavenderPokecenterTexts: ; 5c8e0 (17:48e0)
-	dw LavenderPokecenterText1, LavenderPokecenterText2, LavenderPokecenterText3, LavenderPokecenterText4
+LavenderPokecenterTextPointers: ; 5c8e0 (17:48e0)
+	dw LavenderPokecenterText1
+	dw LavenderPokecenterText2
+	dw LavenderPokecenterText3
+	dw LavenderPokecenterText4
 
 LavenderPokecenterText4: ; 5c8e8 (17:48e8)
 	db $f6
@@ -92412,7 +94523,7 @@ LavenderPokecenterObject: ; 0x5c8f4 (size=44)
 LavenderMart_h: ; 0x5c920 to 0x5c92c (12 bytes) (id=150)
 	db $02 ; tileset
 	db LAVENDER_MART_HEIGHT, LAVENDER_MART_WIDTH ; dimensions (y, x)
-	dw LavenderMartBlocks, LavenderMartTexts, LavenderMartScript ; blocks, texts, scripts
+	dw LavenderMartBlocks, LavenderMartTextPointers, LavenderMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw LavenderMartObject ; objects
@@ -92420,8 +94531,10 @@ LavenderMart_h: ; 0x5c920 to 0x5c92c (12 bytes) (id=150)
 LavenderMartScript: ; 5c92c (17:492c)
 	jp EnableAutoTextBoxDrawing
 
-LavenderMartTexts: ; 5c92f (17:492f)
-	dw LavenderMartText1, LavenderMartText2, LavenderMartText3
+LavenderMartTextPointers: ; 5c92f (17:492f)
+	dw LavenderMartText1
+	dw LavenderMartText2
+	dw LavenderMartText3
 
 LavenderMartText2: ; 5c935 (17:4935)
 	TX_FAR _LavenderMartText2
@@ -92470,7 +94583,7 @@ LavenderMartObject: ; 0x5c95d (size=38)
 VermilionPokecenter_h: ; 0x5c983 to 0x5c98f (12 bytes) (id=89)
 	db $06 ; tileset
 	db VERMILION_POKECENTER_HEIGHT, VERMILION_POKECENTER_WIDTH ; dimensions (y, x)
-	dw VermilionPokecenterBlocks, VermilionPokecenterTexts, VermilionPokecenterScript ; blocks, texts, scripts
+	dw VermilionPokecenterBlocks, VermilionPokecenterTextPointers, VermilionPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionPokecenterObject ; objects
@@ -92479,8 +94592,11 @@ VermilionPokecenterScript: ; 5c98f (17:498f)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-VermilionPokecenterTexts: ; 5c995 (17:4995)
-	dw VermilionPokecenterText1, VermilionPokecenterText2, VermilionPokecenterText3, VermilionPokecenterText4
+VermilionPokecenterTextPointers: ; 5c995 (17:4995)
+	dw VermilionPokecenterText1
+	dw VermilionPokecenterText2
+	dw VermilionPokecenterText3
+	dw VermilionPokecenterText4
 
 VermilionPokecenterText1: ; 5c99d (17:499d)
 	db $ff
@@ -92518,7 +94634,7 @@ VermilionPokecenterObject: ; 0x5c9a9 (size=44)
 VermilionMart_h: ; 0x5c9d5 to 0x5c9e1 (12 bytes) (id=91)
 	db $02 ; tileset
 	db VERMILION_MART_HEIGHT, VERMILION_MART_WIDTH ; dimensions (y, x)
-	dw VermilionMartBlocks, VermilionMartTexts, VermilionMartScript ; blocks, texts, scripts
+	dw VermilionMartBlocks, VermilionMartTextPointers, VermilionMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionMartObject ; objects
@@ -92526,8 +94642,10 @@ VermilionMart_h: ; 0x5c9d5 to 0x5c9e1 (12 bytes) (id=91)
 VermilionMartScript: ; 5c9e1 (17:49e1)
 	jp EnableAutoTextBoxDrawing
 
-VermilionMartTexts: ; 5c9e4 (17:49e4)
-	dw VermilionMartText1, VermilionMartText2, VermilionMartText3
+VermilionMartTextPointers: ; 5c9e4 (17:49e4)
+	dw VermilionMartText1
+	dw VermilionMartText2
+	dw VermilionMartText3
 
 VermilionMartText2: ; 5c9ea (17:49ea)
 	TX_FAR _VermilionMartText2
@@ -92558,7 +94676,7 @@ VermilionMartObject: ; 0x5c9f4 (size=38)
 VermilionGym_h: ; 0x5ca1a to 0x5ca26 (12 bytes) (id=92)
 	db $07 ; tileset
 	db VERMILION_GYM_HEIGHT, VERMILION_GYM_WIDTH ; dimensions (y, x)
-	dw VermilionGymBlocks, VermilionGymTexts, VermilionGymScript ; blocks, texts, scripts
+	dw VermilionGymBlocks, VermilionGymTextPointers, VermilionGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VermilionGymObject ; objects
@@ -92568,20 +94686,20 @@ VermilionGymScript: ; 5ca26 (17:4a26)
 	bit 5, [hl]
 	res 5, [hl]
 	push hl
-	call nz, VermilionGymScript_Unknown5ca4c
+	call nz, VermilionGymScript_5ca4c
 	pop hl
 	bit 6, [hl]
 	res 6, [hl]
-	call nz, Func_5ca6d
+	call nz, VermilionGymScript_5ca6d
 	call EnableAutoTextBoxDrawing
 	ld hl, VermilionGymTrainerHeader0
-	ld de, Unknown_5ca95 ; $4a95
+	ld de, VermilionGymScriptPointers
 	ld a, [W_VERMILIONGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_VERMILIONGYMCURSCRIPT], a
 	ret
 
-VermilionGymScript_Unknown5ca4c: ; 5ca4c (17:4a4c)
+VermilionGymScript_5ca4c: ; 5ca4c (17:4a4c)
 	ld hl, Gym3CityName ; $4a55
 	ld de, Gym3LeaderName ; $4a64
 	jp LoadGymLeaderAndCityName
@@ -92592,7 +94710,7 @@ Gym3CityName: ; 5ca55 (17:4a55)
 Gym3LeaderName: ; 5ca64 (17:4a64)
 	db "LT.SURGE@"
 
-Func_5ca6d: ; 5ca6d (17:4a6d)
+VermilionGymScript_5ca6d: ; 5ca6d (17:4a6d)
 	ld a, [$d773]
 	bit 0, a
 	jr nz, .asm_5ca78
@@ -92608,18 +94726,23 @@ Func_5ca6d: ; 5ca6d (17:4a6d)
 	ld a, $17
 	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
 
-Func_5ca8a: ; 5ca8a (17:4a8a)
+VermilionGymScript_5ca8a: ; 5ca8a (17:4a8a)
 	xor a
 	ld [wJoypadForbiddenButtonsMask], a
 	ld [W_VERMILIONGYMCURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_5ca95: ; 5ca95 (17:4a95)
-INCBIN "baserom.gbc",$5ca95,$5ca9d - $5ca95
+VermilionGymScriptPointers: ; 5ca95 (17:4a95)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw VermilionGymScript3
+
+VermilionGymScript3: ; 5ca9d (17:4a9d)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
-	jp z, Func_5ca8a
+	jp z, VermilionGymScript_5ca8a
 	ld a, $f0
 	ld [wJoypadForbiddenButtonsMask], a
 
@@ -92650,10 +94773,17 @@ Func_5caaa: ; 5caaa (17:4aaa)
 	ld a, [$d773]
 	or $1c
 	ld [$d773], a
-	jp Func_5ca8a
+	jp VermilionGymScript_5ca8a
 
-VermilionGymTexts: ; 5cae8 (17:4ae8)
-	dw VermilionGymText1, VermilionGymText2, VermilionGymText3, VermilionGymText4, VermilionGymText5, VermilionGymText6, VermilionGymText7, VermilionGymText8
+VermilionGymTextPointers: ; 5cae8 (17:4ae8)
+	dw VermilionGymText1
+	dw VermilionGymText2
+	dw VermilionGymText3
+	dw VermilionGymText4
+	dw VermilionGymText5
+	dw VermilionGymText6
+	dw VermilionGymText7
+	dw VermilionGymText8
 
 VermilionGymTrainerHeaders: ; 5caf8 (17:4af8)
 VermilionGymTrainerHeader0: ; 5caf8 (17:4af8)
@@ -92683,7 +94813,7 @@ VermilionGymTrainerHeader2: ; 5cb10 (17:4b10)
 	dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
 	dw VermilionGymEndBattleText3 ; 0x4bd1 TextEndBattle
 
-db $ff
+	db $ff
 
 VermilionGymText1: ; 5cb1d (17:4b1d)
 	db $08 ; asm
@@ -92850,7 +94980,7 @@ VermilionGymBlocks: ; 5cc38 (17:4c38)
 CopycatsHouseF2_h: ; 0x5cc65 to 0x5cc71 (12 bytes) (id=176)
 	db $04 ; tileset
 	db COPYCATS_HOUSE_2F_HEIGHT, COPYCATS_HOUSE_2F_WIDTH ; dimensions (y, x)
-	dw CopycatsHouseF2Blocks, CopycatsHouseF2Texts, CopycatsHouseF2Script ; blocks, texts, scripts
+	dw CopycatsHouseF2Blocks, CopycatsHouseF2TextPointers, CopycatsHouseF2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CopycatsHouseF2Object ; objects
@@ -92858,8 +94988,14 @@ CopycatsHouseF2_h: ; 0x5cc65 to 0x5cc71 (12 bytes) (id=176)
 CopycatsHouseF2Script: ; 5cc71 (17:4c71)
 	jp EnableAutoTextBoxDrawing
 
-CopycatsHouseF2Texts: ; 5cc74 (17:4c74)
-	dw CopycatsHouseF2Text1, CopycatsHouseF2Text2, CopycatsHouseF2Text3, CopycatsHouseF2Text4, CopycatsHouseF2Text5, CopycatsHouseF2Text6, CopycatsHouseF2Text7
+CopycatsHouseF2TextPointers: ; 5cc74 (17:4c74)
+	dw CopycatsHouseF2Text1
+	dw CopycatsHouseF2Text2
+	dw CopycatsHouseF2Text3
+	dw CopycatsHouseF2Text4
+	dw CopycatsHouseF2Text5
+	dw CopycatsHouseF2Text6
+	dw CopycatsHouseF2Text7
 
 CopycatsHouseF2Text1: ; 5cc82 (17:4c82)
 	db $08 ; asm
@@ -92977,7 +95113,7 @@ CopycatsHouseF2Object: ; 0x5cd21 (size=48)
 FightingDojo_h: ; 0x5cd51 to 0x5cd5d (12 bytes) (id=177)
 	db $05 ; tileset
 	db FIGHTINGDOJO_HEIGHT, FIGHTINGDOJO_WIDTH ; dimensions (y, x)
-	dw FightingDojoBlocks, FightingDojoTexts, FightingDojoScript ; blocks, texts, scripts
+	dw FightingDojoBlocks, FightingDojoTextPointers, FightingDojoScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FightingDojoObject ; objects
@@ -92985,19 +95121,98 @@ FightingDojo_h: ; 0x5cd51 to 0x5cd5d (12 bytes) (id=177)
 FightingDojoScript: ; 5cd5d (17:4d5d)
 	call EnableAutoTextBoxDrawing
 	ld hl, FightingDojoTrainerHeaders
-	ld de, Unknown_5cd7b ; $4d7b
+	ld de, FightingDojoScriptPointers
 	ld a, [W_FIGHTINGDOJOCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_FIGHTINGDOJOCURSCRIPT], a
 	ret
 
-INCBIN "baserom.gbc",$5cd70,$5cd7b - $5cd70
+FightingDojoScript_5cd70: ; 5cd70 (17:4d70)
+	xor a
+	ld [$cd6b], a
+	ld [$d642], a
+	ld [$da39], a
+	ret
 
-Unknown_5cd7b: ; 5cd7b (17:4d7b)
-INCBIN "baserom.gbc",$5cd7b,$5ce03 - $5cd7b
+FightingDojoScriptPointers: ; 5cd7b (17:4d7b)
+	dw FightingDojoScript1
+	dw Func_324c
+	dw EndTrainerBattle
+	dw FightingDojoScript3
 
-FightingDojoTexts: ; 5ce03 (17:4e03)
-	dw FightingDojoText1, FightingDojoText2, FightingDojoText3, FightingDojoText4, FightingDojoText5, FightingDojoText6, FightingDojoText7, FightingDojoText8
+FightingDojoScript1: ; 5cd83 (17:4d83)
+	ld a, [$d7b1]
+	bit 0, a
+	ret nz
+	call CheckFightingMapTrainers
+	ld a, [wTrainerHeaderFlagBit]
+	and a
+	ret nz
+	ld a, [$d7b1]
+	bit 1, a
+	ret nz
+	xor a
+	ld [H_CURRENTPRESSEDBUTTONS], a
+	ld [$cf0d], a
+	ld a, [W_YCOORD]
+	cp $3
+	ret nz
+	ld a, [W_XCOORD]
+	cp $4
+	ret nz
+	ld a, $1
+	ld [$cf0d], a
+	ld a, $1
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $8
+	ld [$ff8d], a
+	call $34a6
+	ld a, $1
+	ld [$ff8c], a
+	call DisplayTextID
+	ret
+
+FightingDojoScript3: ; 5cdc6 (17:4dc6)
+	ld a, [$d057]
+	cp $ff
+	jp z, $4d70
+	ld a, [$cf0d]
+	and a
+	jr z, .asm_5cde4
+	ld a, $1
+	ld [$d528], a
+	ld a, $1
+	ld [$ff8c], a
+	ld a, $8
+	ld [$ff8d], a
+	call $34a6
+
+.asm_5cde4
+	ld a, $f0
+	ld [$cd6b], a
+	ld a, [$d7b1]
+	or $3e
+	ld [$d7b1], a
+	ld a, $8
+	ld [$ff8c], a
+	call DisplayTextID
+	xor a
+	ld [$cd6b], a
+	ld [$d642], a
+	ld [$da39], a
+	ret
+
+FightingDojoTextPointers: ; 5ce03 (17:4e03)
+	dw FightingDojoText1
+	dw FightingDojoText2
+	dw FightingDojoText3
+	dw FightingDojoText4
+	dw FightingDojoText5
+	dw FightingDojoText6
+	dw FightingDojoText7
+	dw FightingDojoText8
 
 FightingDojoTrainerHeaders: ; 5ce13 (17:4e13)
 FightingDojoTrainerHeader0: ; 5ce13 (17:4e13)
@@ -93036,7 +95251,7 @@ FightingDojoTrainerHeader3: ; 5ce37 (17:4e37)
 	dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
 	dw FightingDojoEndBattleText4 ; 0x4efc TextEndBattle
 
-db $ff
+	db $ff
 
 FightingDojoText1: ; 5ce44 (17:4e44)
 	db $08 ; asm
@@ -93269,7 +95484,7 @@ FightingDojoBlocks: ; 5cfe3 (17:4fe3)
 SaffronGym_h: ; 0x5d001 to 0x5d00d (12 bytes) (id=178)
 	db $16 ; tileset
 	db SAFFRON_GYM_HEIGHT, SAFFRON_GYM_WIDTH ; dimensions (y, x)
-	dw SaffronGymBlocks, SaffronGymTexts, SaffronGymScript ; blocks, texts, scripts
+	dw SaffronGymBlocks, SaffronGymTextPointers, SaffronGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SaffronGymObject ; objects
@@ -93280,8 +95495,8 @@ SaffronGymScript: ; 5d00d (17:500d)
 	res 6, [hl]
 	call nz, .extra
 	call EnableAutoTextBoxDrawing
-	ld hl, SaffronGymTrainerHeader0 ; $50c3
-	ld de, Unknown_5d053 ; $5053
+	ld hl, SaffronGymTrainerHeader0
+	ld de, SaffronGymScriptPointers
 	ld a, [W_SAFFRONGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SAFFRONGYMCURSCRIPT], a
@@ -93305,8 +95520,13 @@ Func_5d048: ; 5d048 (17:5048)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_5d053: ; 5d053 (17:5053)
-INCBIN "baserom.gbc",$5d053,$5d05b - $5d053
+SaffronGymScriptPointers: ; 5d053 (17:5053)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
+	dw SaffronGymScript3
+
+SaffronGymScript3: ; 5d05b (17:505b)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_5d048
@@ -93344,8 +95564,19 @@ Func_5d068: ; 5d068 (17:5068)
 	set 0, [hl]
 	jp Func_5d048
 
-SaffronGymTexts: ; 5d0ab (17:50ab)
-	dw SaffronGymText1, SaffronGymText2, SaffronGymText3, SaffronGymText4, SaffronGymText5, SaffronGymText6, SaffronGymText7, SaffronGymText8, SaffronGymText9, SaffronGymText10, SaffronGymText11, SaffronGymText12
+SaffronGymTextPointers: ; 5d0ab (17:50ab)
+	dw SaffronGymText1
+	dw SaffronGymText2
+	dw SaffronGymText3
+	dw SaffronGymText4
+	dw SaffronGymText5
+	dw SaffronGymText6
+	dw SaffronGymText7
+	dw SaffronGymText8
+	dw SaffronGymText9
+	dw SaffronGymText10
+	dw SaffronGymText11
+	dw SaffronGymText12
 
 SaffronGymTrainerHeaders: ; 5d0c3 (17:50c3)
 SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3)
@@ -93411,7 +95642,7 @@ SaffronGymTrainerHeader6: ; 5d10b (17:510b)
 	dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
 	dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle
 
-db $ff
+	db $ff
 
 SaffronGymText1: ; 5d118 (17:5118)
 	db $08 ; asm
@@ -93713,7 +95944,7 @@ SaffronGymBlocks: ; 5d3a3 (17:53a3)
 SaffronMart_h: ; 0x5d3fd to 0x5d409 (12 bytes) (id=180)
 	db $02 ; tileset
 	db SAFFRON_MART_HEIGHT, SAFFRON_MART_WIDTH ; dimensions (y, x)
-	dw SaffronMartBlocks, SaffronMartTexts, SaffronMartScript ; blocks, texts, scripts
+	dw SaffronMartBlocks, SaffronMartTextPointers, SaffronMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SaffronMartObject ; objects
@@ -93721,8 +95952,10 @@ SaffronMart_h: ; 0x5d3fd to 0x5d409 (12 bytes) (id=180)
 SaffronMartScript: ; 5d409 (17:5409)
 	jp EnableAutoTextBoxDrawing
 
-SaffronMartTexts: ; 5d40c (17:540c)
-	dw SaffronMartText1, SaffronMartText2, SaffronMartText3
+SaffronMartTextPointers: ; 5d40c (17:540c)
+	dw SaffronMartText1
+	dw SaffronMartText2
+	dw SaffronMartText3
 
 SaffronMartText2: ; 5d412 (17:5412)
 	TX_FAR _SaffronMartText2
@@ -93753,7 +95986,7 @@ SaffronMartObject: ; 0x5d41c (size=38)
 SilphCo1_h: ; 0x5d442 to 0x5d44e (12 bytes) (id=181)
 	db $16 ; tileset
 	db SILPH_CO_1F_HEIGHT, SILPH_CO_1F_WIDTH ; dimensions (y, x)
-	dw SilphCo1Blocks, SilphCo1Texts, SilphCo1Script ; blocks, texts, scripts
+	dw SilphCo1Blocks, SilphCo1TextPointers, SilphCo1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo1Object ; objects
@@ -93772,7 +96005,7 @@ SilphCo1Script: ; 5d44e (17:544e)
 	ld a, $15
 	jp Predef
 
-SilphCo1Texts: ; 5d469 (17:5469)
+SilphCo1TextPointers: ; 5d469 (17:5469)
 	dw SilphCo1Text1
 
 SilphCo1Text1: ; 5d46b (17:546b)
@@ -93807,7 +96040,7 @@ SilphCo1Blocks: ; 5d4a2 (17:54a2)
 SaffronPokecenter_h: ; 0x5d529 to 0x5d535 (12 bytes) (id=182)
 	db $06 ; tileset
 	db SAFFRON_POKECENTER_HEIGHT, SAFFRON_POKECENTER_WIDTH ; dimensions (y, x)
-	dw SaffronPokecenterBlocks, SaffronPokecenterTexts, SaffronPokecenterScript ; blocks, texts, scripts
+	dw SaffronPokecenterBlocks, SaffronPokecenterTextPointers, SaffronPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SaffronPokecenterObject ; objects
@@ -93816,8 +96049,11 @@ SaffronPokecenterScript: ; 5d535 (17:5535)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-SaffronPokecenterTexts: ; 5d53b (17:553b)
-	dw SaffronPokecenterText1, SaffronPokecenterText2, SaffronPokecenterText3, SaffronPokecenterText4
+SaffronPokecenterTextPointers: ; 5d53b (17:553b)
+	dw SaffronPokecenterText1
+	dw SaffronPokecenterText2
+	dw SaffronPokecenterText3
+	dw SaffronPokecenterText4
 
 SaffronPokecenterText1: ; 5d543 (17:5543)
 	db $ff
@@ -93855,7 +96091,7 @@ SaffronPokecenterObject: ; 0x5d54f (size=44)
 ViridianForestexit_h: ; 0x5d57b to 0x5d587 (12 bytes) (id=47)
 	db $09 ; tileset
 	db VIRIDIAN_FOREST_EXIT_HEIGHT, VIRIDIAN_FOREST_EXIT_WIDTH ; dimensions (y, x)
-	dw ViridianForestexitBlocks, ViridianForestexitTexts, ViridianForestexitScript ; blocks, texts, scripts
+	dw ViridianForestexitBlocks, ViridianForestexitTextPointers, ViridianForestexitScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianForestexitObject ; objects
@@ -93863,8 +96099,9 @@ ViridianForestexit_h: ; 0x5d57b to 0x5d587 (12 bytes) (id=47)
 ViridianForestexitScript: ; 5d587 (17:5587)
 	jp EnableAutoTextBoxDrawing
 
-ViridianForestexitTexts: ; 5d58a (17:558a)
-	dw ViridianForestexitText1, ViridianForestexitText2
+ViridianForestexitTextPointers: ; 5d58a (17:558a)
+	dw ViridianForestexitText1
+	dw ViridianForestexitText2
 
 ViridianForestexitText1: ; 5d58e (17:558e)
 	TX_FAR _ViridianForestexitText1
@@ -93898,7 +96135,7 @@ ViridianForestexitObject: ; 0x5d598 (size=48)
 Route2Gate_h: ; 0x5d5c8 to 0x5d5d4 (12 bytes) (id=49)
 	db $0c ; tileset
 	db ROUTE_2_GATE_HEIGHT, ROUTE_2_GATE_WIDTH ; dimensions (y, x)
-	dw Route2GateBlocks, Route2GateTexts, Route2GateScript ; blocks, texts, scripts
+	dw Route2GateBlocks, Route2GateTextPointers, Route2GateScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Route2GateObject ; objects
@@ -93906,8 +96143,9 @@ Route2Gate_h: ; 0x5d5c8 to 0x5d5d4 (12 bytes) (id=49)
 Route2GateScript: ; 5d5d4 (17:55d4)
 	jp EnableAutoTextBoxDrawing
 
-Route2GateTexts: ; 5d5d7 (17:55d7)
-	dw Route2GateText1, Route2GateText2
+Route2GateTextPointers: ; 5d5d7 (17:55d7)
+	dw Route2GateText1
+	dw Route2GateText2
 
 Route2GateText1: ; 5d5db (17:55db)
 	db $08 ; asm
@@ -93969,7 +96207,7 @@ Route2GateObject: ; 0x5d620 (size=48)
 ViridianForestEntrance_h: ; 0x5d650 to 0x5d65c (12 bytes) (id=50)
 	db $09 ; tileset
 	db VIRIDIAN_FOREST_ENTRANCE_HEIGHT, VIRIDIAN_FOREST_ENTRANCE_WIDTH ; dimensions (y, x)
-	dw ViridianForestEntranceBlocks, ViridianForestEntranceTexts, ViridianForestEntranceScript ; blocks, texts, scripts
+	dw ViridianForestEntranceBlocks, ViridianForestEntranceTextPointers, ViridianForestEntranceScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianForestEntranceObject ; objects
@@ -93977,8 +96215,9 @@ ViridianForestEntrance_h: ; 0x5d650 to 0x5d65c (12 bytes) (id=50)
 ViridianForestEntranceScript: ; 5d65c (17:565c)
 	jp EnableAutoTextBoxDrawing
 
-ViridianForestEntranceTexts: ; 5d65f (17:565f)
-	dw ViridianForestEntranceText1, ViridianForestEntranceText2
+ViridianForestEntranceTextPointers: ; 5d65f (17:565f)
+	dw ViridianForestEntranceText1
+	dw ViridianForestEntranceText2
 
 ViridianForestEntranceText1: ; 5d663 (17:5663)
 	TX_FAR _ViridianForestEntranceText1
@@ -94012,7 +96251,7 @@ ViridianForestEntranceObject: ; 0x5d66d (size=48)
 UndergroundTunnelEntranceRoute5_h: ; 0x5d69d to 0x5d6a9 (12 bytes) (id=71)
 	db $0c ; tileset
 	db PATH_ENTRANCE_ROUTE_5_HEIGHT, PATH_ENTRANCE_ROUTE_5_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute5Blocks, UndergroundTunnelEntranceRoute5Texts, UndergroundTunnelEntranceRoute5Script ; blocks, texts, scripts
+	dw UndergroundTunnelEntranceRoute5Blocks, UndergroundTunnelEntranceRoute5TextPointers, UndergroundTunnelEntranceRoute5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UndergroundTunnelEntranceRoute5Object ; objects
@@ -94025,7 +96264,7 @@ UndergroundTunnelEntranceRoute5Script: ; 5d6a9 (17:56a9)
 UndergroundTunnelEntranceRoute5_5d6af: ; 5d6af (17:56af)
 	db $50
 
-UndergroundTunnelEntranceRoute5Texts: ; 5d6b0 (17:56b0)
+UndergroundTunnelEntranceRoute5TextPointers: ; 5d6b0 (17:56b0)
 	dw UndergroundTunnelEntranceRoute5Text1
 
 UndergroundTunnelEntranceRoute5Text1: ; 5d6b2 (17:56b2)
@@ -94058,7 +96297,7 @@ UndergroundTunnelEntranceRoute5Object: ; 0x5d6c1 (size=34)
 UndergroundTunnelEntranceRoute6_h: ; 0x5d6e3 to 0x5d6ef (12 bytes) (id=74)
 	db $0c ; tileset
 	db PATH_ENTRANCE_ROUTE_6_HEIGHT, PATH_ENTRANCE_ROUTE_6_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute6Blocks, UndergroundTunnelEntranceRoute6Texts, UndergroundTunnelEntranceRoute6Script ; blocks, texts, scripts
+	dw UndergroundTunnelEntranceRoute6Blocks, UndergroundTunnelEntranceRoute6TextPointers, UndergroundTunnelEntranceRoute6Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UndergroundTunnelEntranceRoute6Object ; objects
@@ -94068,7 +96307,7 @@ UndergroundTunnelEntranceRoute6Script: ; 5d6ef (17:56ef)
 	ld [$d365], a
 	jp EnableAutoTextBoxDrawing
 
-UndergroundTunnelEntranceRoute6Texts: ; 5d6f7 (17:56f7)
+UndergroundTunnelEntranceRoute6TextPointers: ; 5d6f7 (17:56f7)
 	dw UndergroundTunnelEntranceRoute6Text1
 
 ;XXX wtf? syntax error on TX_FAR?
@@ -94098,7 +96337,7 @@ UndergroundTunnelEntranceRoute6Object: ; 0x5d6fe (size=34)
 UndergroundPathEntranceRoute7_h: ; 0x5d720 to 0x5d72c (12 bytes) (id=77)
 	db $0c ; tileset
 	db PATH_ENTRANCE_ROUTE_7_HEIGHT, PATH_ENTRANCE_ROUTE_7_WIDTH ; dimensions (y, x)
-	dw UndergroundTunnelEntranceRoute7Blocks, UndergroundPathEntranceRoute7Texts, UndergroundPathEntranceRoute7Script ; blocks, texts, scripts
+	dw UndergroundTunnelEntranceRoute7Blocks, UndergroundPathEntranceRoute7TextPointers, UndergroundPathEntranceRoute7Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UndergroundPathEntranceRoute7Object ; objects
@@ -94108,7 +96347,7 @@ UndergroundPathEntranceRoute7Script: ; 5d72c (17:572c)
 	ld [$d365], a
 	jp EnableAutoTextBoxDrawing
 
-UndergroundPathEntranceRoute7Texts: ; 5d734 (17:5734)
+UndergroundPathEntranceRoute7TextPointers: ; 5d734 (17:5734)
 	dw UndergroundPathEntranceRoute7Text1
 
 UndergroundPathEntranceRoute7Text1: ; 5d736 (17:5736)
@@ -94157,22 +96396,22 @@ INCBIN "baserom.gbc",$5d787,$5d7af - $5d787
 SilphCo9_h: ; 0x5d7af to 0x5d7bb (12 bytes) (id=233)
 	db $16 ; tileset
 	db SILPH_CO_9F_HEIGHT, SILPH_CO_9F_WIDTH ; dimensions (y, x)
-	dw SilphCo9Blocks, SilphCo9Texts, SilphCo9Script ; blocks, texts, scripts
+	dw SilphCo9Blocks, SilphCo9TextPointers, SilphCo9Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo9Object ; objects
 
 SilphCo9Script: ; 5d7bb (17:57bb)
-	call SilphCo9Script_Unknown5d7d1
+	call SilphCo9Script_5d7d1
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo9TrainerHeaders
-	ld de, Unknown_5d885 ; $5885
+	ld de, SilphCo9ScriptPointers
 	ld a, [W_SILPHCO9CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO9CURSCRIPT], a
 	ret
 
-SilphCo9Script_Unknown5d7d1: ; 5d7d1 (17:57d1)
+SilphCo9Script_5d7d1: ; 5d7d1 (17:57d1)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -94283,11 +96522,16 @@ Func_5d863: ; 5d863 (17:5863)
 	set 3, [hl]
 	ret
 
-Unknown_5d885: ; 5d885 (17:5885)
-INCBIN "baserom.gbc",$5d885,$5d88b - $5d885
+SilphCo9ScriptPointers: ; 5d885 (17:5885)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SilphCo9Texts: ; 5d88b (17:588b)
-	dw SilphCo9Text1, SilphCo9Text2, SilphCo9Text3, SilphCo9Text4
+SilphCo9TextPointers: ; 5d88b (17:588b)
+	dw SilphCo9Text1
+	dw SilphCo9Text2
+	dw SilphCo9Text3
+	dw SilphCo9Text4
 
 SilphCo9TrainerHeaders: ; 5d893 (17:5893)
 SilphCo9TrainerHeader0: ; 5d893 (17:5893)
@@ -94317,7 +96561,7 @@ SilphCo9TrainerHeader2: ; 5d8ab (17:58ab)
 	dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
 	dw SilphCo9EndBattleText3 ; 0x5935 TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo9Text1: ; 5d8b8 (17:58b8)
 	db $08 ; asm
@@ -94437,7 +96681,7 @@ SilphCo9Blocks: ; 5d989 (17:5989)
 VictoryRoad1_h: ; 0x5d9fe to 0x5da0a (12 bytes) (id=108)
 	db $11 ; tileset
 	db VICTORY_ROAD_1_HEIGHT, VICTORY_ROAD_1_WIDTH ; dimensions (y, x)
-	dw VictoryRoad1Blocks, VictoryRoad1Texts, VictoryRoad1Script ; blocks, texts, scripts
+	dw VictoryRoad1Blocks, VictoryRoad1TextPointers, VictoryRoad1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw VictoryRoad1Object ; objects
@@ -94449,7 +96693,7 @@ VictoryRoad1Script: ; 5da0a (17:5a0a)
 	call nz, .next
 	call EnableAutoTextBoxDrawing
 	ld hl, VictoryRoad1TrainerHeaders
-	ld de, Unknown_5da3a ; $5a3a
+	ld de, VictoryRoad1ScriptPointers
 	ld a, [W_VICTORYROAD1CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_VICTORYROAD1CURSCRIPT], a
@@ -94464,12 +96708,16 @@ VictoryRoad1Script: ; 5da0a (17:5a0a)
 	ld a, $17
 	jp Predef ; indirect jump to Func_ee9e (ee9e (3:6e9e))
 
-Unknown_5da3a: ; 5da3a (17:5a3a)
-INCBIN "baserom.gbc",$5da3a,$5da40 - $5da3a
+VictoryRoad1ScriptPointers: ; 5da3a (17:5a3a)
+	dw VictoryRoad1Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+VictoryRoad1Script0: ; 5da40 (17:5a40)
 	ld a, [$d869]
 	bit 7, a
 	jp nz, CheckFightingMapTrainers
-	ld hl, Unknown_5da5c ; $5a5c
+	ld hl, CoordsData_5da5c ; $5a5c
 	call CheckBoulderCoords
 	jp nc, CheckFightingMapTrainers
 	ld hl, $d126
@@ -94478,11 +96726,17 @@ INCBIN "baserom.gbc",$5da3a,$5da40 - $5da3a
 	set 7, [hl]
 	ret
 
-Unknown_5da5c: ; 5da5c (17:5a5c)
-INCBIN "baserom.gbc",$5da5c,$5da5f - $5da5c
+CoordsData_5da5c: ; 5da5c (17:5a5c)
+	db $0D,$11,$FF
 
-VictoryRoad1Texts: ; 5da5f (17:5a5f)
-	dw VictoryRoad1Text1, VictoryRoad1Text2, Predef5CText, Predef5CText, BoulderText, BoulderText, BoulderText
+VictoryRoad1TextPointers: ; 5da5f (17:5a5f)
+	dw VictoryRoad1Text1
+	dw VictoryRoad1Text2
+	dw Predef5CText
+	dw Predef5CText
+	dw BoulderText
+	dw BoulderText
+	dw BoulderText
 
 VictoryRoad1TrainerHeaders: ; 5da6d (17:5a6d)
 VictoryRoad1TrainerHeader0: ; 5da6d (17:5a6d)
@@ -94503,7 +96757,7 @@ VictoryRoad1TrainerHeader1: ; 5da79 (17:5a79)
 	dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
 	dw VictoryRoad1EndBattleText2 ; 0x5aae TextEndBattle
 
-db $ff
+	db $ff
 
 VictoryRoad1Text1: ; 5da86 (17:5a86)
 	db $08 ; asm
@@ -94584,13 +96838,32 @@ SetPartyMonTypes: ; 5db5e (17:5b5e)
 	ld [hl], a
 	ret
 
-INCBIN "baserom.gbc",$5db79,$5db81 - $5db79
+Func_5db79: ; 5db79 (17:5b79)
+	call EnableAutoTextBoxDrawing
+	ld a, $4
+	jp Func_3ef5
 
 UnnamedText_5db81: ; 5db81 (17:5b81)
 	TX_FAR _UnnamedText_5db81
 	db "@"
 
-INCBIN "baserom.gbc",$5db86,$5dba8 - $5db86
+Func_5db86: ; 5db86 (17:5b86)
+	call EnableAutoTextBoxDrawing
+	ld a, $3
+	jp Func_3ef5
+
+Func_5db8e: ; 5db8e (17:5b8e)
+	db $fc
+	ld a, [$c109]
+	cp $4
+	ret nz
+	call EnableAutoTextBoxDrawing
+	ld a, $a
+	call Func_3ef5
+	ld a, ARTICUNO
+	ld [$cf91], a
+	call PlayCry
+	jp Func_5dbd9
 
 UnnamedText_5dba8: ; 5dba8 (17:5ba8)
 	TX_FAR _UnnamedText_5dba8
@@ -94664,17 +96937,17 @@ Unknown_5dc2a: ; 5dc2a (17:5c2a)
 	ld hl, UnnamedText_5dc9e
 	call PrintText
 	xor a
-	ld [$d07c], a
-	ld [$cc26], a
-	ld [$cc2a], a
+	ld [W_ANIMATIONID], a
+	ld [wCurrentMenuItem], a
+	ld [wLastMenuItem], a
 	ld a, $3
-	ld [$cc29], a
+	ld [wMenuWatchedKeys], a
 	ld a, $3
-	ld [$cc28], a
+	ld [wMaxMenuItem], a
 	ld a, $2
-	ld [$cc24], a
+	ld [wTopMenuItemY], a
 	ld a, $1
-	ld [$cc25], a
+	ld [wTopMenuItemX], a
 .asm_5c51
 	ld hl, $d730
 	set 6, [hl]
@@ -94690,7 +96963,7 @@ Unknown_5dc2a: ; 5dc2a (17:5c2a)
 	call HandleMenuInput
 	bit 1, a
 	jr nz, .asm_5dc93 ; 0x5dc74 $1d
-	ld a, [$cc26]
+	ld a, [wCurrentMenuItem]
 	cp $3
 	jr z, .asm_5dc93 ; 0x5dc7b $16
 	ld hl, $d730
@@ -94906,7 +97179,7 @@ SSAnne9Blocks: ; 603c0 (18:43c0)
 PokemonTower1_h: ; 0x60420 to 0x6042c (12 bytes) (id=142)
 	db $0f ; tileset
 	db POKEMONTOWER_1_HEIGHT, POKEMONTOWER_1_WIDTH ; dimensions (y, x)
-	dw PokemonTower1Blocks, PokemonTower1Texts, PokemonTower1Script ; blocks, texts, scripts
+	dw PokemonTower1Blocks, PokemonTower1TextPointers, PokemonTower1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower1Object ; objects
@@ -94914,8 +97187,12 @@ PokemonTower1_h: ; 0x60420 to 0x6042c (12 bytes) (id=142)
 PokemonTower1Script: ; 6042c (18:442c)
 	jp EnableAutoTextBoxDrawing
 
-PokemonTower1Texts: ; 6042f (18:442f)
-	dw PokemonTower1Text1, PokemonTower1Text2, PokemonTower1Text3, PokemonTower1Text4, PokemonTower1Text5
+PokemonTower1TextPointers: ; 6042f (18:442f)
+	dw PokemonTower1Text1
+	dw PokemonTower1Text2
+	dw PokemonTower1Text3
+	dw PokemonTower1Text4
+	dw PokemonTower1Text5
 
 PokemonTower1Text1: ; 60439 (18:4439)
 	TX_FAR _PokemonTower1Text1
@@ -94965,14 +97242,14 @@ PokemonTower1Blocks: ; 6048c (18:448c)
 PokemonTower2_h: ; 0x604e6 to 0x604f2 (12 bytes) (id=143)
 	db $0f ; tileset
 	db POKEMONTOWER_2_HEIGHT, POKEMONTOWER_2_WIDTH ; dimensions (y, x)
-	dw PokemonTower2Blocks, PokemonTower2Texts, PokemonTower2Script ; blocks, texts, scripts
+	dw PokemonTower2Blocks, PokemonTower2TextPointers, PokemonTower2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower2Object ; objects
 
 PokemonTower2Script: ; 604f2 (18:44f2)
 	call EnableAutoTextBoxDrawing
-	ld hl, PokemonTower2Scripts
+	ld hl, PokemonTower2ScriptPointers
 	ld a, [W_POKEMONTOWER2CURSCRIPT]
 	jp CallFunctionInTable
 
@@ -94983,14 +97260,16 @@ Func_604fe: ; 604fe (18:44fe)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-PokemonTower2Scripts: ; 60509 (18:4509)
-	dw PokemonTower2Script0, PokemonTower2Script1, PokemonTower2Script2
+PokemonTower2ScriptPointers: ; 60509 (18:4509)
+	dw PokemonTower2Script0
+	dw PokemonTower2Script1
+	dw PokemonTower2Script2
 
 PokemonTower2Script0: ; 6050f (18:450f)
 	ld a, [$d764]
 	bit 7, a
 	ret nz
-	ld hl, Unknown_6055e ; $455e
+	ld hl, CoordsData_6055e ; $455e
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $ff
@@ -95025,8 +97304,10 @@ PokemonTower2Script0: ; 6050f (18:450f)
 	ld [H_NEWLYPRESSEDBUTTONS], a
 	ret
 
-Unknown_6055e: ; 6055e (18:455e)
-INCBIN "baserom.gbc",$6055e,$60563 - $6055e
+CoordsData_6055e: ; 6055e (18:455e)
+	db $05,$0F
+	db $06,$0E
+	db $0F ; isn't this supposed to end in $ff?
 
 PokemonTower2Script1: ; 60563 (18:4563)
 	ld a, [$d057]
@@ -95039,11 +97320,11 @@ PokemonTower2Script1: ; 60563 (18:4563)
 	ld a, $1
 	ld [$ff00+$8c], a
 	call DisplayTextID
-	ld de, Unknown_605b2 ; $45b2
+	ld de, MovementData_605b2
 	ld a, [$d764]
 	bit 6, a
 	jr nz, .asm_60589 ; 0x60584 $3
-	ld de, Unknown_605a9 ; $45a9
+	ld de, MovementData_605a9
 .asm_60589
 	ld a, $1
 	ld [$ff00+$8c], a
@@ -95059,11 +97340,11 @@ PokemonTower2Script1: ; 60563 (18:4563)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_605a9: ; 605a9 (18:45a9)
-INCBIN "baserom.gbc",$605a9,$605b2 - $605a9
+MovementData_605a9: ; 605a9 (18:45a9)
+	db $C0,$00,$00,$C0,$00,$00,$C0,$C0,$FF
 
-Unknown_605b2: ; 605b2 (18:45b2)
-INCBIN "baserom.gbc",$605b2,$605bb - $605b2
+MovementData_605b2: ; 605b2 (18:45b2)
+	db $00,$00,$C0,$C0,$C0,$C0,$00,$00,$FF
 
 PokemonTower2Script2: ; 605bb (18:45bb)
 	ld a, [$d730]
@@ -95081,8 +97362,9 @@ PokemonTower2Script2: ; 605bb (18:45bb)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-PokemonTower2Texts: ; 605db (18:45db)
-	dw PokemonTower2Text1, PokemonTower2Text2
+PokemonTower2TextPointers: ; 605db (18:45db)
+	dw PokemonTower2Text1
+	dw PokemonTower2Text2
 
 PokemonTower2Text1: ; 605df (18:45df)
 	db $08 ; asm
@@ -95169,7 +97451,7 @@ PokemonTower2Blocks: ; 60666 (18:4666)
 PokemonTower3_h: ; 0x606c0 to 0x606cc (12 bytes) (id=144)
 	db $0f ; tileset
 	db POKEMONTOWER_3_HEIGHT, POKEMONTOWER_3_WIDTH ; dimensions (y, x)
-	dw PokemonTower3Blocks, PokemonTower3Texts, PokemonTower3Script ; blocks, texts, scripts
+	dw PokemonTower3Blocks, PokemonTower3TextPointers, PokemonTower3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower3Object ; objects
@@ -95177,17 +97459,22 @@ PokemonTower3_h: ; 0x606c0 to 0x606cc (12 bytes) (id=144)
 PokemonTower3Script: ; 606cc (18:46cc)
 	call EnableAutoTextBoxDrawing
 	ld hl, PokemonTower3TrainerHeaders
-	ld de, Unknown_606df
+	ld de, PokemonTower3ScriptPointers
 	ld a, [W_POKEMONTOWER3CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_POKEMONTOWER3CURSCRIPT], a
 	ret
 
-Unknown_606df: ; 606df (18:46df)
-INCBIN "baserom.gbc",$606df,$606e5 - $606df
+PokemonTower3ScriptPointers: ; 606df (18:46df)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-PokemonTower3Texts: ; 606e5 (18:46e5)
-	dw PokemonTower3Text1, PokemonTower3Text2, PokemonTower3Text3, Predef5CText
+PokemonTower3TextPointers: ; 606e5 (18:46e5)
+	dw PokemonTower3Text1
+	dw PokemonTower3Text2
+	dw PokemonTower3Text3
+	dw Predef5CText
 
 PokemonTower3TrainerHeaders: ; 606ed (18:46ed)
 PokemonTower3TrainerHeader0: ; 606ed (18:46ed)
@@ -95216,7 +97503,7 @@ PokemonTower3TrainerHeader2: ; 60705 (18:4705)
 	dw PokemonTower3AfterBattleText3 ; 0x4758 TextAfterBattle
 	dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
 	dw PokemonTower3EndBattleText3 ; 0x4753 TextEndBattle
-db $ff
+	db $ff
 
 PokemonTower3Text1: ; 60712 (18:4712)
 	db $08 ; asm
@@ -95297,7 +97584,7 @@ PokemonTower3Blocks: ; 60790 (18:4790)
 PokemonTower4_h: ; 0x607ea to 0x607f6 (12 bytes) (id=145)
 	db $0f ; tileset
 	db POKEMONTOWER_4_HEIGHT, POKEMONTOWER_4_WIDTH ; dimensions (y, x)
-	dw PokemonTower4Blocks, PokemonTower4Texts, PokemonTower4Script ; blocks, texts, scripts
+	dw PokemonTower4Blocks, PokemonTower4TextPointers, PokemonTower4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower4Object ; objects
@@ -95305,17 +97592,24 @@ PokemonTower4_h: ; 0x607ea to 0x607f6 (12 bytes) (id=145)
 PokemonTower4Script: ; 607f6 (18:47f6)
 	call EnableAutoTextBoxDrawing
 	ld hl, PokemonTower4TrainerHeaders
-	ld de, PokemonTower4Script_Unknown60809
+	ld de, PokemonTower4ScriptPointers
 	ld a, [W_POKEMONTOWER4CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_POKEMONTOWER4CURSCRIPT], a
 	ret
 
-PokemonTower4Script_Unknown60809: ; 60809 (18:4809)
-INCBIN "baserom.gbc",$60809,$6080f - $60809
+PokemonTower4ScriptPointers: ; 60809 (18:4809)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-PokemonTower4Texts: ; 6080f (18:480f)
-	dw PokemonTower4Text1, PokemonTower4Text2, PokemonTower4Text3, Predef5CText, Predef5CText, Predef5CText
+PokemonTower4TextPointers: ; 6080f (18:480f)
+	dw PokemonTower4Text1
+	dw PokemonTower4Text2
+	dw PokemonTower4Text3
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 PokemonTower4TrainerHeaders: ; 6081b (18:481b)
 PokemonTower4TrainerHeader0: ; 6081b (18:481b)
@@ -95345,7 +97639,7 @@ PokemonTower4TrainerHeader2: ; 60833 (18:4833)
 	dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
 	dw PokemonTower4EndBattleText3 ; 0x4881 TextEndBattle
 
-db $ff
+	db $ff
 
 PokemonTower4Text1: ; 60840 (18:4840)
 	db $08 ; asm
@@ -95428,7 +97722,7 @@ PokemonTower4Blocks: ; 608cc (18:48cc)
 PokemonTower5_h: ; 0x60926 to 0x60932 (12 bytes) (id=146)
 	db $0f ; tileset
 	db POKEMONTOWER_5_HEIGHT, POKEMONTOWER_5_WIDTH ; dimensions (y, x)
-	dw PokemonTower5Blocks, PokemonTower5Texts, PokemonTower5Script ; blocks, texts, scripts
+	dw PokemonTower5Blocks, PokemonTower5TextPointers, PokemonTower5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower5Object ; objects
@@ -95436,15 +97730,19 @@ PokemonTower5_h: ; 0x60926 to 0x60932 (12 bytes) (id=146)
 PokemonTower5Script: ; 60932 (18:4932)
 	call EnableAutoTextBoxDrawing
 	ld hl, PokemonTower5TrainerHeaders
-	ld de, PokemonTower5Script_Unknown60945
+	ld de, PokemonTower5ScriptPointers
 	ld a, [W_POKEMONTOWER5CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_POKEMONTOWER5CURSCRIPT], a
 	ret
 
-PokemonTower5Script_Unknown60945: ; 60945 (18:4945)
-INCBIN "baserom.gbc",$60945,$6094b - $60945
-	ld hl, Unknown_60992 ; $4992
+PokemonTower5ScriptPointers: ; 60945 (18:4945)
+	dw PokemonTower5Script0
+	dw Func_324c
+	dw EndTrainerBattle
+
+PokemonTower5Script0: ; 6094b (18:494b)
+	ld hl, CoordsData_60992 ; $4992
 	call ArePlayerCoordsInArray
 	jr c, .asm_60960
 	ld hl, $d72e
@@ -95476,11 +97774,21 @@ INCBIN "baserom.gbc",$60945,$6094b - $60945
 	ld [wJoypadForbiddenButtonsMask], a
 	ret
 
-Unknown_60992: ; 60992 (18:4992)
-INCBIN "baserom.gbc",$60992,$6099b - $60992
+CoordsData_60992: ; 60992 (18:4992)
+	db $08,$0A
+	db $08,$0B
+	db $09,$0A
+	db $09,$0B
+	db $FF
 
-PokemonTower5Texts: ; 6099b (18:499b)
-	dw PokemonTower5Text1, PokemonTower5Text2, PokemonTower5Text3, PokemonTower5Text4, PokemonTower5Text5, Predef5CText, PokemonTower5Text7
+PokemonTower5TextPointers: ; 6099b (18:499b)
+	dw PokemonTower5Text1
+	dw PokemonTower5Text2
+	dw PokemonTower5Text3
+	dw PokemonTower5Text4
+	dw PokemonTower5Text5
+	dw Predef5CText
+	dw PokemonTower5Text7
 
 PokemonTower5TrainerHeaders: ; 609a9 (18:49a9)
 PokemonTower5TrainerHeader0: ; 609a9 (18:49a9)
@@ -95519,7 +97827,7 @@ PokemonTower5TrainerHeader3: ; 609cd (18:49cd)
 	dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
 	dw PokemonTower5EndBattleText4 ; 0x4a39 TextEndBattle
 
-db $ff
+	db $ff
 
 PokemonTower5Text1: ; 609da (18:49da)
 	TX_FAR _PokemonTower5Text1
@@ -95628,7 +97936,7 @@ PokemonTower5Blocks: ; 60a89 (18:4a89)
 PokemonTower6_h: ; 0x60ae3 to 0x60aef (12 bytes) (id=147)
 	db $0f ; tileset
 	db POKEMONTOWER_6_HEIGHT, POKEMONTOWER_6_WIDTH ; dimensions (y, x)
-	dw PokemonTower6Blocks, PokemonTower6Texts, PokemonTower6Script ; blocks, texts, scripts
+	dw PokemonTower6Blocks, PokemonTower6TextPointers, PokemonTower6Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower6Object ; objects
@@ -95636,7 +97944,7 @@ PokemonTower6_h: ; 0x60ae3 to 0x60aef (12 bytes) (id=147)
 PokemonTower6Script: ; 60aef (18:4aef)
 	call EnableAutoTextBoxDrawing
 	ld hl, PokemonTower6TrainerHeaders
-	ld de, Unknown_60b0d ; $4b0d
+	ld de, PokemonTower6ScriptPointers
 	ld a, [W_POKEMONTOWER6CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_POKEMONTOWER6CURSCRIPT], a
@@ -95649,12 +97957,18 @@ Func_60b02: ; 60b02 (18:4b02)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_60b0d: ; 60b0d (18:4b0d)
-INCBIN "baserom.gbc",$60b0d,$60b17 - $60b0d
+PokemonTower6ScriptPointers: ; 60b0d (18:4b0d)
+	dw PokemonTower6Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw PokemonTower6Script3
+	dw PokemonTower6Script4
+
+PokemonTower6Script0: ; 60b17 (18:4b17)
 	ld a, [$d768]
 	bit 7, a
 	jp nz, CheckFightingMapTrainers
-	ld hl, Unknown_60b45 ; $4b45
+	ld hl, CoordsData_60b45 ; $4b45
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -95671,8 +97985,10 @@ INCBIN "baserom.gbc",$60b0d,$60b17 - $60b0d
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_60b45: ; 60b45 (18:4b45)
-INCBIN "baserom.gbc",$60b45,$60b48 - $60b45
+CoordsData_60b45: ; 60b45 (18:4b45)
+	db $10,$0A,$FF
+
+PokemonTower6Script4: ; 60b48 (18:4b48)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_60b02
@@ -95713,10 +98029,24 @@ INCBIN "baserom.gbc",$60b45,$60b48 - $60b45
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-INCBIN "baserom.gbc",$60ba1,$60bb1 - $60ba1
+PokemonTower6Script3: ; 60ba1 (18:4ba1)
+	ld a, [$cd38]
+	and a
+	ret nz
+	call Delay3
+	xor a
+	ld [W_POKEMONTOWER6CURSCRIPT], a
+	ld [W_CURMAPSCRIPT], a
+	ret
 
-PokemonTower6Texts: ; 60bb1 (18:4bb1)
-	dw PokemonTower6Text1, PokemonTower6Text2, PokemonTower6Text3, Predef5CText, Predef5CText, PokemonTower6Text6, PokemonTower6Text7
+PokemonTower6TextPointers: ; 60bb1 (18:4bb1)
+	dw PokemonTower6Text1
+	dw PokemonTower6Text2
+	dw PokemonTower6Text3
+	dw Predef5CText
+	dw Predef5CText
+	dw PokemonTower6Text6
+	dw PokemonTower6Text7
 
 PokemonTower6TrainerHeaders: ; 60bbf (18:4bbf)
 PokemonTower6TrainerHeader0: ; 60bbf (18:4bbf)
@@ -95746,7 +98076,7 @@ PokemonTower6TrainerHeader2: ; 60bd7 (18:4bd7)
 	dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
 	dw PokemonTower6EndBattleText3 ; 0x4c4c TextEndBattle
 
-db $ff
+	db $ff
 
 PokemonTower6Text1: ; 60be4 (18:4be4)
 	db $08 ; asm
@@ -95855,7 +98185,7 @@ INCBIN "baserom.gbc",$60cef,$60cf9 - $60cef
 PokemonTower7_h: ; 0x60cf9 to 0x60d05 (12 bytes) (id=148)
 	db $0f ; tileset
 	db POKEMONTOWER_7_HEIGHT, POKEMONTOWER_7_WIDTH ; dimensions (y, x)
-	dw PokemonTower7Blocks, PokemonTower7Texts, PokemonTower7Script ; blocks, texts, scripts
+	dw PokemonTower7Blocks, PokemonTower7TextPointers, PokemonTower7Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PokemonTower7Object ; objects
@@ -95863,7 +98193,7 @@ PokemonTower7_h: ; 0x60cf9 to 0x60d05 (12 bytes) (id=148)
 PokemonTower7Script: ; 60d05 (18:4d05)
 	call EnableAutoTextBoxDrawing
 	ld hl, PokemonTower7TrainerHeaders
-	ld de, Unknown_60d23 ; $4d23
+	ld de, PokemonTower7ScriptPointers
 	ld a, [W_POKEMONTOWER7CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_POKEMONTOWER7CURSCRIPT], a
@@ -95876,8 +98206,14 @@ Func_60d18: ; 60d18 (18:4d18)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_60d23: ; 60d23 (18:4d23)
-INCBIN "baserom.gbc",$60d23,$60d2d - $60d23
+PokemonTower7ScriptPointers: ; 60d23 (18:4d23)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw PokemonTower7Script2
+	dw PokemonTower7Script3
+	dw PokemonTower7Script4
+
+PokemonTower7Script2: ; 60d23 (18:4d23)
 	ld hl, wFlags_0xcd60
 	res 0, [hl]
 	ld a, [W_ISINBATTLE] ; $d057
@@ -95894,6 +98230,8 @@ INCBIN "baserom.gbc",$60d23,$60d2d - $60d23
 	ld [W_POKEMONTOWER7CURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
+
+PokemonTower7Script3: ; 60d56 (18:4d56)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -95917,6 +98255,8 @@ INCBIN "baserom.gbc",$60d23,$60d2d - $60d23
 	ld [W_POKEMONTOWER7CURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
+
+PokemonTower7Script4: ; 60d86 (18:4d86)
 	ld a, $ff
 	ld [wJoypadForbiddenButtonsMask], a
 	ld a, $43
@@ -95939,7 +98279,7 @@ INCBIN "baserom.gbc",$60d23,$60d2d - $60d23
 	ret
 
 Func_60db6: ; 60db6 (18:4db6)
-	ld hl, Unknown_60de3 ; $4de3
+	ld hl, CoordsData_60de3 ; $4de3
 	ld a, [$cf13]
 	dec a
 	swap a
@@ -95970,11 +98310,55 @@ Func_60db6: ; 60db6 (18:4db6)
 	inc hl
 	jr .asm_60dcb
 
-Unknown_60de3: ; 60de3 (18:4de3)
-INCBIN "baserom.gbc",$60de3,$60e3f - $60de3
+CoordsData_60de3: ; 60de3 (18:4de3)
+	db $0C,$09
+	dw MovementData_60e13
+	db $0B,$0A
+	dw MovementData_60e1b
+	db $0B,$0B
+	dw MovementData_60e22
+	db $0B,$0C
+	dw MovementData_60e22
+	db $0A,$0C
+	dw MovementData_60e28
+	db $09,$0B
+	dw MovementData_60e30
+	db $09,$0A
+	dw MovementData_60e22
+	db $09,$09
+	dw MovementData_60e22
+	db $08,$09
+	dw MovementData_60e37
+	db $07,$0A
+	dw MovementData_60e22
+	db $07,$0B
+	dw MovementData_60e22
+	db $07,$0C
+	dw MovementData_60e22
 
-PokemonTower7Texts: ; 60e3f (18:4e3f)
-	dw PokemonTower7Text1, PokemonTower7Text2, PokemonTower7Text3, PokemonTower7Text4
+MovementData_60e13: ; 60e13
+	db $C0,$00,$00,$00,$00,$00,$80,$FF
+
+MovementData_60e1b: ; 60e1b
+	db $00,$C0,$00,$00,$00,$00,$FF
+
+MovementData_60e22: ; 60e22
+	db $00,$00,$00,$00,$00,$FF
+
+MovementData_60e28: ; 60e28
+	db $80,$00,$00,$00,$00,$00,$00,$FF
+
+MovementData_60e30: ; 60e30
+	db $00,$00,$00,$80,$00,$00,$FF
+
+MovementData_60e37: ; 60e37
+	db $C0,$00,$00,$00,$00,$00,$00,$FF
+
+PokemonTower7TextPointers: ; 60e3f (18:4e3f)
+	dw PokemonTower7Text1
+	dw PokemonTower7Text2
+	dw PokemonTower7Text3
+	dw PokemonTower7Text4
 
 PokemonTower7TrainerHeaders: ; 60e47 (18:4e47)
 PokemonTower7TrainerHeader0: ; 60e47 (18:4e47)
@@ -96004,7 +98388,7 @@ PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f)
 	dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
 	dw PokemonTower7EndBattleText3 ; 0x4eec TextEndBattle
 
-db $ff
+	db $ff
 
 PokemonTower7Text1: ; 60e6c (18:4e6c)
 	db $08 ; asm
@@ -96112,7 +98496,7 @@ PokemonTower7Blocks: ; 60f20 (18:4f20)
 CeladonMart1_h: ; 0x60f7a to 0x60f86 (12 bytes) (id=122)
 	db $12 ; tileset
 	db CELADON_MART_1_HEIGHT, CELADON_MART_1_WIDTH ; dimensions (y, x)
-	dw CeladonMart1Blocks, CeladonMart1Texts, CeladonMart1Script ; blocks, texts, scripts
+	dw CeladonMart1Blocks, CeladonMart1TextPointers, CeladonMart1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeladonMart1Object ; objects
@@ -96120,8 +98504,10 @@ CeladonMart1_h: ; 0x60f7a to 0x60f86 (12 bytes) (id=122)
 CeladonMart1Script: ; 60f86 (18:4f86)
 	jp EnableAutoTextBoxDrawing
 
-CeladonMart1Texts: ; 60f89 (18:4f89)
-	dw CeladonMart1Text1, CeladonMart1Text2, CeladonMart1Text3
+CeladonMart1TextPointers: ; 60f89 (18:4f89)
+	dw CeladonMart1Text1
+	dw CeladonMart1Text2
+	dw CeladonMart1Text3
 
 CeladonMart1Text1: ; 60f8f (18:4f8f)
 	TX_FAR _CeladonMart1Text1
@@ -96295,7 +98681,7 @@ LoadFossilItemAndMonName: ; 610eb (18:50eb)
 ViridianForest_h: ; 0x61101 to 0x6110d (12 bytes) (id=51)
 	db $03 ; tileset
 	db VIRIDIAN_FOREST_HEIGHT, VIRIDIAN_FOREST_WIDTH ; dimensions (y, x)
-	dw ViridianForestBlocks, ViridianForestTexts, ViridianForestScript ; blocks, texts, scripts
+	dw ViridianForestBlocks, ViridianForestTextPointers, ViridianForestScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianForestObject ; objects
@@ -96303,17 +98689,32 @@ ViridianForest_h: ; 0x61101 to 0x6110d (12 bytes) (id=51)
 ViridianForestScript: ; 6110d (18:510d)
 	call EnableAutoTextBoxDrawing
 	ld hl, ViridianForestTrainerHeaders
-	ld de, ViridianForestScript_Unknown61120
+	ld de, ViridianForestScriptPointers
 	ld a, [W_VIRIDIANFORESTCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_VIRIDIANFORESTCURSCRIPT], a
 	ret
 
-ViridianForestScript_Unknown61120: ; 61120 (18:5120)
-INCBIN "baserom.gbc",$61120,$61126 - $61120
+ViridianForestScriptPointers: ; 61120 (18:5120)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-ViridianForestTexts: ; 61126 (18:5126)
-	dw ViridianForestText1, ViridianForestText2, ViridianForestText3, ViridianForestText4, Predef5CText, Predef5CText, Predef5CText, ViridianForestText8, ViridianForestText9, ViridianForestText10, ViridianForestText11, ViridianForestText12, ViridianForestText13, ViridianForestText14
+ViridianForestTextPointers: ; 61126 (18:5126)
+	dw ViridianForestText1
+	dw ViridianForestText2
+	dw ViridianForestText3
+	dw ViridianForestText4
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
+	dw ViridianForestText8
+	dw ViridianForestText9
+	dw ViridianForestText10
+	dw ViridianForestText11
+	dw ViridianForestText12
+	dw ViridianForestText13
+	dw ViridianForestText14
 
 ViridianForestTrainerHeaders: ; 61142 (18:5142)
 ViridianForestTrainerHeader0: ; 61142 (18:5142)
@@ -96343,7 +98744,7 @@ ViridianForestTrainerHeader2: ; 6115a (18:515a)
 	dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
 	dw ViridianForestEndBattleText3 ; 0x51ad TextEndBattle
 
-db $ff
+	db $ff
 
 ViridianForestText1: ; 61167 (18:5167)
 	TX_FAR _ViridianForestText1
@@ -96480,7 +98881,7 @@ ViridianForestObject: ; 0x611da (size=127)
 SSAnne1_h: ; 0x61259 to 0x61265 (12 bytes) (id=95)
 	db $0d ; tileset
 	db SS_ANNE_1_HEIGHT, SS_ANNE_1_WIDTH ; dimensions (y, x)
-	dw SSAnne1Blocks, SSAnne1Texts, SSAnne1Script ; blocks, texts, scripts
+	dw SSAnne1Blocks, SSAnne1TextPointers, SSAnne1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne1Object ; objects
@@ -96489,8 +98890,9 @@ SSAnne1Script: ; 61265 (18:5265)
 	call EnableAutoTextBoxDrawing
 	ret
 
-SSAnne1Texts: ; 61269 (18:5269)
-	dw SSAnne1Text1, SSAnne1Text2
+SSAnne1TextPointers: ; 61269 (18:5269)
+	dw SSAnne1Text1
+	dw SSAnne1Text2
 
 SSAnne1Text1: ; 6126d (18:526d)
 	TX_FAR _SSAnne1Text1
@@ -96541,14 +98943,14 @@ SSAnne1Blocks: ; 612df (18:52df)
 SSAnne2_h: ; 0x61393 to 0x6139f (12 bytes) (id=96)
 	db $0d ; tileset
 	db SS_ANNE_2_HEIGHT, SS_ANNE_2_WIDTH ; dimensions (y, x)
-	dw SSAnne2Blocks, SSAnne2Texts, SSAnne2Script ; blocks, texts, scripts
+	dw SSAnne2Blocks, SSAnne2TextPointers, SSAnne2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne2Object ; objects
 
 SSAnne2Script: ; 6139f (18:539f)
 	call EnableAutoTextBoxDrawing
-	ld hl, SSAnne2Scripts
+	ld hl, SSAnne2ScriptPointers
 	ld a, [W_SSANNE2CURSCRIPT]
 	jp CallFunctionInTable
 
@@ -96558,14 +98960,18 @@ Func_613ab: ; 613ab (18:53ab)
 	ld [W_SSANNE2CURSCRIPT], a
 	ret
 
-SSAnne2Scripts: ; 613b3 (18:53b3)
-	dw SSAnne2Script0, SSAnne2Script1, SSAnne2Script2, SSAnne2Script3, SSAnne2Script4
+SSAnne2ScriptPointers: ; 613b3 (18:53b3)
+	dw SSAnne2Script0
+	dw SSAnne2Script1
+	dw SSAnne2Script2
+	dw SSAnne2Script3
+	dw SSAnne2Script4
 
 SSAnne2Script4: ; 613bd (18:53bd)
 	ret
 
 SSAnne2Script0: ; 613be (18:53be)
-	ld hl, Unknown_61411 ; $5411
+	ld hl, CoordsData_61411 ; $5411
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $ff
@@ -96591,24 +98997,24 @@ SSAnne2Script0: ; 613be (18:53be)
 	ld a, [$ff00+$db]
 	cp $2
 	jr nz, .asm_61400 ; 0x613f9 $5
-	ld de, Unknown_6140c ; $540c
+	ld de, MovementData_6140c
 	jr .asm_61403 ; 0x613fe $3
 .asm_61400
-	ld de, Unknown_6140d ; $540d
+	ld de, MovementData_6140d
 .asm_61403
 	call MoveSprite
 	ld a, $1
 	ld [W_SSANNE2CURSCRIPT], a
 	ret
 
-Unknown_6140c: ; 6140c (18:540c)
-INCBIN "baserom.gbc",$6140c,$6140d - $6140c
+MovementData_6140c: ; 6140c (18:540c)
+	db $00
 
-Unknown_6140d: ; 6140d (18:540d)
-INCBIN "baserom.gbc",$6140d,$61411 - $6140d
+MovementData_6140d: ; 6140d (18:540d)
+	db $00,$00,$00,$FF
 
-Unknown_61411: ; 61411 (18:5411)
-INCBIN "baserom.gbc",$61411,$61416 - $61411
+CoordsData_61411: ; 61411 (18:5411)
+	db $08,$24,$08,$25,$FF
 
 Func_61416: ; 61416 (18:5416)
 	ld a, [W_XCOORD] ; $d362
@@ -96677,10 +99083,10 @@ SSAnne2Script2: ; 6146d (18:546d)
 	ld a, [$d362]
 	cp $25
 	jr nz, .asm_61497 ; 0x61490 $5
-	ld de, Unknown_614b9 ; $54b9
+	ld de, MovementData_614b9
 	jr .asm_6149a ; 0x61495 $3
 .asm_61497
-	ld de, Unknown_614b7 ; $54b7
+	ld de, MovementData_614b7
 .asm_6149a
 	ld a, $2
 	ld [$ff00+$8c], a
@@ -96695,11 +99101,11 @@ SSAnne2Script2: ; 6146d (18:546d)
 	ld [W_SSANNE2CURSCRIPT], a
 	ret
 
-Unknown_614b7: ; 614b7 (18:54b7)
-INCBIN "baserom.gbc",$614b7,$614b9 - $614b7
+MovementData_614b7: ; 614b7 (18:54b7)
+	db $C0,$00
 
-Unknown_614b9: ; 614b9 (18:54b9)
-INCBIN "baserom.gbc",$614b9,$614be - $614b9
+MovementData_614b9: ; 614b9 (18:54b9)
+	db $00,$00,$00,$00,$FF
 
 SSAnne2Script3: ; 614be (18:54be)
 	ld a, [$d730]
@@ -96716,8 +99122,10 @@ SSAnne2Script3: ; 614be (18:54be)
 	ld [W_SSANNE2CURSCRIPT], a
 	ret
 
-SSAnne2Texts: ; 614db (18:54db)
-	dw SSAnne2Text1, SSAnne2Text2, SSAnne2Text3
+SSAnne2TextPointers: ; 614db (18:54db)
+	dw SSAnne2Text1
+	dw SSAnne2Text2
+	dw SSAnne2Text3
 
 SSAnne2Text1: ; 614e1 (18:54e1)
 	TX_FAR _SSAnne2Text1
@@ -96788,7 +99196,7 @@ SSAnne2Blocks: ; 6156e (18:556e)
 SSAnne4_h: ; 0x61622 to 0x6162e (12 bytes) (id=98)
 	db $0d ; tileset
 	db SS_ANNE_4_HEIGHT, SS_ANNE_4_WIDTH ; dimensions (y, x)
-	dw SSAnne4Blocks, SSAnne4Texts, SSAnne4Script ; blocks, texts, scripts
+	dw SSAnne4Blocks, SSAnne4TextPointers, SSAnne4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne4Object ; objects
@@ -96796,7 +99204,7 @@ SSAnne4_h: ; 0x61622 to 0x6162e (12 bytes) (id=98)
 SSAnne4Script: ; 6162e (18:562e)
 	jp EnableAutoTextBoxDrawing
 
-SSAnne4Texts: ; 61631 (18:5631)
+SSAnne4TextPointers: ; 61631 (18:5631)
 	db "@"
 
 SSAnne4Object: ; 0x61632 (size=52)
@@ -96828,7 +99236,7 @@ SSAnne4Blocks: ; 61666 (18:5666)
 SSAnne5_h: ; 0x616a2 to 0x616ae (12 bytes) (id=99)
 	db $0d ; tileset
 	db SS_ANNE_5_HEIGHT, SS_ANNE_5_WIDTH ; dimensions (y, x)
-	dw SSAnne5Blocks, SSAnne5Texts, SSAnne5Script ; blocks, texts, scripts
+	dw SSAnne5Blocks, SSAnne5TextPointers, SSAnne5Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne5Object ; objects
@@ -96836,17 +99244,23 @@ SSAnne5_h: ; 0x616a2 to 0x616ae (12 bytes) (id=99)
 SSAnne5Script: ; 616ae (18:56ae)
 	call EnableAutoTextBoxDrawing
 	ld hl, SSAnneTrainerHeader0 ; $56d1
-	ld de, SSAnne5Script_Unknown616c1
+	ld de, SSAnne5ScriptPointers
 	ld a, [W_SSANNE5CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SSANNE5CURSCRIPT], a
 	ret
 
-SSAnne5Script_Unknown616c1: ; 616c1 (18:56c1)
-INCBIN "baserom.gbc",$616c1,$616c7 - $616c1
+SSAnne5ScriptPointers: ; 616c1 (18:56c1)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SSAnne5Texts: ; 616c7 (18:56c7)
-	dw SSAnne5Text1, SSAnne5Text2, SSAnne5Text3, SSAnne5Text4, SSAnne5Text5
+SSAnne5TextPointers: ; 616c7 (18:56c7)
+	dw SSAnne5Text1
+	dw SSAnne5Text2
+	dw SSAnne5Text3
+	dw SSAnne5Text4
+	dw SSAnne5Text5
 
 SSAnneTrainerHeaders: ; 616d1 (18:56d1)
 SSAnneTrainerHeader0: ; 616d1 (18:56d1)
@@ -96867,7 +99281,7 @@ SSAnneTrainerHeader1: ; 616dd (18:56dd)
 	dw SSAnneEndBattleText2 ; 0x5721 TextEndBattle
 	dw SSAnneEndBattleText2 ; 0x5721 TextEndBattle
 
-db $ff
+	db $ff
 
 SSAnne5Text1: ; 616ea (18:56ea)
 	TX_FAR _SSAnne5Text1
@@ -96943,7 +99357,7 @@ SSAnne5Blocks: ; 61761 (18:5761)
 SSAnne6_h: ; 0x617a7 to 0x617b3 (12 bytes) (id=100)
 	db $0d ; tileset
 	db SS_ANNE_6_HEIGHT, SS_ANNE_6_WIDTH ; dimensions (y, x)
-	dw SSAnne6Blocks, SSAnne6Texts, SSAnne6Script ; blocks, texts, scripts
+	dw SSAnne6Blocks, SSAnne6TextPointers, SSAnne6Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne6Object ; objects
@@ -96952,8 +99366,14 @@ SSAnne6Script: ; 617b3 (18:57b3)
 	call EnableAutoTextBoxDrawing
 	ret
 
-SSAnne6Texts: ; 617b7 (18:57b7)
-	dw SSAnne6Text1, SSAnne6Text2, SSAnne6Text3, SSAnne6Text4, SSAnne6Text5, SSAnne6Text6, SSAnne6Text7
+SSAnne6TextPointers: ; 617b7 (18:57b7)
+	dw SSAnne6Text1
+	dw SSAnne6Text2
+	dw SSAnne6Text3
+	dw SSAnne6Text4
+	dw SSAnne6Text5
+	dw SSAnne6Text6
+	dw SSAnne6Text7
 
 SSAnne6Text1: ; 617c5 (18:57c5)
 	TX_FAR _SSAnne6Text1
@@ -97041,16 +99461,16 @@ SSAnne6Blocks: ; 61851 (18:5851)
 SSAnne7_h: ; 0x61889 to 0x61895 (12 bytes) (id=101)
 	db $0d ; tileset
 	db SS_ANNE_7_HEIGHT, SS_ANNE_7_WIDTH ; dimensions (y, x)
-	dw SSAnne7Blocks, SSAnne7Texts, SSAnne7Script ; blocks, texts, scripts
+	dw SSAnne7Blocks, SSAnne7TextPointers, SSAnne7Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne7Object ; objects
 
 SSAnne7Script: ; 61895 (18:5895)
-	call SSAnne7Script_Unknown6189b
+	call SSAnne7Script_6189b
 	jp EnableAutoTextBoxDrawing
 
-SSAnne7Script_Unknown6189b: ; 6189b (18:589b)
+SSAnne7Script_6189b: ; 6189b (18:589b)
 	ld a, [$d803]
 	bit 1, a
 	ret nz
@@ -97058,8 +99478,10 @@ SSAnne7Script_Unknown6189b: ; 6189b (18:589b)
 	set 5, [hl]
 	ret
 
-SSAnne7Texts: ; 618a7 (18:58a7)
-	dw SSAnne7Text1, SSAnne7Text2, SSAnne7Text3
+SSAnne7TextPointers: ; 618a7 (18:58a7)
+	dw SSAnne7Text1
+	dw SSAnne7Text2
+	dw SSAnne7Text3
 
 SSAnne7Text1: ; 618ad (18:58ad)
 	db $08 ; asm
@@ -97163,7 +99585,7 @@ SSAnne7Blocks: ; 6195e (18:595e)
 SSAnne8_h: ; 0x6196a to 0x61976 (12 bytes) (id=102)
 	db $0d ; tileset
 	db SS_ANNE_8_HEIGHT, SS_ANNE_8_WIDTH ; dimensions (y, x)
-	dw SSAnne8Blocks, SSAnne8Texts, SSAnne8Script ; blocks, texts, scripts
+	dw SSAnne8Blocks, SSAnne8TextPointers, SSAnne8Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne8Object ; objects
@@ -97171,17 +99593,29 @@ SSAnne8_h: ; 0x6196a to 0x61976 (12 bytes) (id=102)
 SSAnne8Script: ; 61976 (18:5976)
 	call EnableAutoTextBoxDrawing
 	ld hl, SSAnne8TrainerHeaders
-	ld de, SSAnne8Script_Unknown61989
+	ld de, SSAnne8ScriptPointers
 	ld a, [W_SSANNE8CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SSANNE8CURSCRIPT], a
 	ret
 
-SSAnne8Script_Unknown61989: ; 61989 (18:5989)
-INCBIN "baserom.gbc",$61989,$6198f - $61989
+SSAnne8ScriptPointers: ; 61989 (18:5989)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SSAnne8Texts: ; 6198f (18:598f)
-	dw SSAnne8Text1, SSAnne8Text2, SSAnne8Text3, SSAnne8Text4, SSAnne8Text5, SSAnne8Text6, SSAnne8Text7, SSAnne8Text8, SSAnne8Text9, Predef5CText, SSAnne8Text11
+SSAnne8TextPointers: ; 6198f (18:598f)
+	dw SSAnne8Text1
+	dw SSAnne8Text2
+	dw SSAnne8Text3
+	dw SSAnne8Text4
+	dw SSAnne8Text5
+	dw SSAnne8Text6
+	dw SSAnne8Text7
+	dw SSAnne8Text8
+	dw SSAnne8Text9
+	dw Predef5CText
+	dw SSAnne8Text11
 
 SSAnne8TrainerHeaders: ; 619a5 (18:59a5)
 SSAnne8TrainerHeader0: ; 619a5 (18:59a5)
@@ -97220,7 +99654,7 @@ SSAnne8TrainerHeader3: ; 619c9 (18:59c9)
 	dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
 	dw SSAnne8EndBattleText4 ; 0x5a3d TextEndBattle
 
-db $ff
+	db $ff
 
 SSAnne8Text1: ; 619d6 (18:59d6)
 	db $08 ; asm
@@ -97361,7 +99795,7 @@ SSAnne8Blocks: ; 61adf (18:5adf)
 SSAnne9_h: ; 0x61b3f to 0x61b4b (12 bytes) (id=103)
 	db $0d ; tileset
 	db SS_ANNE_9_HEIGHT, SS_ANNE_9_WIDTH ; dimensions (y, x)
-	dw SSAnne9Blocks, SSAnne9Texts, SSAnne9Script ; blocks, texts, scripts
+	dw SSAnne9Blocks, SSAnne9TextPointers, SSAnne9Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne9Object ; objects
@@ -97372,17 +99806,31 @@ SSAnne9Script: ; 61b4b (18:5b4b)
 	xor a
 	ld [$cc3c], a
 	ld hl, SSAnne9TrainerHeaders
-	ld de, SSAnne9Script_Unknown61b64
+	ld de, SSAnne9ScriptPointers
 	ld a, [W_SSANNE9CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SSANNE9CURSCRIPT], a
 	ret
 
-SSAnne9Script_Unknown61b64: ; 61b64 (18:5b64)
-INCBIN "baserom.gbc",$61b64,$61b6a - $61b64
+SSAnne9ScriptPointers: ; 61b64 (18:5b64)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SSAnne9Texts: ; 61b6a (18:5b6a)
-	dw SSAnne9Text1, SSAnne9Text2, SSAnne9Text3, SSAnne9Text4, SSAnne9Text5, Predef5CText, SSAnne9Text7, SSAnne9Text8, Predef5CText, SSAnne9Text10, SSAnne9Text11, SSAnne9Text12, SSAnne9Text13
+SSAnne9TextPointers: ; 61b6a (18:5b6a)
+	dw SSAnne9Text1
+	dw SSAnne9Text2
+	dw SSAnne9Text3
+	dw SSAnne9Text4
+	dw SSAnne9Text5
+	dw Predef5CText
+	dw SSAnne9Text7
+	dw SSAnne9Text8
+	dw Predef5CText
+	dw SSAnne9Text10
+	dw SSAnne9Text11
+	dw SSAnne9Text12
+	dw SSAnne9Text13
 
 SSAnne9TrainerHeaders: ; 61b84 (18:5b84)
 SSAnne9TrainerHeader0: ; 61b84 (18:5b84)
@@ -97421,8 +99869,7 @@ SSAnne9TrainerHeader3: ; 61ba8 (18:5ba8)
 	dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
 	dw SSAnne9EndBattleText4 ; 0x5c83 TextEndBattle
 
-
-db $ff
+	db $ff
 
 SSAnne9Text1: ; 61bb5 (18:5bb5)
 	db $08 ; asm
@@ -97621,7 +100068,7 @@ SSAnne9Object: ; 0x61c8d (size=188)
 SSAnne10_h: ; 0x61d49 to 0x61d55 (12 bytes) (id=104)
 	db $0d ; tileset
 	db SS_ANNE_10_HEIGHT, SS_ANNE_10_WIDTH ; dimensions (y, x)
-	dw SSAnne10Blocks, SSAnne10Texts, SSAnne10Script ; blocks, texts, scripts
+	dw SSAnne10Blocks, SSAnne10TextPointers, SSAnne10Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SSAnne10Object ; objects
@@ -97629,17 +100076,29 @@ SSAnne10_h: ; 0x61d49 to 0x61d55 (12 bytes) (id=104)
 SSAnne10Script: ; 61d55 (18:5d55)
 	call EnableAutoTextBoxDrawing
 	ld hl, SSAnne10TrainerHeaders
-	ld de, SSAnne10Script_Unknown61d68
+	ld de, SSAnne10ScriptPointers
 	ld a, [W_SSANNE10CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SSANNE10CURSCRIPT], a
 	ret
 
-SSAnne10Script_Unknown61d68: ; 61d68 (18:5d68)
-INCBIN "baserom.gbc",$61d68,$61d6e - $61d68
+SSAnne10ScriptPointers: ; 61d68 (18:5d68)
+	dw CheckFightingMapTrainers
+	dw Func_324c
+	dw EndTrainerBattle
 
-SSAnne10Texts: ; 61d6e (18:5d6e)
-	dw SSAnne10Text1, SSAnne10Text2, SSAnne10Text3, SSAnne10Text4, SSAnne10Text5, SSAnne10Text6, SSAnne10Text7, SSAnne10Text8, Predef5CText, Predef5CText, Predef5CText
+SSAnne10TextPointers: ; 61d6e (18:5d6e)
+	dw SSAnne10Text1
+	dw SSAnne10Text2
+	dw SSAnne10Text3
+	dw SSAnne10Text4
+	dw SSAnne10Text5
+	dw SSAnne10Text6
+	dw SSAnne10Text7
+	dw SSAnne10Text8
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 SSAnne10TrainerHeaders: ; 61d84 (18:5d84)
 SSAnne10TrainerHeader0: ; 61d84 (18:5d84)
@@ -97696,7 +100155,7 @@ SSAnne10TrainerHeader5: ; 61dc0 (18:5dc0)
 	dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
 	dw SSAnne10EndBattleText6 ; 0x5e66 TextEndBattle
 
-db $ff
+	db $ff
 
 SSAnne10Text1: ; 61dcd (18:5dcd)
 	db $08 ; asm
@@ -97862,7 +100321,7 @@ SSAnne10Object: ; 0x61e75 (size=165)
 UndergroundPathNS_h: ; 0x61f1a to 0x61f26 (12 bytes) (id=119)
 	db $0b ; tileset
 	db UNDERGROUND_PATH_NS_HEIGHT, UNDERGROUND_PATH_NS_WIDTH ; dimensions (y, x)
-	dw UndergroundPathNSBlocks, UndergroundPathNSTexts, UndergroundPathNSScript ; blocks, texts, scripts
+	dw UndergroundPathNSBlocks, UndergroundPathNSTextPointers, UndergroundPathNSScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UndergroundPathNSObject ; objects
@@ -97870,7 +100329,7 @@ UndergroundPathNS_h: ; 0x61f1a to 0x61f26 (12 bytes) (id=119)
 UndergroundPathNSScript: ; 61f26 (18:5f26)
 	jp EnableAutoTextBoxDrawing
 
-UndergroundPathNSTexts: ; 61f29 (18:5f29)
+UndergroundPathNSTextPointers: ; 61f29 (18:5f29)
 	db "@"
 
 UndergroundPathNSObject: ; 0x61f2a (size=20)
@@ -97891,7 +100350,7 @@ UndergroundPathNSObject: ; 0x61f2a (size=20)
 UndergroundPathWE_h: ; 0x61f3e to 0x61f4a (12 bytes) (id=121)
 	db $0b ; tileset
 	db UNDERGROUND_PATH_WE_HEIGHT, UNDERGROUND_PATH_WE_WIDTH ; dimensions (y, x)
-	dw $41f4, UndergroundPathWETexts, UndergroundPathWEScript ; blocks, texts, scripts
+	dw $41f4, UndergroundPathWETextPointers, UndergroundPathWEScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UndergroundPathWEObject ; objects
@@ -97899,7 +100358,7 @@ UndergroundPathWE_h: ; 0x61f3e to 0x61f4a (12 bytes) (id=121)
 UndergroundPathWEScript: ; 61f4a (18:5f4a)
 	jp EnableAutoTextBoxDrawing
 
-UndergroundPathWETexts: ; 61f4d (18:5f4d)
+UndergroundPathWETextPointers: ; 61f4d (18:5f4d)
 	db "@"
 
 UndergroundPathWEObject: ; 0x61f4e (size=20)
@@ -97920,7 +100379,7 @@ UndergroundPathWEObject: ; 0x61f4e (size=20)
 DiglettsCave_h: ; 0x61f62 to 0x61f6e (12 bytes) (id=197)
 	db $11 ; tileset
 	db DIGLETTS_CAVE_HEIGHT, DIGLETTS_CAVE_WIDTH ; dimensions (y, x)
-	dw DiglettsCaveBlocks, DiglettsCaveTexts, DiglettsCaveScript ; blocks, texts, scripts
+	dw DiglettsCaveBlocks, DiglettsCaveTextPointers, DiglettsCaveScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw DiglettsCaveObject ; objects
@@ -97928,7 +100387,7 @@ DiglettsCave_h: ; 0x61f62 to 0x61f6e (12 bytes) (id=197)
 DiglettsCaveScript: ; 61f6e (18:5f6e)
 	jp EnableAutoTextBoxDrawing
 
-DiglettsCaveTexts: ; 61f71 (18:5f71)
+DiglettsCaveTextPointers: ; 61f71 (18:5f71)
 	db "@"
 
 DiglettsCaveObject: ; 0x61f72 (size=20)
@@ -97952,22 +100411,22 @@ DiglettsCaveBlocks: ; 61f86 (18:5f86)
 SilphCo11_h: ; 0x620ee to 0x620fa (12 bytes) (id=235)
 	db $10 ; tileset
 	db SILPH_CO_11F_HEIGHT, SILPH_CO_11F_WIDTH ; dimensions (y, x)
-	dw SilphCo11Blocks, SilphCo11Texts, SilphCo11Script ; blocks, texts, scripts
+	dw SilphCo11Blocks, SilphCo11TextPointers, SilphCo11Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SilphCo11Object ; objects
 
 SilphCo11Script: ; 620fa (18:60fa)
-	call SilphCo11Script_Unknown62110
+	call SilphCo11Script_62110
 	call EnableAutoTextBoxDrawing
 	ld hl, SilphCo11TrainerHeaders
-	ld de, Unknown_621cf ; $61cf
+	ld de, SilphCo11ScriptPointers
 	ld a, [W_SILPHCO11CURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_SILPHCO11CURSCRIPT], a
 	ret
 
-SilphCo11Script_Unknown62110: ; 62110 (18:6110)
+SilphCo11Script_62110: ; 62110 (18:6110)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -98071,12 +100530,19 @@ Func_621c8: ; 621c8 (18:61c8)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_621cf: ; 621cf (18:61cf)
-INCBIN "baserom.gbc",$621cf,$621db - $621cf
+SilphCo11ScriptPointers: ; 621cf (18:61cf)
+	dw SilphCo11Script0
+	dw Func_324c
+	dw EndTrainerBattle
+	dw SilphCo11Script3
+	dw SilphCo11Script4
+	dw SilphCo11Script5
+
+SilphCo11Script0: ; 621db (18:61db)
 	ld a, [$d838]
 	bit 7, a
 	ret nz
-	ld hl, Unknown_62211 ; $6211
+	ld hl, CoordsData_62211 ; $6211
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	ld a, [wWhichTrade] ; $cd3d
@@ -98091,16 +100557,18 @@ INCBIN "baserom.gbc",$621cf,$621db - $621cf
 	ld a, $3
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	call SetSpriteMovementBytesToFF
-	ld de, Unknown_62216 ; $6216
+	ld de, MovementData_62216
 	call MoveSprite
 	ld a, $3
 	jp Func_621c8
 
-Unknown_62211: ; 62211 (18:6211)
-INCBIN "baserom.gbc",$62211,$62216 - $62211
+CoordsData_62211: ; 62211 (18:6211)
+	db $0D,$06
+	db $0C,$07
+	db $FF
 
-Unknown_62216: ; 62216 (18:6216)
-INCBIN "baserom.gbc",$62216,$6221a - $62216
+MovementData_62216: ; 62216 (18:6216)
+	db $00,$00,$00,$FF
 
 Func_6221a: ; 6221a (18:621a)
 	ld [$d528], a
@@ -98109,6 +100577,8 @@ Func_6221a: ; 6221a (18:621a)
 	ld a, b
 	ld [$FF00+$8d], a
 	jp Func_34a6
+
+SilphCo11Script5: ; 62227 (18:6227)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_621c4
@@ -98138,6 +100608,8 @@ Func_6221a: ; 6221a (18:621a)
 	xor a
 	ld [wJoypadForbiddenButtonsMask], a
 	jp Func_621c8
+
+SilphCo11Script3: ; 6226a (18:626a)
 	ld a, [$d730]
 	bit 0, a
 	ret nz
@@ -98158,6 +100630,8 @@ Func_6221a: ; 6221a (18:621a)
 	call Delay3
 	ld a, $4
 	jp Func_621c8
+
+SilphCo11Script4: ; 62293 (18:6293)
 	ld hl, $d72d
 	set 6, [hl]
 	set 7, [hl]
@@ -98173,8 +100647,13 @@ Func_6221a: ; 6221a (18:621a)
 	ld a, $5
 	jp Func_621c8
 
-SilphCo11Texts: ; 622b7 (18:62b7)
-	dw SilphCo11Text1, SilphCo11Text2, SilphCo11Text3, SilphCo11Text4, SilphCo11Text5, SilphCo11Text6
+SilphCo11TextPointers: ; 622b7 (18:62b7)
+	dw SilphCo11Text1
+	dw SilphCo11Text2
+	dw SilphCo11Text3
+	dw SilphCo11Text4
+	dw SilphCo11Text5
+	dw SilphCo11Text6
 
 SilphCo11TrainerHeaders: ; 622c3 (18:62c3)
 SilphCo11TrainerHeader0: ; 622c3 (18:62c3)
@@ -98195,7 +100674,7 @@ SilphCo11TrainerHeader1: ; 622cf (18:62cf)
 	dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
 	dw SilphCo11EndBattleText2 ; 0x6362 TextEndBattle
 
-db $ff
+	db $ff
 
 SilphCo11Text1: ; 622dc (18:62dc)
 	db $08 ; asm
@@ -98455,7 +100934,12 @@ UnnamedText_62502: ; 62502 (18:6502)
 	TX_FAR _UnnamedText_62502
 	db "@"
 
-INCBIN "baserom.gbc",$62507,$62511 - $62507
+	ret
+	db "@"
+	
+	call EnableAutoTextBoxDrawing
+	ld a, $e
+	jp Func_3ef5
 
 UnnamedText_62511: ; 62511 (18:6511)
 	TX_FAR _UnnamedText_62511
@@ -103080,17 +105564,16 @@ SaveSAV: ;$770a
 	call DelayFrames
 	ld hl,GameSavedText
 	call PrintText
-	ld a,$b6        ;sound for saved game?
-	call $3740      ;sound-related
-	call $3748      ;sound-related
+	ld a,$b6        ;sound for saved game
+	call PlaySoundWaitForCurrent
+	call WaitForSoundToFinish
 	ld c,$1e
 	jp DelayFrames
 
 NowSavingString:
 	db "Now saving...@"
 
-SaveSAVConfirm:
-;$7768
+SaveSAVConfirm: ; $7768
 	call PrintText
 	FuncCoord 0, 7
 	ld hl,Coord
@@ -103610,7 +106093,6 @@ PadSRAM_FF: ; 73b8f (1c:7b8f)
 	ld a, $ff
 	jp FillMemory
 
-
 SECTION "bank1D",ROMX,BANK[$1D]
 
 CopycatsHouseF1Blocks: ; 74000 (1d:4000)
@@ -104235,7 +106717,7 @@ Unnamed_ASM_74872: ; 74872 (1d:4872)
 ViridianGym_h: ; 0x74897 to 0x748a3 (12 bytes) (id=45)
 	db $07 ; tileset
 	db VIRIDIAN_GYM_HEIGHT, VIRIDIAN_GYM_WIDTH ; dimensions (y, x)
-	dw ViridianGymBlocks, ViridianGymTexts, ViridianGymScript ; blocks, texts, scripts
+	dw ViridianGymBlocks, ViridianGymTextPointers, ViridianGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw ViridianGymObject ; objects
@@ -104246,7 +106728,7 @@ ViridianGymScript: ; 748a3 (1d:48a3)
 	call LoadGymLeaderAndCityName
 	call EnableAutoTextBoxDrawing
 	ld hl, ViridianGymTrainerHeaders
-	ld de, Unknown_748e1
+	ld de, ViridianGymScriptPointers
 	ld a, [W_VIRIDIANGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_VIRIDIANGYMCURSCRIPT], a
@@ -104264,20 +106746,19 @@ Func_748d6: ; 748d6 (1d:48d6)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_748e1: ; 748e1 (1d:48e1)
-	dw Func_748eb
+ViridianGymScriptPointers: ; 748e1 (1d:48e1)
+	dw ViridianGymScript0
 	dw Func_324c
 	dw EndTrainerBattle
-	dw Func_74988
-	dw Func_7496b
+	dw ViridianGymScript3
+	dw ViridianGymScript4
 
-
-Func_748eb: ; 748eb (1d:48eb)
+ViridianGymScript0: ; 748eb (1d:48eb)
 	ld a, [W_YCOORD] ; $d361
 	ld b, a
 	ld a, [W_XCOORD] ; $d362
 	ld c, a
-	ld hl, Unknown_74916
+	ld hl, ViridianGymArrowTilePlayerMovement
 	call Func_3442
 	cp $ff
 	jp z, CheckFightingMapTrainers
@@ -104292,83 +106773,78 @@ Func_748eb: ; 748eb (1d:48eb)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_74916: ; 74916 (1d:4916)
-dw $130b
-dw Unknown_74947
-dw $1301
-dw Unknown_7494a
-dw $1202
-dw Unknown_7494d
-dw $0b02
-dw Unknown_74950
-dw $100a
-dw Unknown_74953
-dw $0406
-dw Unknown_74956
-dw $050d
-dw Unknown_74959
-dw $040e
-dw Unknown_7495c
-dw $000f
-dw Unknown_7495f
-dw $010f
-dw Unknown_74962
-dw $0d10
-dw Unknown_74965
-dw $0d11
-dw Unknown_74968
-db $FF
+;format:
+;db y,x
+;dw pointer to movement
+ViridianGymArrowTilePlayerMovement: ; 74916 (1d:4916)
+	db $b,$13
+	dw ViridianGymArrowMovement1
+	db $1,$13
+	dw ViridianGymArrowMovement2
+	db $2,$12
+	dw ViridianGymArrowMovement3
+	db $2,$b
+	dw ViridianGymArrowMovement4
+	db $a,$10
+	dw ViridianGymArrowMovement5
+	db $6,$4
+	dw ViridianGymArrowMovement6
+	db $d,$5
+	dw ViridianGymArrowMovement7
+	db $e,$4
+	dw ViridianGymArrowMovement8
+	db $f,$0
+	dw ViridianGymArrowMovement9
+	db $f,$1
+	dw ViridianGymArrowMovement10
+	db $10,$d
+	dw ViridianGymArrowMovement11
+	db $11,$d
+	dw ViridianGymArrowMovement12
+	db $FF
 
-Unknown_74947: ; 74947 (1d:4947)
-db $40
-db $09
-db $FF
-Unknown_7494a: ; 7494a (1d:494a)
-db $20
-db $08
-db $FF
-Unknown_7494d: ; 7494d (1d:494d)
-db $80
-db $09
-db $FF
-Unknown_74950: ; 74950 (1d:4950)
-db $10
-db $06
-db $FF
-Unknown_74953: ; 74953 (1d:4953)
-db $80
-db $02
-db $FF
-Unknown_74956: ; 74956 (1d:4956)
-db $80
-db $07
-db $FF
-Unknown_74959: ; 74959 (1d:4959)
-db $10
-db $08
-db $FF
-Unknown_7495c: ; 7495c (1d:495c)
-db $10
-db $09
-db $FF
-Unknown_7495f: ; 7495f (1d:495f)
-db $40
-db $08
-db $FF
-Unknown_74962: ; 74962 (1d:4962)
-db $40
-db $06
-db $FF
-Unknown_74965: ; 74965 (1d:4965)
-db $20
-db $06
-db $FF
-Unknown_74968: ; 74968 (1d:4968)
-db $20
-db $0C
-db $FF
+;format: direction, count
+;right:	$10
+;left:	$20
+;up:	$40
+;down:	$80
+ViridianGymArrowMovement1: ; 74947 (1d:4947)
+	db $40,$09,$FF
 
-Func_7496b: ; 7496b (1d:496b)
+ViridianGymArrowMovement2: ; 7494a (1d:494a)
+	db $20,$08,$FF
+
+ViridianGymArrowMovement3: ; 7494d (1d:494d)
+	db $80,$09,$FF
+
+ViridianGymArrowMovement4: ; 74950 (1d:4950)
+	db $10,$06,$FF
+
+ViridianGymArrowMovement5: ; 74953 (1d:4953)
+	db $80,$02,$FF
+
+ViridianGymArrowMovement6: ; 74956 (1d:4956)
+	db $80,$07,$FF
+
+ViridianGymArrowMovement7: ; 74959 (1d:4959)
+	db $10,$08,$FF
+
+ViridianGymArrowMovement8: ; 7495c (1d:495c)
+	db $10,$09,$FF
+
+ViridianGymArrowMovement9: ; 7495f (1d:495f)
+	db $40,$08,$FF
+
+ViridianGymArrowMovement10: ; 74962 (1d:4962)
+	db $40,$06,$FF
+
+ViridianGymArrowMovement11: ; 74965 (1d:4965)
+	db $20,$06,$FF
+
+ViridianGymArrowMovement12: ; 74968 (1d:4968)
+	db $20,$0C,$FF
+
+ViridianGymScript4: ; 7496b (1d:496b)
 	ld a, [$cd38]
 	and a
 	jr nz, .asm_74980
@@ -104384,7 +106860,7 @@ Func_7496b: ; 7496b (1d:496b)
 	ld hl, Func_44fd7
 	jp Bankswitch ; indirect jump to Func_44fd7 (44fd7 (11:4fd7))
 
-Func_74988: ; 74988 (1d:4988)
+ViridianGymScript3: ; 74988 (1d:4988)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_748d6
@@ -104429,8 +106905,21 @@ Unknown_74995: ; 74995 (1d:4995)
 	set 7, [hl]
 	jp Func_748d6
 
-ViridianGymTexts: ; 749ec (1d:49ec)
-	dw ViridianGymText1, ViridianGymText2, ViridianGymText3, ViridianGymText4, ViridianGymText5, ViridianGymText6, ViridianGymText7, ViridianGymText8, ViridianGymText9, ViridianGymText10, Predef5CText, ViridianGymText12, ViridianGymText13, ViridianGymText14
+ViridianGymTextPointers: ; 749ec (1d:49ec)
+	dw ViridianGymText1
+	dw ViridianGymText2
+	dw ViridianGymText3
+	dw ViridianGymText4
+	dw ViridianGymText5
+	dw ViridianGymText6
+	dw ViridianGymText7
+	dw ViridianGymText8
+	dw ViridianGymText9
+	dw ViridianGymText10
+	dw Predef5CText
+	dw ViridianGymText12
+	dw ViridianGymText13
+	dw ViridianGymText14
 
 ViridianGymTrainerHeaders: ; 74a08 (1d:4a08)
 ViridianGymTrainerHeader0: ; 74a08 (1d:4a08)
@@ -104505,7 +106994,7 @@ ViridianGymTrainerHeader7: ; 74a5c (1d:4a5c)
 	dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
 	dw ViridianGymEndBattleText8 ; 0x4bb1 TextEndBattle
 
-db $ff
+	db $ff
 
 ViridianGymText1: ; 74a69 (1d:4a69)
 	db $08 ; asm
@@ -104777,7 +107266,7 @@ ViridianGymBlocks: ; 74c47 (1d:4c47)
 PewterMart_h: ; 0x74ca1 to 0x74cad (12 bytes) (id=56)
 	db $02 ; tileset
 	db PEWTER_MART_HEIGHT, PEWTER_MART_WIDTH ; dimensions (y, x)
-	dw PewterMartBlocks, PewterMartTexts, PewterMartScript ; blocks, texts, scripts
+	dw PewterMartBlocks, PewterMartTextPointers, PewterMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw PewterMartObject ; objects
@@ -104788,8 +107277,10 @@ PewterMartScript: ; 74cad (1d:4cad)
 	ld [$cf0c], a
 	ret
 
-PewterMartTexts: ; 74cb6 (1d:4cb6)
-	dw PewterMartText1, PewterMartText2, PewterMartText3
+PewterMartTextPointers: ; 74cb6 (1d:4cb6)
+	dw PewterMartText1
+	dw PewterMartText2
+	dw PewterMartText3
 
 PewterMartText2: ; 74cbc (1d:4cbc)
 	db $08 ; asm
@@ -104832,7 +107323,7 @@ PewterMartObject: ; 0x74cda (size=38)
 UnknownDungeon1_h: ; 0x74d00 to 0x74d0c (12 bytes) (id=228)
 	db $11 ; tileset
 	db UNKNOWN_DUNGEON_1_HEIGHT, UNKNOWN_DUNGEON_1_WIDTH ; dimensions (y, x)
-	dw UnknownDungeon1Blocks, UnknownDungeon1Texts, UnknownDungeon1Script ; blocks, texts, scripts
+	dw UnknownDungeon1Blocks, UnknownDungeon1TextPointers, UnknownDungeon1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw UnknownDungeon1Object ; objects
@@ -104840,8 +107331,10 @@ UnknownDungeon1_h: ; 0x74d00 to 0x74d0c (12 bytes) (id=228)
 UnknownDungeon1Script: ; 74d0c (1d:4d0c)
 	jp EnableAutoTextBoxDrawing
 
-UnknownDungeon1Texts: ; 74d0f (1d:4d0f)
-	dw Predef5CText, Predef5CText, Predef5CText
+UnknownDungeon1TextPointers: ; 74d0f (1d:4d0f)
+	dw Predef5CText
+	dw Predef5CText
+	dw Predef5CText
 
 UnknownDungeon1Object: ; 0x74d15 (size=97)
 	db $7d ; border tile
@@ -104881,7 +107374,7 @@ UnknownDungeon1Blocks: ; 74d76 (1d:4d76)
 CeruleanHouse2_h: ; 0x74dfd to 0x74e09 (12 bytes) (id=230)
 	db $0d ; tileset
 	db CERULEAN_HOUSE_2_HEIGHT, CERULEAN_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw CeruleanHouse2Blocks, CeruleanHouse2Texts, CeruleanHouse2Script ; blocks, texts, scripts
+	dw CeruleanHouse2Blocks, CeruleanHouse2TextPointers, CeruleanHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CeruleanHouse2Object ; objects
@@ -104893,7 +107386,7 @@ CeruleanHouse2Script: ; 74e09 (1d:4e09)
 	ld [$cc3c], a
 	ret
 
-CeruleanHouse2Texts: ; 74e13 (1d:4e13)
+CeruleanHouse2TextPointers: ; 74e13 (1d:4e13)
 	dw CeruleanHouse2Text1
 
 CeruleanHouse2Text1: ; 74e15 (1d:4e15)
@@ -104940,7 +107433,7 @@ CeruleanHouse2Text1: ; 74e15 (1d:4e15)
 	jp TextScriptEnd
 
 UnnamedText_74e6d: ; 74e6d (1d:4e6d)
-db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF
+	db $8,BOULDERBADGE,CASCADEBADGE,THUNDERBADGE,RAINBOWBADGE,SOULBADGE,MARSHBADGE,VOLCANOBADGE,EARTHBADGE,$FF
 
 UnnamedText_74e77: ; 74e77 (1d:4e77)
 	TX_FAR _UnnamedText_74e77
@@ -104955,14 +107448,14 @@ UnnamedText_74e81: ; 74e81 (1d:4e81)
 	db "@"
 
 Unknown_74e86: ; 74e86 (1d:4e86)
-dw UnnamedText_74e96
-dw UnnamedText_74e9b
-dw UnnamedText_74ea0
-dw UnnamedText_74ea5
-dw UnnamedText_74eaa
-dw UnnamedText_74eaf
-dw UnnamedText_74eb4
-dw UnnamedText_74eb9
+	dw UnnamedText_74e96
+	dw UnnamedText_74e9b
+	dw UnnamedText_74ea0
+	dw UnnamedText_74ea5
+	dw UnnamedText_74eaa
+	dw UnnamedText_74eaf
+	dw UnnamedText_74eb4
+	dw UnnamedText_74eb9
 
 UnnamedText_74e96: ; 74e96 (1d:4e96)
 	TX_FAR _UnnamedText_74e96
@@ -105014,7 +107507,7 @@ CeruleanHouse2Object: ; 0x74ebe (size=34)
 	EVENT_DISP $4, $7, $2
 	EVENT_DISP $4, $7, $3
 
-Unknown_74ee0: ; 74ee0 (1d:4ee0)
+Func_74ee0: ; 74ee0 (1d:4ee0)
 	ld hl, UnnamedText_74f99
 	call PrintText
 	ld a, $13
@@ -105154,7 +107647,7 @@ VendingPrices: ; 75000 (1d:5000)
 FuchsiaHouse1_h: ; 0x7500c to 0x75018 (12 bytes) (id=153)
 	db $08 ; tileset
 	db FUCHSIA_HOUSE_1_HEIGHT, FUCHSIA_HOUSE_1_WIDTH ; dimensions (y, x)
-	dw FuchsiaHouse1Blocks, FuchsiaHouse1Texts, FuchsiaHouse1Script ; blocks, texts, scripts
+	dw FuchsiaHouse1Blocks, FuchsiaHouse1TextPointers, FuchsiaHouse1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaHouse1Object ; objects
@@ -105163,8 +107656,10 @@ FuchsiaHouse1Script: ; 75018 (1d:5018)
 	call EnableAutoTextBoxDrawing
 	ret
 
-FuchsiaHouse1Texts: ; 7501c (1d:501c)
-	dw FuchsiaHouse1Text1, FuchsiaHouse1Text2, FuchsiaHouse1Text3
+FuchsiaHouse1TextPointers: ; 7501c (1d:501c)
+	dw FuchsiaHouse1Text1
+	dw FuchsiaHouse1Text2
+	dw FuchsiaHouse1Text3
 
 FuchsiaHouse1Text1: ; 75022 (1d:5022)
 	TX_FAR _FuchsiaHouse1Text1
@@ -105199,7 +107694,7 @@ FuchsiaHouse1Object: ; 0x75031 (size=38)
 FuchsiaPokecenter_h: ; 0x75057 to 0x75063 (12 bytes) (id=154)
 	db $06 ; tileset
 	db FUCHSIA_POKECENTER_HEIGHT, FUCHSIA_POKECENTER_WIDTH ; dimensions (y, x)
-	dw FuchsiaPokecenterBlocks, FuchsiaPokecenterTexts, FuchsiaPokecenterScript ; blocks, texts, scripts
+	dw FuchsiaPokecenterBlocks, FuchsiaPokecenterTextPointers, FuchsiaPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaPokecenterObject ; objects
@@ -105208,8 +107703,11 @@ FuchsiaPokecenterScript: ; 75063 (1d:5063)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-FuchsiaPokecenterTexts: ; 75069 (1d:5069)
-	dw FuchsiaPokecenterText1, FuchsiaPokecenterText2, FuchsiaPokecenterText3, FuchsiaPokecenterText4
+FuchsiaPokecenterTextPointers: ; 75069 (1d:5069)
+	dw FuchsiaPokecenterText1
+	dw FuchsiaPokecenterText2
+	dw FuchsiaPokecenterText3
+	dw FuchsiaPokecenterText4
 
 FuchsiaPokecenterText1: ; 75071 (1d:5071)
 	db $ff
@@ -105247,7 +107745,7 @@ FuchsiaPokecenterObject: ; 0x7507d (size=44)
 FuchsiaHouse2_h: ; 0x750a9 to 0x750b5 (12 bytes) (id=155)
 	db $14 ; tileset
 	db FUCHSIA_HOUSE_2_HEIGHT, FUCHSIA_HOUSE_2_WIDTH ; dimensions (y, x)
-	dw FuchsiaHouse2Blocks, FuchsiaHouse2Texts, FuchsiaHouse2Script ; blocks, texts, scripts
+	dw FuchsiaHouse2Blocks, FuchsiaHouse2TextPointers, FuchsiaHouse2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaHouse2Object ; objects
@@ -105255,8 +107753,12 @@ FuchsiaHouse2_h: ; 0x750a9 to 0x750b5 (12 bytes) (id=155)
 FuchsiaHouse2Script: ; 750b5 (1d:50b5)
 	jp EnableAutoTextBoxDrawing
 
-FuchsiaHouse2Texts: ; 750b8 (1d:50b8)
-	dw FuchsiaHouse2Text1, Predef5CText, BoulderText, FuchsiaHouse2Text4, FuchsiaHouse2Text5
+FuchsiaHouse2TextPointers: ; 750b8 (1d:50b8)
+	dw FuchsiaHouse2Text1
+	dw Predef5CText
+	dw BoulderText
+	dw FuchsiaHouse2Text4
+	dw FuchsiaHouse2Text5
 
 FuchsiaHouse2Text1: ; 750c2 (1d:50c2)
 	db $08 ; asm
@@ -105393,22 +107895,28 @@ FuchsiaHouse2Blocks: ; 751ad (1d:51ad)
 SafariZoneEntrance_h: ; 0x751c1 to 0x751cd (12 bytes) (id=156)
 	db $0c ; tileset
 	db SAFARIZONEENTRANCE_HEIGHT, SAFARIZONEENTRANCE_WIDTH ; dimensions (y, x)
-	dw SafariZoneEntranceBlocks, SafariZoneEntranceTexts, SafariZoneEntranceScript ; blocks, texts, scripts
+	dw SafariZoneEntranceBlocks, SafariZoneEntranceTextPointers, SafariZoneEntranceScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw SafariZoneEntranceObject ; objects
 
 SafariZoneEntranceScript: ; 751cd (1d:51cd)
 	call EnableAutoTextBoxDrawing
-	ld hl, SafariZoneEntranceScripts
+	ld hl, SafariZoneEntranceScriptPointers
 	ld a, [W_SAFARIZONEENTRANCECURSCRIPT]
 	jp CallFunctionInTable
 
-SafariZoneEntranceScripts: ; 751d9 (1d:51d9)
-	dw SafariZoneEntranceScript0, SafariZoneEntranceScript1, SafariZoneEntranceScript2, SafariZoneEntranceScript3, SafariZoneEntranceScript4, SafariZoneEntranceScript5, SafariZoneEntranceScript6
+SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
+	dw SafariZoneEntranceScript0
+	dw SafariZoneEntranceScript1
+	dw SafariZoneEntranceScript2
+	dw SafariZoneEntranceScript3
+	dw SafariZoneEntranceScript4
+	dw SafariZoneEntranceScript5
+	dw SafariZoneEntranceScript6
 
 SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
-	ld hl, Unknown_75221
+	ld hl, CoordsData_75221
 	call ArePlayerCoordsInArray
 	ret nc
 	ld a, $3
@@ -105429,18 +107937,20 @@ SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
 .asm_7520f
 	ld a, $10
 	ld c, $1
-	call Unknown_752a3
+	call Func_752a3
 	ld a, $f0
 	ld [wJoypadForbiddenButtonsMask], a
 	ld a, $1
 	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
 	ret
 
-Unknown_75221: ; 75221 (1d:5221)
-db $2, $3, $2, $4, $ff
+CoordsData_75221: ; 75221 (1d:5221)
+	db $02,$03
+	db $02,$04
+	db $FF
 
 SafariZoneEntranceScript1: ; 75226 (1d:5226)
-	call Unknown_752b4
+	call Func_752b4
 	ret nz
 SafariZoneEntranceScript2: ; 7522a (1d:522a)
 	xor a
@@ -105455,7 +107965,7 @@ SafariZoneEntranceScript2: ; 7522a (1d:522a)
 	ret
 
 SafariZoneEntranceScript3: ; 75240 (1d:5240)
-	call Unknown_752b4
+	call Func_752b4
 	ret nz
 	xor a
 	ld [wJoypadForbiddenButtonsMask], a
@@ -105481,7 +107991,7 @@ SafariZoneEntranceScript5: ; 7524e (1d:524e)
 	ld [$da47], a
 	ld a, $80
 	ld c, $3
-	call Unknown_752a3
+	call Func_752a3
 	ld a, $4
 	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
 	jr .asm_75286 ; 0x7527d $7
@@ -105493,7 +108003,7 @@ SafariZoneEntranceScript5: ; 7524e (1d:524e)
 	ret
 
 SafariZoneEntranceScript4: ; 75287 (1d:5287)
-	call Unknown_752b4
+	call Func_752b4
 	ret nz
 	xor a
 	ld [wJoypadForbiddenButtonsMask], a
@@ -105502,14 +108012,14 @@ SafariZoneEntranceScript4: ; 75287 (1d:5287)
 	ret
 
 SafariZoneEntranceScript6: ; 75295 (1d:5295)
-	call Unknown_752b4
+	call Func_752b4
 	ret nz
 	call Delay3
 	ld a, [$cf0d]
 	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
 	ret
 
-Unknown_752a3: ; 752a3 (1d:52a3)
+Func_752a3: ; 752a3 (1d:52a3)
 	push af
 	ld b, $0
 	ld a, c
@@ -105519,13 +108029,18 @@ Unknown_752a3: ; 752a3 (1d:52a3)
 	call FillMemory
 	jp Func_3486
 
-Unknown_752b4: ; 752b4 (1d:52b4)
+Func_752b4: ; 752b4 (1d:52b4)
 	ld a, [$cd38]
 	and a
 	ret
 
-SafariZoneEntranceTexts: ; 752b9 (1d:52b9)
-	dw SafariZoneEntranceText1, SafariZoneEntranceText2, SafariZoneEntranceText3, SafariZoneEntranceText4, SafariZoneEntranceText5, SafariZoneEntranceText6
+SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
+	dw SafariZoneEntranceText1
+	dw SafariZoneEntranceText2
+	dw SafariZoneEntranceText3
+	dw SafariZoneEntranceText4
+	dw SafariZoneEntranceText5
+	dw SafariZoneEntranceText6
 
 SafariZoneEntranceText3: ; 752c5 (1d:52c5)
 SafariZoneEntranceText1: ; 752c5 (1d:52c5)
@@ -105578,7 +108093,7 @@ SafariZoneEntranceText4: ; 752ca (1d:52ca)
 	ld [$d70e], a
 	ld a, $40
 	ld c, $3
-	call Unknown_752a3
+	call Func_752a3
 	ld hl, $d790
 	set 7, [hl]
 	res 6, [hl]
@@ -105591,7 +108106,7 @@ SafariZoneEntranceText4: ; 752ca (1d:52ca)
 .asm_7534c
 	ld a, $80
 	ld c, $1
-	call Unknown_752a3
+	call Func_752a3
 	ld a, $4
 	ld [W_SAFARIZONEENTRANCECURSCRIPT], a
 .asm_75358
@@ -105626,7 +108141,7 @@ SafariZoneEntranceText5: ; 7536f (1d:536f)
 	ld [$c109], a
 	ld a, $80
 	ld c, $3
-	call Unknown_752a3
+	call Func_752a3
 	ld hl, $d790
 	res 6, [hl]
 	res 7, [hl]
@@ -105640,7 +108155,7 @@ SafariZoneEntranceText5: ; 7536f (1d:536f)
 	ld [$c109], a
 	ld a, $40
 	ld c, $1
-	call Unknown_752a3
+	call Func_752a3
 	ld a, $5
 	ld [$cf0d], a
 .asm_753b3
@@ -105713,7 +108228,7 @@ SafariZoneEntranceBlocks: ; 75425 (1d:5425)
 FuchsiaGym_h: ; 0x75431 to 0x7543d (12 bytes) (id=157)
 	db $07 ; tileset
 	db FUCHSIA_GYM_HEIGHT, FUCHSIA_GYM_WIDTH ; dimensions (y, x)
-	dw FuchsiaGymBlocks, FuchsiaGymTexts, FuchsiaGymScript ; blocks, texts, scripts
+	dw FuchsiaGymBlocks, FuchsiaGymTextPointers, FuchsiaGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaGymObject ; objects
@@ -105722,7 +108237,7 @@ FuchsiaGymScript: ; 7543d (1d:543d)
 	call FuchsiaGymScript_Unknown75453
 	call EnableAutoTextBoxDrawing
 	ld hl, FuchsiaGymTrainerHeaders
-	ld de, Unknown_75482
+	ld de, FuchsiaGymScriptPointers
 	ld a, [W_FUCHSIAGYMCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_FUCHSIAGYMCURSCRIPT], a
@@ -105750,13 +108265,13 @@ Func_75477: ; 75477 (1d:5477)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_75482: ; 75482 (1d:5482)
+FuchsiaGymScriptPointers: ; 75482 (1d:5482)
 	dw CheckFightingMapTrainers
 	dw Func_324c
 	dw EndTrainerBattle
-	dw Func_7548a
+	dw FuchsiaGymScript3
 
-Func_7548a: ; 7548a (1d:548a)
+FuchsiaGymScript3: ; 7548a (1d:548a)
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
 	jp z, Func_75477
@@ -105791,8 +108306,18 @@ Unknown_75497: ; 75497 (1d:5497)
 	ld [$d792], a
 	jp Func_75477
 
-FuchsiaGymTexts: ; 754d5 (1d:54d5)
-	dw FuchsiaGymText1, FuchsiaGymText2, FuchsiaGymText3, FuchsiaGymText4, FuchsiaGymText5, FuchsiaGymText6, FuchsiaGymText7, FuchsiaGymText8, FuchsiaGymText9, FuchsiaGymText10, FuchsiaGymText11
+FuchsiaGymTextPointers: ; 754d5 (1d:54d5)
+	dw FuchsiaGymText1
+	dw FuchsiaGymText2
+	dw FuchsiaGymText3
+	dw FuchsiaGymText4
+	dw FuchsiaGymText5
+	dw FuchsiaGymText6
+	dw FuchsiaGymText7
+	dw FuchsiaGymText8
+	dw FuchsiaGymText9
+	dw FuchsiaGymText10
+	dw FuchsiaGymText11
 
 FuchsiaGymTrainerHeaders: ; 754eb (1d:54eb)
 FuchsiaGymTrainerHeader0: ; 754eb (1d:54eb)
@@ -105849,7 +108374,7 @@ FuchsiaGymTrainerHeader6: ; 75527 (1d:5527)
 	dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
 	dw FuchsiaGymEndBattleText6 ; 0x5630 TextEndBattle
 
-db $ff
+	db $ff
 
 FuchsiaGymText1: ; 75534 (1d:5534)
 	db $08 ; asm
@@ -106071,7 +108596,7 @@ FuchsiaGymBlocks: ; 756aa (1d:56aa)
 FuchsiaMeetingRoom_h: ; 0x756d7 to 0x756e3 (12 bytes) (id=158)
 	db $14 ; tileset
 	db FUCHSIAMEETINGROOM_HEIGHT, FUCHSIAMEETINGROOM_WIDTH ; dimensions (y, x)
-	dw FuchsiaMeetingRoomBlocks, FuchsiaMeetingRoomTexts, FuchsiaMeetingRoomScript ; blocks, texts, scripts
+	dw FuchsiaMeetingRoomBlocks, FuchsiaMeetingRoomTextPointers, FuchsiaMeetingRoomScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw FuchsiaMeetingRoomObject ; objects
@@ -106080,8 +108605,10 @@ FuchsiaMeetingRoomScript: ; 756e3 (1d:56e3)
 	call EnableAutoTextBoxDrawing
 	ret
 
-FuchsiaMeetingRoomTexts: ; 756e7 (1d:56e7)
-	dw FuchsiaMeetingRoomText1, FuchsiaMeetingRoomText2, FuchsiaMeetingRoomText3
+FuchsiaMeetingRoomTextPointers: ; 756e7 (1d:56e7)
+	dw FuchsiaMeetingRoomText1
+	dw FuchsiaMeetingRoomText2
+	dw FuchsiaMeetingRoomText3
 
 FuchsiaMeetingRoomText1: ; 756ed (1d:56ed)
 	TX_FAR _FuchsiaMeetingRoomText1
@@ -106119,7 +108646,7 @@ FuchsiaMeetingRoomBlocks: ; 75722 (1d:5722)
 CinnabarGym_h: ; 0x7573e to 0x7574a (12 bytes) (id=166)
 	db $16 ; tileset
 	db CINNABAR_GYM_HEIGHT, CINNABAR_GYM_WIDTH ; dimensions (y, x)
-	dw CinnabarGymBlocks, CinnabarGymTexts, CinnabarGymScript ; blocks, texts, scripts
+	dw CinnabarGymBlocks, CinnabarGymTextPointers, CinnabarGymScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CinnabarGymObject ; objects
@@ -106127,7 +108654,7 @@ CinnabarGym_h: ; 0x7573e to 0x7574a (12 bytes) (id=166)
 CinnabarGymScript: ; 7574a (1d:574a)
 	call CinnabarGymScript_Unknown75759
 	call EnableAutoTextBoxDrawing
-	ld hl, CinnabarGymScripts
+	ld hl, CinnabarGymScriptPointers
 	ld a, [W_CINNABARGYMCURSCRIPT]
 	jp CallFunctionInTable
 
@@ -106167,8 +108694,11 @@ Unknown_757a0: ; 757a0 (1d:57a0)
 	ld [wTrainerHeaderFlagBit], a
 	ret
 
-CinnabarGymScripts: ; 757a6 (1d:57a6)
-	dw CinnabarGymScript0, CinnabarGymScript1, CinnabarGymScript2, CinnabarGymScript3
+CinnabarGymScriptPointers: ; 757a6 (1d:57a6)
+	dw CinnabarGymScript0
+	dw CinnabarGymScript1
+	dw CinnabarGymScript2
+	dw CinnabarGymScript3
 
 CinnabarGymScript0: ; 757ae (1d:57ae)
 	ld a, [$da38]
@@ -106179,10 +108709,10 @@ CinnabarGymScript0: ; 757ae (1d:57ae)
 	jr nz, .asm_757c3 ; 0x757b7 $a
 	ld a, $4
 	ld [$d528], a
-	ld de, Unknown_757d7
+	ld de, MovementData_757d7
 	jr .asm_757cb ; 0x757c1 $8
 .asm_757c3
-	ld de, Unknown_757da
+	ld de, MovementData_757da
 	ld a, $1
 	ld [$d528], a
 .asm_757cb
@@ -106192,11 +108722,11 @@ CinnabarGymScript0: ; 757ae (1d:57ae)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_757d7: ; 757d7 (1d:57d7)
-INCBIN "baserom.gbc",$757d7,$757da - $757d7
+MovementData_757d7: ; 757d7 (1d:57d7)
+	db $80,$40,$FF
 
-Unknown_757da: ; 757da (1d:57da)
-INCBIN "baserom.gbc",$757da,$757dc - $757da
+MovementData_757da: ; 757da (1d:57da)
+	db $80,$FF
 
 CinnabarGymScript1: ; 757dc (1d:57dc)
 	ld a, [$d730]
@@ -106291,11 +108821,19 @@ Unknown_75857: ; 75857 (1d:5857)
 	set 5, [hl]
 	jp Unknown_75792
 
-CinnabarGymTexts: ; 7589f (1d:589f)
-	dw CinnabarGymText1, CinnabarGymText2, CinnabarGymText3, CinnabarGymText4, CinnabarGymText5, CinnabarGymText6, CinnabarGymText7, CinnabarGymText8, CinnabarGymText9
-dw UnnamedText_75925 ;CinnabarGymText 10: ; 0x75925
-dw ReceivedTM38Text  ;CinnabarGymText 11: ; 0x7592a
-dw TM38NoRoomText    ;CinnabarGymText 12: ; 0x75934
+CinnabarGymTextPointers: ; 7589f (1d:589f)
+	dw CinnabarGymText1
+	dw CinnabarGymText2
+	dw CinnabarGymText3
+	dw CinnabarGymText4
+	dw CinnabarGymText5
+	dw CinnabarGymText6
+	dw CinnabarGymText7
+	dw CinnabarGymText8
+	dw CinnabarGymText9
+	dw UnnamedText_75925
+	dw ReceivedTM38Text
+	dw TM38NoRoomText
 
 Unknown_758b7: ; 758b7 (1d:58b7)
 	ld a, [H_DOWNARROWBLINKCNT2] ; $FF00+$8c
@@ -106623,7 +109161,7 @@ CinnabarGymBlocks: ; 75b26 (1d:5b26)
 Lab1_h: ; 0x75b80 to 0x75b8c (12 bytes) (id=167)
 	db $14 ; tileset
 	db CINNABAR_LAB_1_HEIGHT, CINNABAR_LAB_1_WIDTH ; dimensions (y, x)
-	dw Lab1Blocks, Lab1Texts, Lab1Script ; blocks, texts, scripts
+	dw Lab1Blocks, Lab1TextPointers, Lab1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Lab1Object ; objects
@@ -106632,8 +109170,12 @@ Lab1Script: ; 75b8c (1d:5b8c)
 	call EnableAutoTextBoxDrawing
 	ret
 
-Lab1Texts: ; 75b90 (1d:5b90)
-	dw Lab1Text1, Lab1Text2, Lab1Text3, Lab1Text4, Lab1Text5
+Lab1TextPointers: ; 75b90 (1d:5b90)
+	dw Lab1Text1
+	dw Lab1Text2
+	dw Lab1Text3
+	dw Lab1Text4
+	dw Lab1Text5
 
 Lab1Text1: ; 75b9a (1d:5b9a)
 	TX_FAR _Lab1Text1
@@ -106687,7 +109229,7 @@ Lab1Blocks: ; 75bf1 (1d:5bf1)
 Lab2_h: ; 0x75c15 to 0x75c21 (12 bytes) (id=168)
 	db $14 ; tileset
 	db CINNABAR_LAB_2_HEIGHT, CINNABAR_LAB_2_WIDTH ; dimensions (y, x)
-	dw Lab2Blocks, Lab2Texts, Lab2Script ; blocks, texts, scripts
+	dw Lab2Blocks, Lab2TextPointers, Lab2Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Lab2Object ; objects
@@ -106695,8 +109237,10 @@ Lab2_h: ; 0x75c15 to 0x75c21 (12 bytes) (id=168)
 Lab2Script: ; 75c21 (1d:5c21)
 	jp EnableAutoTextBoxDrawing
 
-Lab2Texts: ; 75c24 (1d:5c24)
-	dw Lab2Text1, Lab2Text2, Lab2Text3
+Lab2TextPointers: ; 75c24 (1d:5c24)
+	dw Lab2Text1
+	dw Lab2Text2
+	dw Lab2Text3
 
 Lab2Text1: ; 75c2a (1d:5c2a)
 	TX_FAR _Lab2Text1
@@ -106741,7 +109285,7 @@ Lab2Blocks: ; 75c6b (1d:5c6b)
 Lab3_h: ; 0x75c7b to 0x75c87 (12 bytes) (id=169)
 	db $14 ; tileset
 	db CINNABAR_LAB_3_HEIGHT, CINNABAR_LAB_3_WIDTH ; dimensions (y, x)
-	dw Lab3Blocks, Lab3Texts, Lab3Script ; blocks, texts, scripts
+	dw Lab3Blocks, Lab3TextPointers, Lab3Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Lab3Object ; objects
@@ -106749,8 +109293,12 @@ Lab3_h: ; 0x75c7b to 0x75c87 (12 bytes) (id=169)
 Lab3Script: ; 75c87 (1d:5c87)
 	jp EnableAutoTextBoxDrawing
 
-Lab3Texts: ; 75c8a (1d:5c8a)
-	dw Lab3Text1, Lab3Text2, Lab3Text3, Lab3Text4, Lab3Text5
+Lab3TextPointers: ; 75c8a (1d:5c8a)
+	dw Lab3Text1
+	dw Lab3Text2
+	dw Lab3Text3
+	dw Lab3Text4
+	dw Lab3Text5
 
 Lab3Text1: ; 75c94 (1d:5c94)
 	db $08 ; asm
@@ -106832,7 +109380,7 @@ Lab3Blocks: ; 75d15 (1d:5d15)
 Lab4_h: ; 0x75d25 to 0x75d31 (12 bytes) (id=170)
 	db $14 ; tileset
 	db CINNABAR_LAB_4_HEIGHT, CINNABAR_LAB_4_WIDTH ; dimensions (y, x)
-	dw Lab4Blocks, Lab4Texts, Lab4Script ; blocks, texts, scripts
+	dw Lab4Blocks, Lab4TextPointers, Lab4Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw Lab4Object ; objects
@@ -106840,8 +109388,9 @@ Lab4_h: ; 0x75d25 to 0x75d31 (12 bytes) (id=170)
 Lab4Script: ; 75d31 (1d:5d31)
 	jp EnableAutoTextBoxDrawing
 
-Lab4Texts: ; 75d34 (1d:5d34)
-	dw Lab4Text1, Lab4Text2
+Lab4TextPointers: ; 75d34 (1d:5d34)
+	dw Lab4Text1
+	dw Lab4Text2
 
 Unknown_75d38: ; 75d38 (1d:5d38)
 	xor a
@@ -106974,7 +109523,7 @@ Lab4Blocks: ; 75e10 (1d:5e10)
 CinnabarPokecenter_h: ; 0x75e20 to 0x75e2c (12 bytes) (id=171)
 	db $06 ; tileset
 	db CINNABAR_POKECENTER_HEIGHT, CINNABAR_POKECENTER_WIDTH ; dimensions (y, x)
-	dw CinnabarPokecenterBlocks, CinnabarPokecenterTexts, CinnabarPokecenterScript ; blocks, texts, scripts
+	dw CinnabarPokecenterBlocks, CinnabarPokecenterTextPointers, CinnabarPokecenterScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CinnabarPokecenterObject ; objects
@@ -106983,8 +109532,11 @@ CinnabarPokecenterScript: ; 75e2c (1d:5e2c)
 	call Func_22fa
 	jp EnableAutoTextBoxDrawing
 
-CinnabarPokecenterTexts: ; 75e32 (1d:5e32)
-	dw CinnabarPokecenterText1, CinnabarPokecenterText2, CinnabarPokecenterText3, CinnabarPokecenterText4
+CinnabarPokecenterTextPointers: ; 75e32 (1d:5e32)
+	dw CinnabarPokecenterText1
+	dw CinnabarPokecenterText2
+	dw CinnabarPokecenterText3
+	dw CinnabarPokecenterText4
 
 CinnabarPokecenterText1: ; 75e3a (1d:5e3a)
 	db $ff
@@ -107022,7 +109574,7 @@ CinnabarPokecenterObject: ; 0x75e46 (size=44)
 CinnabarMart_h: ; 0x75e72 to 0x75e7e (12 bytes) (id=172)
 	db $02 ; tileset
 	db CINNABAR_MART_HEIGHT, CINNABAR_MART_WIDTH ; dimensions (y, x)
-	dw CinnabarMartBlocks, CinnabarMartTexts, CinnabarMartScript ; blocks, texts, scripts
+	dw CinnabarMartBlocks, CinnabarMartTextPointers, CinnabarMartScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CinnabarMartObject ; objects
@@ -107030,8 +109582,10 @@ CinnabarMart_h: ; 0x75e72 to 0x75e7e (12 bytes) (id=172)
 CinnabarMartScript: ; 75e7e (1d:5e7e)
 	jp EnableAutoTextBoxDrawing
 
-CinnabarMartTexts: ; 75e81 (1d:5e81)
-	dw CinnabarMartText1, CinnabarMartText2, CinnabarMartText3
+CinnabarMartTextPointers: ; 75e81 (1d:5e81)
+	dw CinnabarMartText1
+	dw CinnabarMartText2
+	dw CinnabarMartText3
 
 CinnabarMartText2: ; 75e87 (1d:5e87)
 	TX_FAR _CinnabarMartText2
@@ -107062,7 +109616,7 @@ CinnabarMartObject: ; 0x75e91 (size=38)
 CopycatsHouseF1_h: ; 0x75eb7 to 0x75ec3 (12 bytes) (id=175)
 	db $01 ; tileset
 	db COPYCATS_HOUSE_1F_HEIGHT, COPYCATS_HOUSE_1F_WIDTH ; dimensions (y, x)
-	dw CopycatsHouseF1Blocks, CopycatsHouseF1Texts, CopycatsHouseF1Script ; blocks, texts, scripts
+	dw CopycatsHouseF1Blocks, CopycatsHouseF1TextPointers, CopycatsHouseF1Script ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw CopycatsHouseF1Object ; objects
@@ -107070,8 +109624,10 @@ CopycatsHouseF1_h: ; 0x75eb7 to 0x75ec3 (12 bytes) (id=175)
 CopycatsHouseF1Script: ; 75ec3 (1d:5ec3)
 	jp EnableAutoTextBoxDrawing
 
-CopycatsHouseF1Texts: ; 75ec6 (1d:5ec6)
-	dw CopycatsHouseF1Text1, CopycatsHouseF1Text2, CopycatsHouseF1Text3
+CopycatsHouseF1TextPointers: ; 75ec6 (1d:5ec6)
+	dw CopycatsHouseF1Text1
+	dw CopycatsHouseF1Text2
+	dw CopycatsHouseF1Text3
 
 CopycatsHouseF1Text1: ; 75ecc (1d:5ecc)
 	TX_FAR _CopycatsHouseF1Text1
@@ -107111,14 +109667,14 @@ CopycatsHouseF1Object: ; 0x75ee3 (size=46)
 Gary_h: ; 75f11 (1d:5f11)
 	db $7 ;tileset
 	db $4, $4 ;Height, Width
-	dw GaryBlocks, GaryTexts, GaryScript
+	dw GaryBlocks, GaryTextPointers, GaryScript
 	db $0 ;No Connections
 
 	dw GaryObject
 
 GaryScript: ; 75f1d (1d:5f1d)
 	call EnableAutoTextBoxDrawing
-	ld hl, GaryScripts
+	ld hl, GaryScriptPointers
 	ld a, [W_GARYCURSCRIPT]
 	jp CallFunctionInTable
 
@@ -107128,7 +109684,7 @@ Function75f29: ; 75f29 (1d:5f29)
 	ld [W_GARYCURSCRIPT], a
 	ret
 
-GaryScripts: ; 75f31 (1d:5f31)
+GaryScriptPointers: ; 75f31 (1d:5f31)
 	dw GaryScript0
 	dw GaryScript1
 	dw GaryScript2
@@ -107139,7 +109695,7 @@ GaryScripts: ; 75f31 (1d:5f31)
 	dw GaryScript7
 	dw GaryScript8
 	dw GaryScript9
-	dw GaryScript10 ; 60b9
+	dw GaryScript10
 
 GaryScript0: ; 75f47 (1d:5f47)
 	ret
@@ -107236,7 +109792,7 @@ GaryScript4: ; 75fe4 (1d:5fe4)
 	ld a, $2
 	ld [$ff00+$8c], a
 	call SetSpriteMovementBytesToFF
-	ld de, Movement76014
+	ld de, MovementData_76014
 	ld a, $2
 	ld [$ff00+$8c], a
 	call MoveSprite
@@ -107248,8 +109804,8 @@ GaryScript4: ; 75fe4 (1d:5fe4)
 	ld [W_GARYCURSCRIPT], a
 	ret
 
-Movement76014: ; 76014 (1d:6014)
-	db $40,$40,$40,$40,$40,$ff
+MovementData_76014: ; 76014 (1d:6014)
+	db $40,$40,$40,$40,$40,$FF
 
 GaryScript5: ; 7601a (1d:601a)
 	ld a, [$d730]
@@ -107296,7 +109852,7 @@ GaryScript7: ; 7605f (1d:605f)
 	ld a, $5
 	ld [$ff00+$8c], a
 	call Function760c8
-	ld de, Movement76080
+	ld de, MovementData_76080
 	ld a, $2
 	ld [$ff00+$8c], a
 	call MoveSprite
@@ -107304,8 +109860,8 @@ GaryScript7: ; 7605f (1d:605f)
 	ld [W_GARYCURSCRIPT], a
 	ret
 
-Movement76080: ; 76080 (1d:6080)
-	db $40,$40,$ff
+MovementData_76080: ; 76080 (1d:6080)
+	db $40,$40,$FF
 
 GaryScript8: ; 76083 (1d:6083)
 	ld a, [$d730]
@@ -107355,8 +109911,12 @@ Function760c8; 0x760c8
 	ld [wJoypadForbiddenButtonsMask], a
 	ret
 
-GaryTexts: ; 760d6 (1d:60d6)
-	dw GaryText1, GaryText2, GaryText3, GaryText4, GaryText5
+GaryTextPointers: ; 760d6 (1d:60d6)
+	dw GaryText1
+	dw GaryText2
+	dw GaryText3
+	dw GaryText4
+	dw GaryText5
 
 GaryText1: ; 760e0 (1d:60e0)
 	db $08 ; asm
@@ -107437,7 +109997,7 @@ GaryBlocks: ; 7615f (1d:615f)
 Lorelei_h: ; 0x7616f to 0x7617b (12 bytes) (id=245)
 	db $07 ; tileset
 	db LORELEIS_ROOM_HEIGHT, LORELEIS_ROOM_WIDTH ; dimensions (y, x)
-	dw LoreleiBlocks, LoreleiTexts, LoreleiScript ; blocks, texts, scripts
+	dw LoreleiBlocks, LoreleiTextPointers, LoreleiScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw LoreleiObject ; objects
@@ -107446,7 +110006,7 @@ LoreleiScript: ; 7617b (1d:617b)
 	call LoreleiScript_Unknown76191
 	call EnableAutoTextBoxDrawing
 	ld hl, LoreleiTrainerHeaders
-	ld de, Unknown_761bb
+	ld de, LoreleiScriptPointers
 	ld a, [W_LORELEICURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_LORELEICURSCRIPT], a
@@ -107477,14 +110037,14 @@ Func_761b6: ; 761b6 (1d:61b6)
 	ld [W_LORELEICURSCRIPT], a
 	ret
 
-Unknown_761bb: ; 761bb (1d:61bb)
-dw Func_761e2
-dw Func_324c
-dw Func_7623f
-dw Func_7622c
-dw Func_761c5
+LoreleiScriptPointers: ; 761bb (1d:61bb)
+	dw LoreleiScript0
+	dw Func_324c
+	dw LoreleiScript2
+	dw LoreleiScript3
+	dw LoreleiScript4
 
-Func_761c5: ; 761c5 (1d:61c5)
+LoreleiScript4: ; 761c5 (1d:61c5)
 	ret
 asm_761c6: ; 761c6 (1d:61c6)
 	ld hl, $ccd3
@@ -107502,8 +110062,8 @@ asm_761c6: ; 761c6 (1d:61c6)
 	ld [W_LORELEICURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
-Func_761e2: ; 761e2 (1d:61e2)
-	ld hl, Unknown_76223
+LoreleiScript0: ; 761e2 (1d:61e2)
+	ld hl, CoordsData_76223
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -107532,10 +110092,14 @@ Func_761e2: ; 761e2 (1d:61e2)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_76223: ; 76223 (1d:6223)
-INCBIN "baserom.gbc",$76223,$7622c - $76223
+CoordsData_76223: ; 76223 (1d:6223)
+	db $0A,$04
+	db $0A,$05
+	db $0B,$04
+	db $0B,$05
+	db $FF
 
-Func_7622c: ; 7622c (1d:622c)
+LoreleiScript3: ; 7622c (1d:622c)
 	ld a, [$cd38]
 	and a
 	ret nz
@@ -107545,7 +110109,7 @@ Func_7622c: ; 7622c (1d:622c)
 	ld [W_LORELEICURSCRIPT], a
 	ld [W_CURMAPSCRIPT], a
 	ret
-Func_7623f: ; 7623f (1d:623f)
+LoreleiScript2: ; 7623f (1d:623f)
 	call EndTrainerBattle
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
@@ -107554,8 +110118,9 @@ Func_7623f: ; 7623f (1d:623f)
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	jp DisplayTextID
 
-LoreleiTexts: ; 76251 (1d:6251)
-	dw LoreleiText1, LoreleiText2
+LoreleiTextPointers: ; 76251 (1d:6251)
+	dw LoreleiText1
+	dw LoreleiText2
 
 LoreleiTrainerHeaders: ; 76255 (1d:6255)
 LoreleiTrainerHeader0: ; 76255 (1d:6255)
@@ -107567,7 +110132,7 @@ LoreleiTrainerHeader0: ; 76255 (1d:6255)
 	dw LoreleiEndBattleText ; 0x6271 TextEndBattle
 	dw LoreleiEndBattleText ; 0x6271 TextEndBattle
 
-db $ff
+	db $ff
 
 LoreleiText1: ; 76262 (1d:6262)
 	db $08 ; asm
@@ -107617,7 +110182,7 @@ LoreleiBlocks: ; 762ac (1d:62ac)
 Bruno_h: ; 0x762ca to 0x762d6 (12 bytes) (id=246)
 	db $07 ; tileset
 	db BRUNOS_ROOM_HEIGHT, BRUNOS_ROOM_WIDTH ; dimensions (y, x)
-	dw BrunoBlocks, BrunoTexts, BrunoScript ; blocks, texts, scripts
+	dw BrunoBlocks, BrunoTextPointers, BrunoScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw BrunoObject ; objects
@@ -107626,7 +110191,7 @@ BrunoScript: ; 762d6 (1d:62d6)
 	call BrunoScript_Unknown762ec
 	call EnableAutoTextBoxDrawing
 	ld hl, BrunoTrainerHeaders
-	ld de, Unknown_76312
+	ld de, BrunoScriptPointers
 	ld a, [W_BRUNOCURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_BRUNOCURSCRIPT], a
@@ -107656,14 +110221,14 @@ Func_7630d: ; 7630d (1d:630d)
 	ld [W_BRUNOCURSCRIPT], a
 	ret
 
-Unknown_76312: ; 76312 (1d:6312)
-dw Func_76339
-dw Func_324c
-dw Func_76396
-dw Func_76383
-dw Func_7631c
+BrunoScriptPointers: ; 76312 (1d:6312)
+	dw BrunoScript0
+	dw Func_324c
+	dw BrunoScript2
+	dw BrunoScript3
+	dw BrunoScript4
 
-Func_7631c: ; 7631c (1d:631c)
+BrunoScript4: ; 7631c (1d:631c)
 	ret
 asm_7631d: ; 7631d (1d:631d)
 	ld hl, $ccd3
@@ -107682,8 +110247,8 @@ asm_7631d: ; 7631d (1d:631d)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Func_76339: ; 76339 (1d:6339)
-	ld hl, Unknown_7637a
+BrunoScript0: ; 76339 (1d:6339)
+	ld hl, CoordsData_7637a
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -107712,10 +110277,14 @@ Func_76339: ; 76339 (1d:6339)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_7637a: ; 7637a (1d:637a)
-INCBIN "baserom.gbc",$7637a,$76383 - $7637a
+CoordsData_7637a: ; 7637a (1d:637a)
+	db $0A,$04
+	db $0A,$05
+	db $0B,$04
+	db $0B,$05
+	db $FF
 
-Func_76383: ; 76383 (1d:6383)
+BrunoScript3: ; 76383 (1d:6383)
 	ld a, [$cd38]
 	and a
 	ret nz
@@ -107726,7 +110295,7 @@ Func_76383: ; 76383 (1d:6383)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Func_76396: ; 76396 (1d:6396)
+BrunoScript2: ; 76396 (1d:6396)
 	call EndTrainerBattle
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
@@ -107735,8 +110304,9 @@ Func_76396: ; 76396 (1d:6396)
 	ld [H_DOWNARROWBLINKCNT2], a ; $FF00+$8c
 	jp DisplayTextID
 
-BrunoTexts: ; 763a8 (1d:63a8)
-	dw BrunoText1, BrunoText2
+BrunoTextPointers: ; 763a8 (1d:63a8)
+	dw BrunoText1
+	dw BrunoText2
 
 BrunoTrainerHeaders: ; 763ac (1d:63ac)
 BrunoTrainerHeader0: ; 763ac (1d:63ac)
@@ -107748,7 +110318,7 @@ BrunoTrainerHeader0: ; 763ac (1d:63ac)
 	dw BrunoEndBattleText ; 0x63c8 TextEndBattle
 	dw BrunoEndBattleText ; 0x63c8 TextEndBattle
 
-db $ff
+	db $ff
 
 BrunoText1: ; 763b9 (1d:63b9)
 	db $08 ; asm
@@ -107798,22 +110368,22 @@ BrunoBlocks: ; 76403 (1d:6403)
 Agatha_h: ; 0x76421 to 0x7642d (12 bytes) (id=247)
 	db $0f ; tileset
 	db AGATHAS_ROOM_HEIGHT, AGATHAS_ROOM_WIDTH ; dimensions (y, x)
-	dw AgathaBlocks, AgathaTexts, AgathaScript ; blocks, texts, scripts
+	dw AgathaBlocks, AgathaTextPointers, AgathaScript ; blocks, texts, scripts
 	db $00 ; connections
 
 	dw AgathaObject ; objects
 
 AgathaScript: ; 7642d (1d:642d)
-	call AgathaScript_Unknown76443
+	call AgathaScript_76443
 	call EnableAutoTextBoxDrawing
 	ld hl, AgathaTrainerHeaders
-	ld de, Unknown_76469
+	ld de, AgathaScriptPointers
 	ld a, [W_AGATHACURSCRIPT]
 	call ExecuteCurMapScriptInTable
 	ld [W_AGATHACURSCRIPT], a
 	ret
 
-AgathaScript_Unknown76443: ; 76443 (1d:6443)
+AgathaScript_76443: ; 76443 (1d:6443)
 	ld hl, $d126
 	bit 5, [hl]
 	res 5, [hl]
@@ -107837,14 +110407,14 @@ Func_76464: ; 76464 (1d:6464)
 	ld [W_AGATHACURSCRIPT], a
 	ret
 
-Unknown_76469: ; 76469 (1d:6469)
-dw Func_76490
-dw Func_324c
-dw Func_764ed
-dw Func_764da
-dw Func_76473
+AgathaScriptPointers: ; 76469 (1d:6469)
+	dw AgathaScript0
+	dw Func_324c
+	dw AgathaScript2
+	dw AgathaScript3
+	dw AgathaScript4
 
-Func_76473: ; 76473 (1d:6473)
+AgathaScript4: ; 76473 (1d:6473)
 	ret
 asm_76474: ; 76474 (1d:6474)
 	ld hl, $ccd3
@@ -107863,8 +110433,8 @@ asm_76474: ; 76474 (1d:6474)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Func_76490: ; 76490 (1d:6490)
-	ld hl, Unknown_764d1
+AgathaScript0: ; 76490 (1d:6490)
+	ld hl, CoordsData_764d1
 	call ArePlayerCoordsInArray
 	jp nc, CheckFightingMapTrainers
 	xor a
@@ -107893,10 +110463,14 @@ Func_76490: ; 76490 (1d:6490)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Unknown_764d1: ; 764d1 (1d:64d1)
-INCBIN "baserom.gbc",$764d1,$764da - $764d1
+CoordsData_764d1: ; 764d1 (1d:64d1)
+	db $0A,$04
+	db $0A,$05
+	db $0B,$04
+	db $0B,$05
+	db $FF
 
-Func_764da: ; 764da (1d:64da)
+AgathaScript3: ; 764da (1d:64da)
 	ld a, [$cd38]
 	and a
 	ret nz
@@ -107907,7 +110481,7 @@ Func_764da: ; 764da (1d:64da)
 	ld [W_CURMAPSCRIPT], a
 	ret
 
-Func_764ed: ; 764ed (1d:64ed)
+AgathaScript2: ; 764ed (1d:64ed)
 	call EndTrainerBattle
 	ld a, [W_ISINBATTLE] ; $d057
 	cp $ff
@@ -107919,8 +110493,9 @@ Func_764ed: ; 764ed (1d:64ed)
 	ld [W_GARYCURSCRIPT], a
 	ret
 
-AgathaTexts: ; 76505 (1d:6505)
-	dw AgathaText1, AgathaText2
+AgathaTextPointers: ; 76505 (1d:6505)
+	dw AgathaText1
+	dw AgathaText2
 
 AgathaTrainerHeaders: ; 76509 (1d:6509)
 AgathaTrainerHeader0: ; 76509 (1d:6509)
@@ -107932,7 +110507,7 @@ AgathaTrainerHeader0: ; 76509 (1d:6509)
 	dw AgathaEndBattleText ; 0x6525 TextEndBattle
 	dw AgathaEndBattleText ; 0x6525 TextEndBattle
 
-db $ff
+	db $ff
 
 AgathaText1: ; 76516 (1d:6516)
 	db $08 ; asm
@@ -108694,17 +111269,17 @@ LoadAnimationTileset: ; 781d2 (1e:41d2)
 	jp CopyVideoData ; load tileset
 
 AnimationTilesetPointers: ; 781f2 (1e:41f2)
-db 79 ; number of tiles
-dw AnimationTileset1
-db $FF
+	db 79 ; number of tiles
+	dw AnimationTileset1
+	db $FF
 
-db 79 ; number of tiles
-dw AnimationTileset2
-db $FF
+	db 79 ; number of tiles
+	dw AnimationTileset2
+	db $FF
 
-db 64 ; number of tiles
-dw AnimationTileset1
-db $FF
+	db 64 ; number of tiles
+	dw AnimationTileset1
+	db $FF
 
 AnimationTileset1: ; 781fe (1e:41fe)
 	INCBIN "gfx/attack_anim_1.2bpp"
@@ -109254,8 +111829,8 @@ Func504C: ; 7904c (1e:504c)
 	jp PlaySound ; play sound
 
 BallMoveDistances1: ; 79078 (1e:5078)
-db -12,-12,-8
-db $ff ; terminator
+	db -12,-12,-8
+	db $ff ; terminator
 
 ; function to make the pokeball jump up
 ; XXX probably a trade-related animation
@@ -109296,8 +111871,8 @@ Func507C ; 507C
 	jr .loop
 
 BallMoveDistances2: ; 790b3 (1e:50b3)
-db 11,12,-12,-7,7,12,-8,8
-db $ff ; terminator
+	db 11,12,-12,-7,7,12,-8,8
+	db $ff ; terminator
 
 ; this function copies the current musical note graphic
 ; so that there are two musical notes flying towards the defending pokemon
@@ -109448,35 +112023,35 @@ AnimationFlashScreenLong: ; 79165 (1e:5165)
 
 ; BG palettes
 FlashScreenLongMonochrome: ; 7918e (1e:518e)
-db %11111001 ; 3, 3, 2, 1
-db %11111110 ; 3, 3, 3, 2
-db %11111111 ; 3, 3, 3, 3
-db %11111110 ; 3, 3, 3, 2
-db %11111001 ; 3, 3, 2, 1
-db %11100100 ; 3, 2, 1, 0
-db %10010000 ; 2, 1, 0, 0
-db %01000000 ; 1, 0, 0, 0
-db %00000000 ; 0, 0, 0, 0
-db %01000000 ; 1, 0, 0, 0
-db %10010000 ; 2, 1, 0, 0
-db %11100100 ; 3, 2, 1, 0
-db $01 ; terminator
+	db %11111001 ; 3, 3, 2, 1
+	db %11111110 ; 3, 3, 3, 2
+	db %11111111 ; 3, 3, 3, 3
+	db %11111110 ; 3, 3, 3, 2
+	db %11111001 ; 3, 3, 2, 1
+	db %11100100 ; 3, 2, 1, 0
+	db %10010000 ; 2, 1, 0, 0
+	db %01000000 ; 1, 0, 0, 0
+	db %00000000 ; 0, 0, 0, 0
+	db %01000000 ; 1, 0, 0, 0
+	db %10010000 ; 2, 1, 0, 0
+	db %11100100 ; 3, 2, 1, 0
+	db $01 ; terminator
 
 ; BG palettes
 FlashScreenLongSGB: ; 7919b (1e:519b)
-db %11111000 ; 3, 3, 2, 0
-db %11111100 ; 3, 3, 3, 0
-db %11111111 ; 3, 3, 3, 3
-db %11111100 ; 3, 3, 3, 0
-db %11111000 ; 3, 3, 2, 0
-db %11100100 ; 3, 2, 1, 0
-db %10010000 ; 2, 1, 0, 0
-db %01000000 ; 1, 0, 0, 0
-db %00000000 ; 0, 0, 0, 0
-db %01000000 ; 1, 0, 0, 0
-db %10010000 ; 2, 1, 0, 0
-db %11100100 ; 3, 2, 1, 0
-db $01 ; terminator
+	db %11111000 ; 3, 3, 2, 0
+	db %11111100 ; 3, 3, 3, 0
+	db %11111111 ; 3, 3, 3, 3
+	db %11111100 ; 3, 3, 3, 0
+	db %11111000 ; 3, 3, 2, 0
+	db %11100100 ; 3, 2, 1, 0
+	db %10010000 ; 2, 1, 0, 0
+	db %01000000 ; 1, 0, 0, 0
+	db %00000000 ; 0, 0, 0, 0
+	db %01000000 ; 1, 0, 0, 0
+	db %10010000 ; 2, 1, 0, 0
+	db %11100100 ; 3, 2, 1, 0
+	db $01 ; terminator
 
 ; causes a delay of 2 frames for the first cycle
 ; causes a delay of 1 frame for the second and third cycles
@@ -110246,7 +112821,11 @@ Func_79862: ; 79862 (1e:5862)
 	jr nz, Func_79862
 	ret
 
-INCBIN "baserom.gbc",$79869,$7986f - $79869
+Func_79869: ; 79869 (1e:5869)
+	ld a, b
+	call Func586F
+	ld b, a
+	ret
 
 Func586F: ; 7986f (1e:586f)
 	ld hl,MoveSoundTable
@@ -111184,8 +113763,6 @@ TechnicalMachinePrices: ; 7bfa7 (1e:7fa7)
 	db $55, $52, $54, $52, $41
 	db $21, $12, $42, $25, $24
 	db $22, $52, $24, $34, $42
-; 7bfc0
-
 
 SECTION "bank1F",ROMX,BANK[$1F]
 
@@ -116938,7 +119515,6 @@ _MonWasStoredText: ; 0x8a159
 	db "stored in Box @"
 	TX_RAM $cd3d
 	db $0, ".", $58
-; 30 bytes
 
 _CantDepositLastMonText: ; 0x8a177
 	db $0, "You can't deposit", $4f
@@ -117022,7 +119598,6 @@ _OopsYouDontHaveEnoughRoomText: ; 8a329 (22:6329)
 
 _OhFineThenText: ; 8a34c (22:634c)
 	db 0,"Oh, fine then.@@"
-;635d
 
 _UnnamedText_1e93b: ; 8a35d (22:635d)
 	db $0, "Want to get your", $4f
@@ -117254,7 +119829,7 @@ _UnnamedText_56428: ; 8ac7d (22:6c7d)
 	db $0, "You owe me ¥@"
 
 ;XXX
-db $2, $3f, $cd, $c2
+	db $2, $3f, $cd, $c2
 
 UnknownText_8ac8f: ; 8ac8f (22:6c8f)
 	db $0, $4f
@@ -117365,92 +119940,92 @@ _RockTunnelPokecenterText3: ; 8c316 (23:4316)
 	db $0, "I sold a useless", $4f
 	db "NUGGET for ¥5000!", $57
 
-_UnnamedText_44588: ; 8c33a (23:433a)
+_RockTunnel1BattleText1: ; 8c33a (23:433a)
 	db $0, "This tunnel goes", $4f
 	db "a long way, kid!", $57
 
-_UnnamedText_4458d: ; 8c35d (23:435d)
+_RockTunnel1EndBattleText1: ; 8c35d (23:435d)
 	db $0, "Doh!", $4f
 	db "You win!", $58
 
-_UnnamedText_44592: ; 8c36c (23:436c)
+_RockTunnel1AfterBattleText1: ; 8c36c (23:436c)
 	db $0, "Watch for ONIX!", $4f
 	db "It can put the", $55
 	db "squeeze on you!", $57
 
-_UnnamedText_44597: ; 8c39c (23:439c)
+_RockTunnel1BattleText2: ; 8c39c (23:439c)
 	db $0, "Hmm. Maybe I'm", $4f
 	db "lost in here...", $57
 
-_UnnamedText_4459c: ; 8c3bb (23:43bb)
+_RockTunnel1EndBattleText2: ; 8c3bb (23:43bb)
 	db $0, "Ease up!", $4f
 	db "What am I doing?", $55
 	db "Which way is out?", $58
 
-_UnnamedText_445a1: ; 8c3e8 (23:43e8)
+_RockTunnel1AfterBattleText2: ; 8c3e8 (23:43e8)
 	db $0, "That sleeping", $4f
 	db "#MON on ROUTE", $55
 	db "12 forced me to", $55
 	db "take this detour.", $57
 
-_UnnamedText_445a6: ; 8c427 (23:4427)
+_RockTunnel1BattleText3: ; 8c427 (23:4427)
 	db $0, "Outsiders like", $4f
 	db "you need to show", $55
 	db "me some respect!", $57
 
-_UnnamedText_445ab: ; 8c459 (23:4459)
+_RockTunnel1EndBattleText3: ; 8c459 (23:4459)
 	db $0, "I give!", $58
 
-_UnnamedText_445b0: ; 8c462 (23:4462)
+_RockTunnel1AfterBattleText3: ; 8c462 (23:4462)
 	db $0, "You're talented", $4f
 	db "enough to hike!", $57
 
-_UnnamedText_445b5: ; 8c482 (23:4482)
+_RockTunnel1BattleText4: ; 8c482 (23:4482)
 	db $0, "#MON fight!", $4f
 	db "Ready, go!", $57
 
-_UnnamedText_445ba: ; 8c49a (23:449a)
+_RockTunnel1EndBattleText4: ; 8c49a (23:449a)
 	db $0, "Game", $4f
 	db "over!", $58
 
-_UnnamedText_445bf: ; 8c4a6 (23:44a6)
+_RockTunnel1AfterBattleText4: ; 8c4a6 (23:44a6)
 	db $0, "Oh well, I'll get", $4f
 	db "a ZUBAT as I go!", $57
 
-_UnnamedText_445c4: ; 8c4c9 (23:44c9)
+_RockTunnel1BattleText5: ; 8c4c9 (23:44c9)
 	db $0, "Eek! Don't try", $4f
 	db "anything funny in", $55
 	db "the dark!", $57
 
-_UnnamedText_445c9: ; 8c4f4 (23:44f4)
+_RockTunnel1EndBattleText5: ; 8c4f4 (23:44f4)
 	db $0, "It", $4f
 	db "was too dark!", $58
 
-_UnnamedText_445ce: ; 8c506 (23:4506)
+_RockTunnel1AfterBattleText5: ; 8c506 (23:4506)
 	db $0, "I saw a MACHOP", $4f
 	db "in this tunnel!", $57
 
-_UnnamedText_445d3: ; 8c526 (23:4526)
+_RockTunnel1BattleText6: ; 8c526 (23:4526)
 	db $0, "I came this far", $4f
 	db "for #MON!", $57
 
-_UnnamedText_445d8: ; 8c541 (23:4541)
+_RockTunnel1EndBattleText6: ; 8c541 (23:4541)
 	db $0, "I'm", $4f
 	db "out of #MON!", $58
 
-_UnnamedText_445dd: ; 8c552 (23:4552)
+_RockTunnel1AfterBattleText6: ; 8c552 (23:4552)
 	db $0, "You looked cute", $4f
 	db "and harmless!", $57
 
-_UnnamedText_445e2: ; 8c571 (23:4571)
+_RockTunnel1BattleText7: ; 8c571 (23:4571)
 	db $0, "You have #MON!", $4f
 	db "Let's start!", $57
 
-_UnnamedText_445e7: ; 8c58d (23:458d)
+_RockTunnel1EndBattleText7: ; 8c58d (23:458d)
 	db $0, "You", $4f
 	db "play hard!", $58
 
-_UnnamedText_445ec: ; 8c59d (23:459d)
+_RockTunnel1AfterBattleText7: ; 8c59d (23:459d)
 	db $0, "Whew! I'm all", $4f
 	db "sweaty now!", $57
 
@@ -119935,7 +122510,7 @@ _Route22Text3: ; 92606 (24:6606)
 	db $0, "#MON LEAGUE", $4f
 	db "Front Gate", $57
 
-UnknownText_9261e: ; 9261e (24:661e)
+_VictoryRoadGuardText1: ; 9261e (24:661e)
 	db $0, "You can pass here", $4f
 	db "only if you have", $55
 	db "the @"
@@ -119953,7 +122528,7 @@ UnknownText_92660: ; 92660 (24:6660)
 	db "it to get to", $55
 	db "#MON LEAGUE!@@"
 
-UnknownText_92696: ; 92696 (24:6696)
+_VictoryRoadGuardText2: ; 92696 (24:6696)
 	db $0, "You can pass here", $4f
 	db "only if you have", $55
 	db "the @"
@@ -122598,7 +125173,7 @@ _VermilionHouse1Text3: ; 9c49c (27:449c)
 	db "VERMILION appears", $4f
 	db "to be safe.", $57
 
-_UnnamedText_1dcc1: ; 9c50e (27:450e)
+_VermilionDockText1: ; 9c50e (27:450e)
 	db $0, $57
 
 _UnnamedText_560b1: ; 9c510 (27:4510)
