shithub: pokecrystal

Download patch

ref: cf5d726b7f00633acad3cdf0c25178bde5fc14fb
parent: 94c720832a577be03a471de6db27eba09a96e946
author: PikalaxALT <PikalaxALT@gmail.com>
date: Wed Nov 4 09:02:11 EST 2015

Mon submenu, engine/menu.asm

--- a/battle/core.asm
+++ b/battle/core.asm
@@ -2860,13 +2860,13 @@
 .asm_3d20a
 	lb bc, 1, 7
 	call PlaceYesNoBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	jr c, .asm_3d217
 	and a
 	ret
 
 .asm_3d217
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .asm_3d20a
 	ld hl, PartyMon1Speed
@@ -3684,7 +3684,7 @@
 	call StdBattleTextBox
 	lb bc, 1, 7
 	call PlaceYesNoBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	jr nz, .asm_3d79a
 	call Function3d2f7
@@ -5288,7 +5288,7 @@
 .asm_3e25d
 	call Function3f47c
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call ExitMenu
 	call Function3df2c
 	call WaitBGMap
@@ -5328,7 +5328,7 @@
 	call Function3e2f5
 	jr c, .asm_3e2c8
 	call Function1bee
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jp z, Function3e358
 	cp $2
@@ -5533,7 +5533,7 @@
 	call SetPlayerTurn
 	call SpikesDamage
 	ld a, $2
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ret
 ; 3e459
 
@@ -5563,7 +5563,7 @@
 BattleMenu_Run: ; 3e489
 	call Call_LoadTempTileMapToTileMap
 	ld a, $3
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, BattleMonSpeed
 	ld de, EnemyMonSpeed
 	call TryToRunAwayFromBattle
@@ -5659,7 +5659,7 @@
 	inc a
 
 .asm_3e53e
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1
 	ld [wcfaa], a
 	ld a, [wd0eb]
@@ -5726,9 +5726,9 @@
 
 	xor a
 	ld [wd0e3], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld b, a
 	ld a, [wd235]
 	dec a
@@ -5751,7 +5751,7 @@
 	ret nz
 
 	ld hl, BattleMonPP
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld c, a
 	ld b, 0
 	add hl, bc
@@ -5767,7 +5767,7 @@
 	ld a, [wc6e1]
 	and a
 	jr nz, .asm_3e606
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld hl, BattleMonMoves
 	ld c, a
 	ld b, 0
@@ -5797,17 +5797,17 @@
 ; 3e61d
 
 .asm_3e61d
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	and a
 	jp nz, .asm_3e57a
 	ld a, [wd0eb]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp .asm_3e57a
 ; 3e62e
 
 .asm_3e62e ; 3e62e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [wd0eb]
 rept 2
@@ -5816,7 +5816,7 @@
 	cp b
 	jp nz, .asm_3e57a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp .asm_3e57a
 ; 3e643
 
@@ -5833,7 +5833,7 @@
 	swap a
 	and $f
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp b
 	jr nz, .asm_3e671
 	ld a, [hl]
@@ -5852,7 +5852,7 @@
 	ld a, [hl]
 	and $f
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	swap a
 	add b
 	ld [hl], a
@@ -5886,7 +5886,7 @@
 	ld d, h
 	ld e, l
 	pop hl
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, 0
@@ -5899,7 +5899,7 @@
 	ret
 
 .asm_3e6bf
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd0e3], a
 	jp MoveSelectionScreen
 ; 3e6c8
@@ -5921,7 +5921,7 @@
 	swap a
 	and $f
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp b
 	jr nz, .asm_3e6f4
 
@@ -5931,11 +5931,11 @@
 	jr .done
 
 .asm_3e6f4
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	dec [hl]
 	call SetPlayerTurn
 	ld hl, BattleMonMoves
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld c, a
 	ld b, 0
 	add hl, bc
@@ -5948,7 +5948,7 @@
 	ld [MonType], a
 	callab Functionf8ec
 
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld c, [hl]
 	inc [hl]
 	ld b, 0
@@ -7250,9 +7250,9 @@
 	ld hl, VTiles2 tile $73
 	lb bc, BANK(GFX_f8ae0), 6
 	call Get1bpp
-	ld de, GFX_f8b10
+	ld de, ExpBarGFX
 	ld hl, VTiles2 tile $55
-	lb bc, BANK(GFX_f8b10), 8
+	lb bc, BANK(ExpBarGFX), 8
 	jp Get2bpp
 ; 3edd1
 
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -7,6 +7,7 @@
 
 ; strings
 PLAYER_NAME_LENGTH EQU 8
+BOX_NAME_LENGTH EQU 9
 PKMN_NAME_LENGTH EQU 11
 MOVE_NAME_LENGTH EQU 13
 ITEM_NAME_LENGTH EQU 13
@@ -161,3 +162,5 @@
 
 HMENURETURN_SCRIPT EQU %10000000
 HMENURETURN_ASM    EQU %11111111
+
+NUM_MON_SUBMENU_ITEMS EQU 8
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -292,3 +292,30 @@
 BOXMON_STRUCT_LENGTH   EQUS "PartyMon1End - PartyMon1"
 PARTYMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1"
 SCRATCHMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1Item"
+
+const_value SET 1
+	const MONMENU_CUT        ; 1
+	const MONMENU_FLY        ; 2
+	const MONMENU_SURF       ; 3
+	const MONMENU_STRENGTH   ; 4
+	const MONMENU_WATERFALL  ; 5
+	const MONMENU_FLASH      ; 6
+	const MONMENU_WHIRLPOOL  ; 7
+	const MONMENU_DIG        ; 8
+	const MONMENU_TELEPORT   ; 9
+	const MONMENU_SOFTBOILED ; 10
+	const MONMENU_HEADBUTT   ; 11
+	const MONMENU_ROCKSMASH  ; 12
+	const MONMENU_MILKDRINK  ; 13
+	const MONMENU_SWEETSCENT ; 14
+
+	const MONMENU_STATS      ; 15
+	const MONMENU_SWITCH     ; 16
+	const MONMENU_ITEM       ; 17
+	const MONMENU_CANCEL     ; 18
+	const MONMENU_MOVE       ; 19
+	const MONMENU_MAIL       ; 20
+	const MONMENU_ERROR      ; 21
+
+MONMENU_FIELD_MOVE EQU 0
+MONMENU_MENUOPTION EQU 1
--- /dev/null
+++ b/engine/menu.asm
@@ -1,0 +1,587 @@
+Function2400e:: ; 2400e
+	ld hl, Function1c66
+	ld a, [wcf94]
+	rst FarCall
+	call Function24085
+	call UpdateSprites
+	call Function321c
+	call Function2408f
+	ret
+; 24022
+
+Function24022:: ; 24022
+	ld hl, Function1c66
+	ld a, [wcf94]
+	rst FarCall
+	call Function24085
+	callba MobileTextBorder
+	call UpdateSprites
+	call Function321c
+	call Function2408f
+	ret
+; 2403c
+
+Function2403c:: ; 2403c
+	ld hl, Function1c66
+	ld a, [wcf94]
+	rst FarCall
+	call Function24085
+	callba MobileTextBorder
+	call UpdateSprites
+	call Function321c
+	call Function2411a
+	ld hl, wcfa5
+	set 7, [hl]
+.asm_2405a
+	call DelayFrame
+	callba Function10032e
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_24076
+	call Function241ba
+	ld a, [wcfa8]
+	and c
+	jr z, .asm_2405a
+	call Function24098
+	ret
+
+.asm_24076
+	ld a, [wcfa4]
+	ld c, a
+	ld a, [wcfa3]
+	call SimpleMultiply
+	ld [wMenuCursorBuffer], a
+	and a
+	ret
+; 24085
+
+
+
+Function24085: ; 24085
+	xor a
+	ld [hBGMapMode], a
+	call MenuBox
+	call Function240db
+	ret
+; 2408f
+
+Function2408f: ; 2408f
+	call Function2411a
+	call Function1bc9
+	call Function1ff8
+
+Function24098: ; 24098
+	ld a, [wMenuData2Flags]
+	bit 1, a
+	jr z, .asm_240a6
+	call Function1bdd
+	bit 2, a
+	jr nz, .asm_240c9
+
+.asm_240a6
+	ld a, [wMenuData2Flags]
+	bit 0, a
+	jr nz, .asm_240b4
+	call Function1bdd
+	bit 1, a
+	jr nz, .asm_240cb
+
+.asm_240b4
+	ld a, [wcfa4]
+	ld c, a
+	ld a, [MenuSelection2]
+	dec a
+	call SimpleMultiply
+	ld c, a
+	ld a, [wcfaa]
+	add c
+	ld [wMenuCursorBuffer], a
+	and a
+	ret
+
+.asm_240c9
+	scf
+	ret
+
+.asm_240cb
+	scf
+	ret
+; 240cd
+
+Function240cd: ; 240cd
+	ld a, [wMenuData2Items]
+	and $f
+	ret
+; 240d3
+
+Function240d3: ; 240d3
+	ld a, [wMenuData2Items]
+	swap a
+	and $f
+	ret
+; 240db
+
+Function240db: ; 240db
+	ld hl, wcf95
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function1cc6
+	call GetTileCoord
+	call Function240d3
+	ld b, a
+.asm_240eb
+	push bc
+	push hl
+	call Function240cd
+	ld c, a
+.asm_240f1
+	push bc
+	ld a, [wcf94]
+	call Function201c
+	inc de
+	ld a, [wcf93]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	pop bc
+	dec c
+	jr nz, .asm_240f1
+	pop hl
+	ld bc, $28
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .asm_240eb
+	ld hl, wcf98
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	or h
+	ret z
+	ld a, [wcf97]
+	rst FarCall
+	ret
+; 2411a
+
+
+Function2411a: ; 2411a (9:411a)
+	call Function1cc6
+	ld a, b
+	ld [wcfa1], a
+	dec c
+	ld a, c
+	ld [wcfa2], a
+	call Function240d3
+	ld [wcfa3], a
+	call Function240cd
+	ld [wcfa4], a
+	call Function24179
+	call Function2418a
+	call Function24193
+	ld a, [wcfa4]
+	ld e, a
+	ld a, [wMenuCursorBuffer]
+	ld b, a
+	xor a
+	ld d, $0
+.asm_24146
+	inc d
+	add e
+	cp b
+	jr c, .asm_24146
+	sub e
+	ld c, a
+	ld a, b
+	sub c
+	and a
+	jr z, .asm_24157
+	cp e
+	jr z, .asm_24159
+	jr c, .asm_24159
+.asm_24157
+	ld a, $1
+.asm_24159
+	ld [wcfaa], a
+	ld a, [wcfa3]
+	ld e, a
+	ld a, d
+	and a
+	jr z, .asm_24169
+	cp e
+	jr z, .asm_2416b
+	jr c, .asm_2416b
+.asm_24169
+	ld a, $1
+.asm_2416b
+	ld [MenuSelection2], a
+	xor a
+	ld [wcfab], a
+	ld [wcfac], a
+	ld [wcfad], a
+	ret
+; 24179
+
+Function24179: ; 24179
+	xor a
+	ld hl, wcfa5
+	ld [hli], a
+	ld [hld], a
+	ld a, [wMenuData2Flags]
+	bit 5, a
+	ret z
+	set 5, [hl]
+	set 4, [hl]
+	ret
+; 2418a
+
+Function2418a: ; 2418a
+	ld a, [wcf93]
+	or $20
+	ld [wcfa7], a
+	ret
+; 24193
+
+Function24193: ; 24193
+	ld hl, wMenuData2Flags
+	ld a, $1
+	bit 0, [hl]
+	jr nz, .asm_2419e
+	or $2
+
+.asm_2419e
+	bit 1, [hl]
+	jr z, .asm_241a4
+	or $4
+
+.asm_241a4
+	ld [wcfa8], a
+	ret
+; 241a8
+
+
+Function241a8:: ; 241a8
+	call Function24329
+Function241ab:: ; 241ab
+	ld hl, wcfa6
+	res 7, [hl]
+	ld a, [hBGMapMode]
+	push af
+	call Function24216
+	pop af
+	ld [hBGMapMode], a
+	ret
+; 241ba
+
+Function241ba: ; 241ba
+	ld hl, wcfa6
+	res 7, [hl]
+	ld a, [hBGMapMode]
+	push af
+	call Function2431a
+	call Function24249
+	jr nc, .asm_241cd
+	call Function24270
+
+.asm_241cd
+	pop af
+	ld [hBGMapMode], a
+	call Function1bdd
+	ld c, a
+	ret
+; 241d5
+
+
+Function241d5: ; 241d5
+	call Function24329
+.loop
+	call Function2431a
+	call Function10402d ; BUG: This function is in another bank.
+	                    ; Pointer in current bank (9) is bogus.
+	call Function241fa
+	jr nc, .done
+	call Function24270
+	jr c, .done
+	ld a, [wcfa5]
+	bit 7, a
+	jr nz, .done
+	call Function1bdd
+	ld c, a
+	ld a, [wcfa8]
+	and c
+	jr z, .loop
+
+.done
+	ret
+; 241fa
+
+Function241fa: ; 241fa
+.loop
+	call Function24259
+	ret c
+	ld c, 1
+	ld b, 3
+	call Function10062d ; BUG: This function is in another bank.
+	                    ; Pointer in current bank (9) is bogus.
+	ret c
+	callba Function100337
+	ret c
+	ld a, [wcfa5]
+	bit 7, a
+	jr z, .loop
+	and a
+	ret
+; 24216
+
+
+Function24216: ; 24216
+.asm_24216
+	call Function2431a
+	call Function24238
+	call Function24249
+	jr nc, .asm_24237
+	call Function24270
+	jr c, .asm_24237
+	ld a, [wcfa5]
+	bit 7, a
+	jr nz, .asm_24237
+	call Function1bdd
+	ld b, a
+	ld a, [wcfa8]
+	and b
+	jr z, .asm_24216
+
+.asm_24237
+	ret
+; 24238
+
+Function24238: ; 24238
+	ld a, [hOAMUpdate]
+	push af
+	ld a, $1
+	ld [hOAMUpdate], a
+	call WaitBGMap
+	pop af
+	ld [hOAMUpdate], a
+	xor a
+	ld [hBGMapMode], a
+	ret
+; 24249
+
+Function24249: ; 24249
+.asm_24249
+	call RTC
+	call Function24259
+	ret c
+	ld a, [wcfa5]
+	bit 7, a
+	jr z, .asm_24249
+	and a
+	ret
+; 24259
+
+Function24259: ; 24259
+	ld a, [wcfa5]
+	bit 6, a
+	jr z, .asm_24266
+	callab Function8cf62
+
+.asm_24266
+	call JoyTextDelay
+	call Function1bdd
+	and a
+	ret z
+	scf
+	ret
+; 24270
+
+Function24270: ; 24270
+	call Function1bdd
+	bit 0, a
+	jp nz, Function24318
+	bit 1, a
+	jp nz, Function24318
+	bit 2, a
+	jp nz, Function24318
+	bit 3, a
+	jp nz, Function24318
+	bit 4, a
+	jr nz, .asm_242fa
+	bit 5, a
+	jr nz, .asm_242dc
+	bit 6, a
+	jr nz, .asm_242be
+	bit 7, a
+	jr nz, .asm_242a0
+	and a
+	ret
+
+.asm_24299: ; 24299
+	ld hl, wcfa6
+	set 7, [hl]
+	scf
+	ret
+
+.asm_242a0
+	ld hl, MenuSelection2
+	ld a, [wcfa3]
+	cp [hl]
+	jr z, .asm_242ac
+	inc [hl]
+	xor a
+	ret
+
+.asm_242ac
+	ld a, [wcfa5]
+	bit 5, a
+	jr nz, .asm_242ba
+	bit 3, a
+	jp nz, .asm_24299
+	xor a
+	ret
+
+.asm_242ba
+	ld [hl], $1
+	xor a
+	ret
+
+.asm_242be
+	ld hl, MenuSelection2
+	ld a, [hl]
+	dec a
+	jr z, .asm_242c8
+	ld [hl], a
+	xor a
+	ret
+
+.asm_242c8
+	ld a, [wcfa5]
+	bit 5, a
+	jr nz, .asm_242d6
+	bit 2, a
+	jp nz, .asm_24299
+	xor a
+	ret
+
+.asm_242d6
+	ld a, [wcfa3]
+	ld [hl], a
+	xor a
+	ret
+
+.asm_242dc
+	ld hl, wcfaa
+	ld a, [hl]
+	dec a
+	jr z, .asm_242e6
+	ld [hl], a
+	xor a
+	ret
+
+.asm_242e6
+	ld a, [wcfa5]
+	bit 4, a
+	jr nz, .asm_242f4
+	bit 1, a
+	jp nz, .asm_24299
+	xor a
+	ret
+
+.asm_242f4
+	ld a, [wcfa4]
+	ld [hl], a
+	xor a
+	ret
+
+.asm_242fa
+	ld hl, wcfaa
+	ld a, [wcfa4]
+	cp [hl]
+	jr z, .asm_24306
+	inc [hl]
+	xor a
+	ret
+
+.asm_24306
+	ld a, [wcfa5]
+	bit 4, a
+	jr nz, .asm_24314
+	bit 0, a
+	jp nz, .asm_24299
+	xor a
+	ret
+
+.asm_24314
+	ld [hl], $1
+	xor a
+	ret
+; 24318
+
+Function24318: ; 24318
+	xor a
+	ret
+; 2431a
+
+Function2431a: ; 2431a
+	ld hl, wcfac
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hl]
+	cp $ed
+	jr nz, Function24329
+	ld a, [wcfab]
+	ld [hl], a
+
+Function24329: ; 24329
+	ld a, [wcfa1]
+	ld b, a
+	ld a, [wcfa2]
+	ld c, a
+	call GetTileCoord
+	ld a, [wcfa7]
+	swap a
+	and $f
+	ld c, a
+	ld a, [MenuSelection2]
+	ld b, a
+	xor a
+	dec b
+	jr z, .asm_24348
+.asm_24344
+	add c
+	dec b
+	jr nz, .asm_24344
+
+.asm_24348
+	ld c, $14
+	call AddNTimes
+	ld a, [wcfa7]
+	and $f
+	ld c, a
+	ld a, [wcfaa]
+	ld b, a
+	xor a
+	dec b
+	jr z, .asm_2435f
+.asm_2435b
+	add c
+	dec b
+	jr nz, .asm_2435b
+
+.asm_2435f
+	ld c, a
+	add hl, bc
+	ld a, [hl]
+	cp $ed
+	jr z, .asm_2436b
+	ld [wcfab], a
+	ld [hl], $ed
+
+.asm_2436b
+	ld a, l
+	ld [wcfac], a
+	ld a, h
+	ld [wcfad], a
+	ret
+; 24374
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -70,7 +70,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0df], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wItemsPocketCursor], a
 	ld b, $7
 	ld c, $3
@@ -98,7 +98,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0e0], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wKeyItemsPocketCursor], a
 	ld b, $3
 	ld c, $7
@@ -141,7 +141,7 @@
 	call ExitMenu
 	pop hl
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function1086b
 	jp [hl]
@@ -228,7 +228,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0e1], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wBallsPocketCursor], a
 	ld b, $1
 	ld c, $5
@@ -301,7 +301,7 @@
 	call ExitMenu
 	pop hl
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function1086b
 	jp [hl]
@@ -728,7 +728,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0df], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wItemsPocketCursor], a
 	ld b, $7
 	ld c, $3
@@ -756,7 +756,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0e0], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wKeyItemsPocketCursor], a
 	ld b, $3
 	ld c, $7
@@ -807,7 +807,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0e1], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wBallsPocketCursor], a
 	ld b, $1
 	ld c, $5
@@ -836,7 +836,7 @@
 	call ExitMenu
 	pop hl
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function1086b
 	jp [hl]
@@ -1013,7 +1013,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0df], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wItemsPocketCursor], a
 	ret
 
@@ -1029,7 +1029,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0e0], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wKeyItemsPocketCursor], a
 	ret
 
@@ -1054,7 +1054,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0e1], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wBallsPocketCursor], a
 	ret
 
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -212,7 +212,7 @@
 	call LoadMenuTextBox
 	lb bc, 0, 7
 	call PlaceYesNoBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call WriteBackup
 	push af
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -515,7 +515,7 @@
 	ld a, [ScriptBank]
 	ld hl, InterpretMenu2
 	rst FarCall
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	jr nc, .ok
 	xor a
 .ok
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -201,7 +201,7 @@
 	ld [hBGMapMode], a
 	ld hl, MenuDataHeader_0x8b0d1
 	call CopyMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call GetMemTileCoord
 	ld bc, $0015
@@ -255,7 +255,7 @@
 	call Function350c
 	ld a, [MenuSelection]
 	ld c, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [MenuSelection], a
 	ld a, [wcf73]
 	cp $2
--- a/event/kurt.asm
+++ b/event/kurt.asm
@@ -40,7 +40,7 @@
 	and a
 	jr z, .done
 	ld [CurItem], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld c, a
 	push bc
 	call Kurt_PrintTextHowMany
@@ -135,7 +135,7 @@
 .loop
 	xor a
 	ld [hBGMapMode], a
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call .PlaceApricornName
 	call PlaceApricornQuantity
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -109,7 +109,7 @@
 	call InterpretMenu2
 	call WriteBackup
 	jr c, .cancel
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .withdraw
 	cp $2
--- a/event/move_deleter.asm
+++ b/event/move_deleter.asm
@@ -25,7 +25,7 @@
 	call Function2b74
 	pop af
 	jr c, .asm_2c5c3
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	ld a, [CurSpecies]
 	ld [wd265], a
--- a/event/unown.asm
+++ b/event/unown.asm
@@ -122,7 +122,7 @@
 	call LoadMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call Function321c
 	call GetMemTileCoord
binary files /dev/null b/gfx/battle/expbar.2bpp differ
binary files a/gfx/unknown/0f8b10.2bpp /dev/null differ
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -74,12 +74,12 @@
 InterpretMenu2::
 	xor a
 	ld [hBGMapMode], a
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call Function1c89
 	call Function321c
 	call Function1c66
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 7, a
 	jr z, .cancel
 	call Function1c10
@@ -99,7 +99,7 @@
 	call LoadMenuDataHeader
 	call InterpretMenu2
 	call WriteBackup
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ret
 ; 1db8
 
@@ -168,7 +168,7 @@
 	call WriteBackup
 	pop af
 	jr c, .no
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp 2 ; no
 	jr z, .no
 	and a
@@ -176,7 +176,7 @@
 
 .no
 	ld a, 2
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	scf
 	ret
 ; 1e1d
@@ -249,7 +249,7 @@
 	call Function1c66
 	call Function1ebd
 	call Function1ea6
-	call Function1cbb
+	call MenuBox
 	ret
 
 MenuWriteText::
@@ -274,7 +274,7 @@
 	ld a, [wMenuBorderRightCoord]
 	sub c
 	ld c, a
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	add a
 	inc a
 	ld b, a
@@ -305,7 +305,7 @@
 	ld d, h
 	ld e, l
 	ld a, [hl]
-	ld [wcf92], a
+	ld [wMenuData2Items], a
 	ret
 ; 1eda
 
@@ -342,13 +342,13 @@
 Function1eff:: ; 1eff
 	call Function1c10
 	ld hl, wcfa8
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 3, a
 	jr z, .asm_1f0e
 	set 3, [hl]
 
 .asm_1f0e
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 2, a
 	jr z, .asm_1f19
 	set 5, [hl]
@@ -403,13 +403,13 @@
 
 .asm_1f57
 	call Function1ebd
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld l, a
 	ld h, $0
 	add hl, de
 	ld a, [hl]
 	ld [MenuSelection], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wMenuCursorBuffer], a
 	and a
 	ret
@@ -491,7 +491,7 @@
 	call .bytefill
 	ld hl, wcf81
 	call .bytefill
-	ld hl, wcf91
+	ld hl, wMenuData2Flags
 	call .bytefill
 	ld hl, wcfa1
 	call .bytefill
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -88,7 +88,7 @@
 	ld a, [hli]
 	ld h, [hl]
 	ld l, a
-	ld de, wcf91
+	ld de, wMenuData2Flags
 	ld bc, $0010
 	call CopyBytes
 	pop af
@@ -131,7 +131,7 @@
 	pop bc
 	dec b
 	jr nz, .asm_1c9c
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 4, a
 	ret z
 	call GetMemTileCoord
@@ -143,7 +143,7 @@
 	jp PlaceString
 ; 1cbb
 
-Function1cbb:: ; 1cbb
+MenuBox:: ; 1cbb
 	call GetMemTileCoord
 	call GetMenuBoxDims
 	dec b
@@ -158,13 +158,13 @@
 	ld a, [wMenuBorderLeftCoord]
 	ld c, a
 	inc c
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 6, a
 	jr nz, .asm_1cd8
 	inc b
 
 .asm_1cd8
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 7, a
 	jr z, .asm_1ce0
 	inc c
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -2667,7 +2667,7 @@
 
 Elixer_RestorePPofAllMoves: ; f6af
 	xor a
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld [hli], a
 	ld [hl], a
 	ld b, NUM_MOVES
@@ -2686,7 +2686,7 @@
 	inc [hl]
 
 .cant_restore_pp
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	inc [hl]
 	pop bc
 	dec b
@@ -3123,7 +3123,7 @@
 	ld a, [wd265]
 	dec a
 	jr nz, .asm_f876
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	inc a
 	cp b
 	jr nz, .asm_f87d
@@ -3200,7 +3200,7 @@
 	call GetPartyParamLocation
 	pop de
 	xor a ; PARTYMON
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld [MonType], a
 	ld c, NUM_MOVES
 .loop
@@ -3220,7 +3220,7 @@
 	add b
 	ld [de], a
 	inc de
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	inc [hl]
 	pop hl
 	dec c
@@ -3313,7 +3313,7 @@
 	call AddNTimes
 
 GetMthMoveOfCurrentMon: ; f969
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld c, a
 	ld b, 0
 	add hl, bc
--- a/main.asm
+++ b/main.asm
@@ -607,7 +607,7 @@
 
 .asm_5ecf
 	call Function1e35
-	call Function1cbb
+	call MenuBox
 	call Function1c89
 	ret
 ; 5ed9
@@ -840,7 +840,7 @@
 NamePlayer: ; 0x6074
 	callba MovePlayerPicRight
 	callba ShowPlayerNamingChoices
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	jr z, .NewName
 	call StorePlayerName
@@ -886,7 +886,7 @@
 Function60e9: ; Unreferenced
 	call LoadMenuDataHeader
 	call InterpretMenu2
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function1db8
 	call WriteBackup
@@ -1737,7 +1737,7 @@
 	ld [wcfa3], a
 	ld a, $1
 	ld [wcfa4], a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld [wcfaa], a
 	ld a, $3
 	ld [wcfa8], a
@@ -1755,7 +1755,7 @@
 	bit 1, a
 	jr nz, .cancel
 	push hl
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, 0
@@ -8620,7 +8620,7 @@
 	pop hl
 	pop de
 
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	ld a, [MonType]
 	push af
@@ -8633,7 +8633,7 @@
 	ld a, BOXMON
 	ld [MonType], a
 	ld a, b
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	push bc
 	push hl
 	push de
@@ -8657,7 +8657,7 @@
 	pop af
 	ld [MonType], a
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ret
 ; dd21
 
@@ -9776,7 +9776,7 @@
 	ld hl, MenuDataHeader_0xe46f
 	call LoadMenuDataHeader
 	ld a, $1
-.asm_e44b
+.loop
 	ld [wMenuCursorBuffer], a
 	call SetPalettes
 	xor a
@@ -9783,7 +9783,7 @@
 	ld [wcf76], a
 	ld [hBGMapMode], a ; $ff00+$d4
 	call Function1e5d
-	jr c, .asm_e46b
+	jr c, .cancel
 	ld a, [wMenuCursorBuffer]
 	push af
 	ld a, [MenuSelection]
@@ -9791,8 +9791,8 @@
 	rst JumpTable
 	pop bc
 	ld a, b
-	jr nc, .asm_e44b
-.asm_e46b
+	jr nc, .loop
+.cancel
 	call WriteBackup
 	ret
 ; e46f (3:646f)
@@ -13147,7 +13147,7 @@
 	hlcoord 1, 15
 	lb bc, 2, 18
 	call ClearBox
-	callba Function24d19
+	callba MonSubmenu
 	call GetCurNick
 	ld a, [MenuSelection]
 	ld hl, .Actions
@@ -13166,26 +13166,26 @@
 	ret
 
 .Actions
-	dbw  1, Function12e1b ; Cut
-	dbw  2, Function12e30 ; Fly
-	dbw  3, Function12ebd ; Surf
-	dbw  4, Function12e6a ; Strength
-	dbw  6, Function12e55 ; Flash
-	dbw  7, Function12e7f ; Whirlpool
-	dbw  8, Function12ed1 ; Dig
-	dbw  9, Function12ea9 ; Teleport
-	dbw 10, Function12ee6 ; Softboiled
-	dbw 13, Function12ee6 ; MilkDrink
-	dbw 11, Function12f26 ; Headbutt
-	dbw  5, Function12e94 ; Waterfall
-	dbw 12, Function12f3b ; RockSmash
-	dbw 14, Function12f50 ; SweetScent
-	dbw 15, OpenPartyStats
-	dbw 16, SwitchPartyMons
-	dbw 17, GiveTakePartyMonItem
-	dbw 18, CancelPokemonAction
-	dbw 19, Function12fba ; move
-	dbw 20, MonMailAction ; mail
+	dbw MONMENU_CUT,        Function12e1b ; Cut
+	dbw MONMENU_FLY,        Function12e30 ; Fly
+	dbw MONMENU_SURF,       Function12ebd ; Surf
+	dbw MONMENU_STRENGTH,   Function12e6a ; Strength
+	dbw MONMENU_FLASH,      Function12e55 ; Flash
+	dbw MONMENU_WHIRLPOOL,  Function12e7f ; Whirlpool
+	dbw MONMENU_DIG,        Function12ed1 ; Dig
+	dbw MONMENU_TELEPORT,   Function12ea9 ; Teleport
+	dbw MONMENU_SOFTBOILED, Function12ee6 ; Softboiled
+	dbw MONMENU_MILKDRINK,  Function12ee6 ; MilkDrink
+	dbw MONMENU_HEADBUTT,   Function12f26 ; Headbutt
+	dbw MONMENU_WATERFALL,  Function12e94 ; Waterfall
+	dbw MONMENU_ROCKSMASH,  Function12f3b ; RockSmash
+	dbw MONMENU_SWEETSCENT, Function12f50 ; SweetScent
+	dbw MONMENU_STATS,      OpenPartyStats
+	dbw MONMENU_SWITCH,     SwitchPartyMons
+	dbw MONMENU_ITEM,       GiveTakePartyMonItem
+	dbw MONMENU_CANCEL,     CancelPokemonAction
+	dbw MONMENU_MOVE,       Function12fba ; move
+	dbw MONMENU_MAIL,       MonMailAction ; mail
 ; 12aec
 
 
@@ -13260,7 +13260,7 @@
 	ld de, wd050
 	ld bc, $b
 	call CopyBytes
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp 1
 	jr nz, .asm_12ba0
 
@@ -13566,7 +13566,7 @@
 
 ; Interpret the menu.
 	jp c, .done
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .read
 	cp $2
@@ -14039,7 +14039,7 @@
 	and a
 	jp z, Function13154
 	ld a, [wd0e3]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	xor a
 	ld [wd0e3], a
 	hlcoord 1, 2
@@ -14118,7 +14118,7 @@
 	ld a, [wd0e3]
 	and a
 	jr nz, .asm_130de
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd0e3], a
 	call Function1bee
 	jp .asm_13018
@@ -14165,7 +14165,7 @@
 
 Function1313a: ; 1313a
 	push hl
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, $0
@@ -14283,7 +14283,7 @@
 	ld bc, PARTYMON_STRUCT_LENGTH
 	ld a, [CurPartyMon]
 	call AddNTimes
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, $0
@@ -18372,7 +18372,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [wd0dd], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd0d7], a
 	pop af
 	ld [wc2ce], a
@@ -18664,7 +18664,7 @@
 	call CopyMenuDataHeader
 	call InterpretMenu2
 	jr c, .quit
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .buy
 	cp $2
@@ -18948,7 +18948,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [WalkingY], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [WalkingX], a
 	call SpeechTextBox
 	ld a, [wcf73]
@@ -22003,592 +22003,8 @@
 	dw BattleMonNick
 ; 2400e
 
-Function2400e:: ; 2400e
-	ld hl, Function1c66
-	ld a, [wcf94]
-	rst FarCall
-	call Function24085
-	call UpdateSprites
-	call Function321c
-	call Function2408f
-	ret
-; 24022
+INCLUDE "engine/menu.asm"
 
-Function24022:: ; 24022
-	ld hl, Function1c66
-	ld a, [wcf94]
-	rst FarCall
-	call Function24085
-	callba MobileTextBorder
-	call UpdateSprites
-	call Function321c
-	call Function2408f
-	ret
-; 2403c
-
-Function2403c:: ; 2403c
-	ld hl, Function1c66
-	ld a, [wcf94]
-	rst FarCall
-	call Function24085
-	callba MobileTextBorder
-	call UpdateSprites
-	call Function321c
-	call Function2411a
-	ld hl, wcfa5
-	set 7, [hl]
-.asm_2405a
-	call DelayFrame
-	callba Function10032e
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_24076
-	call Function241ba
-	ld a, [wcfa8]
-	and c
-	jr z, .asm_2405a
-	call Function24098
-	ret
-
-.asm_24076
-	ld a, [wcfa4]
-	ld c, a
-	ld a, [wcfa3]
-	call SimpleMultiply
-	ld [wMenuCursorBuffer], a
-	and a
-	ret
-; 24085
-
-
-
-Function24085: ; 24085
-	xor a
-	ld [hBGMapMode], a
-	call Function1cbb
-	call Function240db
-	ret
-; 2408f
-
-Function2408f: ; 2408f
-	call Function2411a
-	call Function1bc9
-	call Function1ff8
-
-Function24098: ; 24098
-	ld a, [wcf91]
-	bit 1, a
-	jr z, .asm_240a6
-	call Function1bdd
-	bit 2, a
-	jr nz, .asm_240c9
-
-.asm_240a6
-	ld a, [wcf91]
-	bit 0, a
-	jr nz, .asm_240b4
-	call Function1bdd
-	bit 1, a
-	jr nz, .asm_240cb
-
-.asm_240b4
-	ld a, [wcfa4]
-	ld c, a
-	ld a, [wcfa9]
-	dec a
-	call SimpleMultiply
-	ld c, a
-	ld a, [wcfaa]
-	add c
-	ld [wMenuCursorBuffer], a
-	and a
-	ret
-
-.asm_240c9
-	scf
-	ret
-
-.asm_240cb
-	scf
-	ret
-; 240cd
-
-Function240cd: ; 240cd
-	ld a, [wcf92]
-	and $f
-	ret
-; 240d3
-
-Function240d3: ; 240d3
-	ld a, [wcf92]
-	swap a
-	and $f
-	ret
-; 240db
-
-Function240db: ; 240db
-	ld hl, wcf95
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function1cc6
-	call GetTileCoord
-	call Function240d3
-	ld b, a
-.asm_240eb
-	push bc
-	push hl
-	call Function240cd
-	ld c, a
-.asm_240f1
-	push bc
-	ld a, [wcf94]
-	call Function201c
-	inc de
-	ld a, [wcf93]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	pop bc
-	dec c
-	jr nz, .asm_240f1
-	pop hl
-	ld bc, $28
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, .asm_240eb
-	ld hl, wcf98
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	or h
-	ret z
-	ld a, [wcf97]
-	rst FarCall
-	ret
-; 2411a
-
-
-Function2411a: ; 2411a (9:411a)
-	call Function1cc6
-	ld a, b
-	ld [wcfa1], a
-	dec c
-	ld a, c
-	ld [wcfa2], a
-	call Function240d3
-	ld [wcfa3], a
-	call Function240cd
-	ld [wcfa4], a
-	call Function24179
-	call Function2418a
-	call Function24193
-	ld a, [wcfa4]
-	ld e, a
-	ld a, [wMenuCursorBuffer]
-	ld b, a
-	xor a
-	ld d, $0
-.asm_24146
-	inc d
-	add e
-	cp b
-	jr c, .asm_24146
-	sub e
-	ld c, a
-	ld a, b
-	sub c
-	and a
-	jr z, .asm_24157
-	cp e
-	jr z, .asm_24159
-	jr c, .asm_24159
-.asm_24157
-	ld a, $1
-.asm_24159
-	ld [wcfaa], a
-	ld a, [wcfa3]
-	ld e, a
-	ld a, d
-	and a
-	jr z, .asm_24169
-	cp e
-	jr z, .asm_2416b
-	jr c, .asm_2416b
-.asm_24169
-	ld a, $1
-.asm_2416b
-	ld [wcfa9], a
-	xor a
-	ld [wcfab], a
-	ld [wcfac], a
-	ld [wcfad], a
-	ret
-; 24179
-
-Function24179: ; 24179
-	xor a
-	ld hl, wcfa5
-	ld [hli], a
-	ld [hld], a
-	ld a, [wcf91]
-	bit 5, a
-	ret z
-	set 5, [hl]
-	set 4, [hl]
-	ret
-; 2418a
-
-Function2418a: ; 2418a
-	ld a, [wcf93]
-	or $20
-	ld [wcfa7], a
-	ret
-; 24193
-
-Function24193: ; 24193
-	ld hl, wcf91
-	ld a, $1
-	bit 0, [hl]
-	jr nz, .asm_2419e
-	or $2
-
-.asm_2419e
-	bit 1, [hl]
-	jr z, .asm_241a4
-	or $4
-
-.asm_241a4
-	ld [wcfa8], a
-	ret
-; 241a8
-
-
-Function241a8:: ; 241a8
-	call Function24329
-Function241ab:: ; 241ab
-	ld hl, wcfa6
-	res 7, [hl]
-	ld a, [hBGMapMode]
-	push af
-	call Function24216
-	pop af
-	ld [hBGMapMode], a
-	ret
-; 241ba
-
-Function241ba: ; 241ba
-	ld hl, wcfa6
-	res 7, [hl]
-	ld a, [hBGMapMode]
-	push af
-	call Function2431a
-	call Function24249
-	jr nc, .asm_241cd
-	call Function24270
-
-.asm_241cd
-	pop af
-	ld [hBGMapMode], a
-	call Function1bdd
-	ld c, a
-	ret
-; 241d5
-
-
-Function241d5: ; 241d5
-	call Function24329
-.asm_241d8
-	call Function2431a
-	call Function10402d ; BUG: This function is in another bank.
-	call Function241fa
-	jr nc, .asm_241f9
-	call Function24270
-	jr c, .asm_241f9
-	ld a, [wcfa5]
-	bit 7, a
-	jr nz, .asm_241f9
-	call Function1bdd
-	ld c, a
-	ld a, [wcfa8]
-	and c
-	jr z, .asm_241d8
-
-.asm_241f9
-	ret
-; 241fa
-
-Function241fa: ; 241fa
-.asm_241fa
-	call Function24259
-	ret c
-	ld c, $1
-	ld b, $3
-	call Function10062d ; BUG: This function is in another bank.
-	ret c
-	callba Function100337
-	ret c
-	ld a, [wcfa5]
-	bit 7, a
-	jr z, .asm_241fa
-	and a
-	ret
-; 24216
-
-
-Function24216: ; 24216
-.asm_24216
-	call Function2431a
-	call Function24238
-	call Function24249
-	jr nc, .asm_24237
-	call Function24270
-	jr c, .asm_24237
-	ld a, [wcfa5]
-	bit 7, a
-	jr nz, .asm_24237
-	call Function1bdd
-	ld b, a
-	ld a, [wcfa8]
-	and b
-	jr z, .asm_24216
-
-.asm_24237
-	ret
-; 24238
-
-Function24238: ; 24238
-	ld a, [hOAMUpdate]
-	push af
-	ld a, $1
-	ld [hOAMUpdate], a
-	call WaitBGMap
-	pop af
-	ld [hOAMUpdate], a
-	xor a
-	ld [hBGMapMode], a
-	ret
-; 24249
-
-Function24249: ; 24249
-.asm_24249
-	call RTC
-	call Function24259
-	ret c
-	ld a, [wcfa5]
-	bit 7, a
-	jr z, .asm_24249
-	and a
-	ret
-; 24259
-
-Function24259: ; 24259
-	ld a, [wcfa5]
-	bit 6, a
-	jr z, .asm_24266
-	callab Function8cf62
-
-.asm_24266
-	call JoyTextDelay
-	call Function1bdd
-	and a
-	ret z
-	scf
-	ret
-; 24270
-
-Function24270: ; 24270
-	call Function1bdd
-	bit 0, a
-	jp nz, Function24318
-	bit 1, a
-	jp nz, Function24318
-	bit 2, a
-	jp nz, Function24318
-	bit 3, a
-	jp nz, Function24318
-	bit 4, a
-	jr nz, .asm_242fa
-	bit 5, a
-	jr nz, .asm_242dc
-	bit 6, a
-	jr nz, .asm_242be
-	bit 7, a
-	jr nz, .asm_242a0
-	and a
-	ret
-
-.asm_24299: ; 24299
-	ld hl, wcfa6
-	set 7, [hl]
-	scf
-	ret
-
-.asm_242a0
-	ld hl, wcfa9
-	ld a, [wcfa3]
-	cp [hl]
-	jr z, .asm_242ac
-	inc [hl]
-	xor a
-	ret
-
-.asm_242ac
-	ld a, [wcfa5]
-	bit 5, a
-	jr nz, .asm_242ba
-	bit 3, a
-	jp nz, .asm_24299
-	xor a
-	ret
-
-.asm_242ba
-	ld [hl], $1
-	xor a
-	ret
-
-.asm_242be
-	ld hl, wcfa9
-	ld a, [hl]
-	dec a
-	jr z, .asm_242c8
-	ld [hl], a
-	xor a
-	ret
-
-.asm_242c8
-	ld a, [wcfa5]
-	bit 5, a
-	jr nz, .asm_242d6
-	bit 2, a
-	jp nz, .asm_24299
-	xor a
-	ret
-
-.asm_242d6
-	ld a, [wcfa3]
-	ld [hl], a
-	xor a
-	ret
-
-.asm_242dc
-	ld hl, wcfaa
-	ld a, [hl]
-	dec a
-	jr z, .asm_242e6
-	ld [hl], a
-	xor a
-	ret
-
-.asm_242e6
-	ld a, [wcfa5]
-	bit 4, a
-	jr nz, .asm_242f4
-	bit 1, a
-	jp nz, .asm_24299
-	xor a
-	ret
-
-.asm_242f4
-	ld a, [wcfa4]
-	ld [hl], a
-	xor a
-	ret
-
-.asm_242fa
-	ld hl, wcfaa
-	ld a, [wcfa4]
-	cp [hl]
-	jr z, .asm_24306
-	inc [hl]
-	xor a
-	ret
-
-.asm_24306
-	ld a, [wcfa5]
-	bit 4, a
-	jr nz, .asm_24314
-	bit 0, a
-	jp nz, .asm_24299
-	xor a
-	ret
-
-.asm_24314
-	ld [hl], $1
-	xor a
-	ret
-; 24318
-
-Function24318: ; 24318
-	xor a
-	ret
-; 2431a
-
-Function2431a: ; 2431a
-	ld hl, wcfac
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hl]
-	cp $ed
-	jr nz, Function24329
-	ld a, [wcfab]
-	ld [hl], a
-
-Function24329: ; 24329
-	ld a, [wcfa1]
-	ld b, a
-	ld a, [wcfa2]
-	ld c, a
-	call GetTileCoord
-	ld a, [wcfa7]
-	swap a
-	and $f
-	ld c, a
-	ld a, [wcfa9]
-	ld b, a
-	xor a
-	dec b
-	jr z, .asm_24348
-.asm_24344
-	add c
-	dec b
-	jr nz, .asm_24344
-
-.asm_24348
-	ld c, $14
-	call AddNTimes
-	ld a, [wcfa7]
-	and $f
-	ld c, a
-	ld a, [wcfaa]
-	ld b, a
-	xor a
-	dec b
-	jr z, .asm_2435f
-.asm_2435b
-	add c
-	dec b
-	jr nz, .asm_2435b
-
-.asm_2435f
-	ld c, a
-	add hl, bc
-	ld a, [hl]
-	cp $ed
-	jr z, .asm_2436b
-	ld [wcfab], a
-	ld [hl], $ed
-
-.asm_2436b
-	ld a, l
-	ld [wcfac], a
-	ld a, h
-	ld [wcfad], a
-	ret
-; 24374
-
 _BackUpTiles:: ; 24374
 	ld a, [rSVBK]
 	push af
@@ -22778,7 +22194,7 @@
 ; 2446d
 
 Function2446d:: ; 2446d
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	ld b, a
 	ld hl, wcfa1
 	ld a, [wMenuBorderTopCoord]
@@ -22792,7 +22208,7 @@
 	ld a, [wMenuBorderLeftCoord]
 	inc a
 	ld [hli], a
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	ld [hli], a
 	ld a, $1
 	ld [hli], a
@@ -22824,7 +22240,7 @@
 	and a
 	jr z, .asm_244b7
 	ld c, a
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	cp c
 	jr nc, .asm_244b9
 
@@ -22862,7 +22278,7 @@
 Pokepic:: ; 244e3
 	ld hl, MenuDataHeader_0x24547
 	call CopyMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call Function321c
 	ld b, $12
@@ -23079,7 +22495,7 @@
 
 .a_button: ; 24644
 	call Function1bee
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function248d5
 	ld a, [MenuSelection]
@@ -23105,10 +22521,10 @@
 ; 24673
 
 .select: ; 24673
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 7, a
 	jp z, xor_a_dec_a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function248d5
 	ld a, [MenuSelection]
@@ -23123,7 +22539,7 @@
 ; 24695
 
 .start: ; 24695
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 6, a
 	jp z, xor_a_dec_a
 	ld a, START
@@ -23135,7 +22551,7 @@
 	ld hl, wcfa6
 	bit 7, [hl]
 	jp z, xor_a_dec_a
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 3, a
 	jp z, xor_a_dec_a
 	ld a, D_LEFT
@@ -23147,7 +22563,7 @@
 	ld hl, wcfa6
 	bit 7, [hl]
 	jp z, xor_a_dec_a
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 2, a
 	jp z, xor_a_dec_a
 	ld a, D_RIGHT
@@ -23175,7 +22591,7 @@
 	bit 7, [hl]
 	jp z, xor_a
 	ld hl, wd0e4
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	add [hl]
 	ld b, a
 	ld a, [wd144]
@@ -23191,7 +22607,7 @@
 Function246fc: ; 246fc
 	ld a, [wd0e4]
 	ld c, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	add c
 	ld c, a
 	ret
@@ -23202,7 +22618,7 @@
 	ld de, SCREEN_WIDTH
 	add hl, de
 	ld de, 2 * SCREEN_WIDTH
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 .asm_24713
 	ld [hl], " "
 	add hl, de
@@ -23219,8 +22635,8 @@
 	ld a, [wcf95]
 	call GetFarByte
 	ld [wd144], a
-; if ([wd144] + 1) < [wcf92] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wcf92], 0)
-	ld a, [wcf92]
+; if ([wd144] + 1) < [wMenuData2Items] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wMenuData2Items], 0)
+	ld a, [wMenuData2Items]
 	ld c, a
 	ld a, [wd0e4]
 	add c
@@ -23229,7 +22645,7 @@
 	inc a
 	cp c
 	jr nc, .skip
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	ld c, a
 	ld a, [wd144]
 	inc a
@@ -23263,7 +22679,7 @@
 ; 24764
 
 Function24764: ; 24764
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	ld c, a
 	ld a, [wd144]
 	ld b, a
@@ -23273,7 +22689,7 @@
 	ld a, [wMenuBorderLeftCoord]
 	add $0
 	ld [wcfa2], a
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	cp b
 	jr c, .asm_24786
 	jr z, .asm_24786
@@ -23325,7 +22741,7 @@
 	ld a, $1
 
 .asm_247ca
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1
 	ld [wcfaa], a
 	xor a
@@ -23353,7 +22769,7 @@
 
 Function247f0: ; 247f0
 	call Function1cf1
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 4, a
 	jr z, .asm_2480d
 	ld a, [wd0e4]
@@ -23370,7 +22786,7 @@
 	call GetMemTileCoord
 	ld bc, $15
 	add hl, bc
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	ld b, a
 	ld c, $0
 .asm_2481a
@@ -23393,7 +22809,7 @@
 	ld a, c
 	cp b
 	jr nz, .asm_2481a
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 4, a
 	jr z, .asm_24850
 	ld a, [wMenuBorderBottomCoord]
@@ -23407,7 +22823,7 @@
 	ret
 
 .asm_24851
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 0, a
 	jr nz, .asm_24866
 	ld de, .string_2485f
@@ -23455,7 +22871,7 @@
 	cp b
 	jr nc, .asm_248b7
 	ld c, a
-	ld a, [wcf92]
+	ld a, [wMenuData2Items]
 	add c
 	cp b
 	jr c, .asm_248b7
@@ -23479,7 +22895,7 @@
 ; 248b8
 
 Function248b8: ; 248b8
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 5, a
 	ret z
 	bit 1, a
@@ -23489,7 +22905,7 @@
 	ret nz
 
 .asm_248c7
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function248d5
 	ld hl, wcf9e
@@ -23847,7 +23263,7 @@
 	call Function1e2e
 
 Function24b01: ; 24b01
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	ld de, $15
 	add hl, de
@@ -24095,41 +23511,41 @@
 MonMenuOptions: ; 24cd9
 
 ; Moves
-	db 0,  1, CUT
-	db 0,  2, FLY
-	db 0,  3, SURF
-	db 0,  4, STRENGTH
-	db 0,  6, FLASH
-	db 0,  5, WATERFALL
-	db 0,  7, WHIRLPOOL
-	db 0,  8, DIG
-	db 0,  9, TELEPORT
-	db 0, 10, SOFTBOILED
-	db 0, 11, HEADBUTT
-	db 0, 12, ROCK_SMASH
-	db 0, 13, MILK_DRINK
-	db 0, 14, SWEET_SCENT
+	db MONMENU_FIELD_MOVE, MONMENU_CUT,        CUT
+	db MONMENU_FIELD_MOVE, MONMENU_FLY,        FLY
+	db MONMENU_FIELD_MOVE, MONMENU_SURF,       SURF
+	db MONMENU_FIELD_MOVE, MONMENU_STRENGTH,   STRENGTH
+	db MONMENU_FIELD_MOVE, MONMENU_FLASH,      FLASH
+	db MONMENU_FIELD_MOVE, MONMENU_WATERFALL,  WATERFALL
+	db MONMENU_FIELD_MOVE, MONMENU_WHIRLPOOL,  WHIRLPOOL
+	db MONMENU_FIELD_MOVE, MONMENU_DIG,        DIG
+	db MONMENU_FIELD_MOVE, MONMENU_TELEPORT,   TELEPORT
+	db MONMENU_FIELD_MOVE, MONMENU_SOFTBOILED, SOFTBOILED
+	db MONMENU_FIELD_MOVE, MONMENU_HEADBUTT,   HEADBUTT
+	db MONMENU_FIELD_MOVE, MONMENU_ROCKSMASH,  ROCK_SMASH
+	db MONMENU_FIELD_MOVE, MONMENU_MILKDRINK,  MILK_DRINK
+	db MONMENU_FIELD_MOVE, MONMENU_SWEETSCENT, SWEET_SCENT
 
 ; Options
-	db 1, 15, 1 ; STATS
-	db 1, 16, 2 ; SWITCH
-	db 1, 17, 3 ; ITEM
-	db 1, 18, 4 ; CANCEL
-	db 1, 19, 5 ; MOVE
-	db 1, 20, 6 ; MAIL
-	db 1, 21, 7 ; ERROR!
+	db MONMENU_MENUOPTION, MONMENU_STATS,      1 ; STATS
+	db MONMENU_MENUOPTION, MONMENU_SWITCH,     2 ; SWITCH
+	db MONMENU_MENUOPTION, MONMENU_ITEM,       3 ; ITEM
+	db MONMENU_MENUOPTION, MONMENU_CANCEL,     4 ; CANCEL
+	db MONMENU_MENUOPTION, MONMENU_MOVE,       5 ; MOVE
+	db MONMENU_MENUOPTION, MONMENU_MAIL,       6 ; MAIL
+	db MONMENU_MENUOPTION, MONMENU_ERROR,      7 ; ERROR!
 
-	db $ff
+	db -1
 ; 24d19
 
-Function24d19: ; 24d19
+MonSubmenu: ; 24d19
 	xor a
 	ld [hBGMapMode], a
-	call Function24dd4
+	call GetMonSubmenuItems
 	callba Function8ea4a
-	ld hl, MenuDataHeader_0x24d3f
+	ld hl, .MenuDataHeader
 	call LoadMenuDataHeader
-	call Function24d47
+	call .GetTopCoord
 	call PopulateMonMenu
 
 	ld a, 1
@@ -24141,7 +23557,7 @@
 	ret
 ; 24d3f
 
-MenuDataHeader_0x24d3f: ; 24d3f
+.MenuDataHeader: ; 24d3f
 	db $40 ; tile backup
 	db 00, 06 ; start coords
 	db 17, 19 ; end coords
@@ -24149,7 +23565,8 @@
 	db 1 ; default option
 ; 24d47
 
-Function24d47: ; 24d47
+.GetTopCoord: ; 24d47
+; TopCoord = 1 + BottomCoord - 2 * (NumSubmenuItems + 1)
 	ld a, [Buffer1]
 	inc a
 	add a
@@ -24158,16 +23575,16 @@
 	sub b
 	inc a
 	ld [wMenuBorderTopCoord], a
-	call Function1cbb
+	call MenuBox
 	ret
 ; 24d59
 
 MonMenuLoop: ; 24d59
 .loop
-	ld a, $a0
-	ld [wcf91], a
-	ld a, [Buffer1]
-	ld [wcf92], a
+	ld a, $a0 ; flags
+	ld [wMenuData2Flags], a
+	ld a, [Buffer1] ; items
+	ld [wMenuData2Items], a
 	call Function1c10
 	ld hl, wcfa5
 	set 6, [hl]
@@ -24182,11 +23599,11 @@
 	jr .loop
 
 .cancel
-	ld a, 18 ; CANCEL
+	ld a, MONMENU_CANCEL ; CANCEL
 	ret
 
 .select
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, 0
@@ -24242,14 +23659,14 @@
 	ret
 ; 24dd4
 
-Function24dd4: ; 24dd4
-	call Function24e68
+GetMonSubmenuItems: ; 24dd4
+	call ResetMonSubmenu
 	ld a, [CurPartySpecies]
 	cp EGG
 	jr z, .egg
 	ld a, [wLinkMode]
 	and a
-	jr nz, .skip
+	jr nz, .skip_moves
 	ld a, MON_MOVES
 	call GetPartyParamLocation
 	ld d, h
@@ -24262,10 +23679,10 @@
 	and a
 	jr z, .next
 	push hl
-	call Function24e52
+	call IsFieldMove
 	pop hl
 	jr nc, .next
-	call Function24e83
+	call AddMonMenuItem
 
 .next
 	pop de
@@ -24274,13 +23691,13 @@
 	dec c
 	jr nz, .loop
 
-.skip
-	ld a, $f
-	call Function24e83
-	ld a, $10
-	call Function24e83
-	ld a, $13
-	call Function24e83
+.skip_moves
+	ld a, MONMENU_STATS
+	call AddMonMenuItem
+	ld a, MONMENU_SWITCH
+	call AddMonMenuItem
+	ld a, MONMENU_MOVE
+	call AddMonMenuItem
 	ld a, [wLinkMode]
 	and a
 	jr nz, .skip2
@@ -24290,66 +23707,66 @@
 	ld d, [hl]
 	callba ItemIsMail
 	pop hl
-	ld a, $14
+	ld a, MONMENU_MAIL
 	jr c, .ok
-	ld a, $11
+	ld a, MONMENU_ITEM
 
 .ok
-	call Function24e83
+	call AddMonMenuItem
 
 .skip2
 	ld a, [Buffer1]
-	cp $8
+	cp NUM_MON_SUBMENU_ITEMS
 	jr z, .ok2
-	ld a, $12
-	call Function24e83
+	ld a, MONMENU_CANCEL
+	call AddMonMenuItem
 
 .ok2
-	call Function24e76
+	call TerminateMonSubmenu
 	ret
 
 .egg
-	ld a, $f
-	call Function24e83
-	ld a, $10
-	call Function24e83
-	ld a, $12
-	call Function24e83
-	call Function24e76
+	ld a, MONMENU_STATS
+	call AddMonMenuItem
+	ld a, MONMENU_SWITCH
+	call AddMonMenuItem
+	ld a, MONMENU_CANCEL
+	call AddMonMenuItem
+	call TerminateMonSubmenu
 	ret
 ; 24e52
 
-Function24e52: ; 24e52
+IsFieldMove: ; 24e52
 	ld b, a
 	ld hl, MonMenuOptions
-.asm_24e56
+.next
 	ld a, [hli]
-	cp $ff
-	jr z, .asm_24e67
-	cp $1
-	jr z, .asm_24e67
+	cp -1
+	jr z, .nope
+	cp MONMENU_MENUOPTION
+	jr z, .nope
 	ld d, [hl]
 	inc hl
 	ld a, [hli]
 	cp b
-	jr nz, .asm_24e56
+	jr nz, .next
 	ld a, d
 	scf
 
-.asm_24e67
+.nope
 	ret
 ; 24e68
 
-Function24e68: ; 24e68
+ResetMonSubmenu: ; 24e68
 	xor a
 	ld [Buffer1], a
 	ld hl, Buffer2
-	ld bc, 9
+	ld bc, NUM_MON_SUBMENU_ITEMS + 1
 	call ByteFill
 	ret
 ; 24e76
 
-Function24e76: ; 24e76
+TerminateMonSubmenu: ; 24e76
 	ld a, [Buffer1]
 	ld e, a
 	ld d, $0
@@ -24359,7 +23776,7 @@
 	ret
 ; 24e83
 
-Function24e83: ; 24e83
+AddMonMenuItem: ; 24e83
 	push hl
 	push de
 	push af
@@ -24383,12 +23800,12 @@
 	call CopyMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call Function1c89
 	call WaitBGMap
 	call Function1c66
-	ld a, [wcf91]
+	ld a, [wMenuData2Flags]
 	bit 7, a
 	jr z, .asm_24ed0
 	call Function1c10
@@ -24684,7 +24101,7 @@
 ; 25072
 
 Function25072: ; 25072
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	ld de, $15
 	add hl, de
@@ -25700,7 +25117,7 @@
 	ld [wMenuCursorBuffer], a
 	call Function26806
 	call Function1e5d
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd1ef], a
 	jr c, .asm_2678e
 	ld a, [MenuSelection]
@@ -26646,7 +26063,7 @@
 	call ExitMenu
 	call Function1c66
 	jr c, .nope
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp 3
 	jr z, .nope
 	ld [Buffer2], a
@@ -28435,7 +27852,7 @@
 endr
 	ld [hl], a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	inc a
 	ld [wcf56], a
 	jp Function2888b
@@ -28480,7 +27897,7 @@
 .asm_2885b
 	bit 6, a
 	jr z, .asm_28883
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [OTPartyCount]
 	cp b
@@ -28496,7 +27913,7 @@
 	pop bc
 	pop hl
 	ld a, [PartyCount]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jr Function2888b
 
 .asm_28883
@@ -28544,7 +27961,7 @@
 .asm_288d9
 	bit 7, a
 	jr z, .asm_288fe
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	jp nz, Function2891c
 	ld a, $1
@@ -28558,13 +27975,13 @@
 	pop bc
 	pop hl
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp Function28803
 
 .asm_288fe
 	bit 6, a
 	jr z, Function2891c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [PartyCount]
 	cp b
@@ -28589,7 +28006,7 @@
 
 Function28926: ; 28926
 	call LoadTileMapToTempTileMap
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	hlcoord 0, 15
 	ld b, $1
@@ -28614,7 +28031,7 @@
 	ld a, $1
 	ld [wcfa2], a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld [wcfaa], a
 	ld a, $20
 	ld [wcfa7], a
@@ -28628,7 +28045,7 @@
 	jr z, .asm_289cd
 .asm_28983
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call Call_LoadTempTileMapToTileMap
 	jp Function2888b
 
@@ -28646,7 +28063,7 @@
 	ld a, $b
 	ld [wcfa2], a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld [wcfaa], a
 	ld a, $20
 	ld [wcfa7], a
@@ -28662,7 +28079,7 @@
 
 .asm_289cd
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $4
 	ld [wd263], a
 	callab Function50db9
@@ -28681,7 +28098,7 @@
 .asm_289fe
 	call Function1bee
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	dec a
 	ld [DefaultFlypoint], a
 	ld [wcf56], a
@@ -28765,7 +28182,7 @@
 
 
 Function28ac9: ; 28ac9
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jp nz, Function2891c
 	call Function1bf7
@@ -28795,12 +28212,12 @@
 	bit 6, a
 	jr z, .asm_28b03
 	ld a, [OTPartyCount]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp Function28803
 
 .asm_28b03
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp Function2888b
 
 .asm_28b0b
@@ -28931,7 +28348,7 @@
 	ld a, $3
 	ld [wcfa8], a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld [wcfaa], a
 	callba Function4d354
 	call Function1bd3
@@ -28941,7 +28358,7 @@
 	pop af
 	bit 1, a
 	jr nz, .asm_28c33
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	jr z, .asm_28c54
 
@@ -33601,7 +33018,7 @@
 	ld [wcfa8], a
 	ld a, [wTMHMPocketCursor]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1
 	ld [wcfaa], a
 	jr Function2c946
@@ -33610,7 +33027,7 @@
 	call Function2c9e2
 	call Function1bc9
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [wTMHMPocketCursor], a
 	xor a
@@ -33650,7 +33067,7 @@
 Function2c974: ; 2c974 (b:4974)
 	call Function2cad6
 	call Function2cb2a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld b, a
 	ld a, [wd0e2]
@@ -33662,7 +33079,7 @@
 
 Function2c98a: ; 2c98a (b:498a)
 	call Function2cab5
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 .asm_2c991
 	inc c
@@ -36576,7 +35993,7 @@
 	call Function350c
 	ld a, [wd0e4]
 	ld [OBPals + 8 * 6], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd0f1], a
 	ld a, [wcf73]
 	cp $2
@@ -36595,7 +36012,7 @@
 	call InterpretMenu2
 	call ExitMenu
 	jr c, .asm_44860
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld hl, .JumpTable
 	rst JumpTable
@@ -36904,7 +36321,7 @@
 	call Function3200
 	call SetPalettes
 	call Function1bc9
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 	jr asm_4815f
@@ -36911,7 +36328,7 @@
 
 Function48157: ; 48157 (12:4157)
 	call Function1bd3
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 
@@ -37004,7 +36421,7 @@
 
 Function4820d: ; 4820d (12:420d)
 	call Function1bee
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	push af
 	ld a, [DefaultFlypoint]
@@ -37095,7 +36512,7 @@
 	call ExitMenu
 	bit 0, a
 	jp z, Function4840c
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	ld hl, Strings_484fb
 	cp $1
@@ -37204,7 +36621,7 @@
 	ld [wd0e4], a
 	jr .asm_483af
 .asm_483af
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	ld [wMenuCursorBuffer], a
 	scf
@@ -37282,7 +36699,7 @@
 	call PlaceString
 	call Function486bf
 	pop bc
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld [hl], b
 	ld a, [DefaultFlypoint]
 	bit 6, a
@@ -38010,7 +37427,7 @@
 	ld a, $b
 	ld [wcfa2], a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	hlcoord 10, 8
 	ld b, $4
 	ld c, $8
@@ -38025,7 +37442,7 @@
 	pop af
 	bit 1, a
 	jp nz, Function48a9a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .asm_48a98
 	ld a, [wd003]
@@ -38630,7 +38047,7 @@
 	call Function3200
 	call InterpretMenu2
 	call WriteBackup
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [PlayerGender], a
 	ld c, 10
@@ -40219,7 +39636,7 @@
 	call Function3200
 	call SetPalettes
 	call Function1bc9
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 	jr .asm_49f5d
@@ -40226,7 +39643,7 @@
 
 .asm_49f55
 	call Function1bd3
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 
@@ -40238,7 +39655,7 @@
 	jr .asm_49f97
 
 .asm_49f67
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	cp $1
 	jp z, Function4a098
@@ -40262,7 +39679,7 @@
 	ret
 
 .asm_49f97
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	dec a
 	ld hl, MobileStrings2
@@ -40280,7 +39697,7 @@
 .asm_49fb7
 	call Function4a071
 	pop bc
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld [hl], b
 	ld b, $a
 	ld c, $1
@@ -40460,7 +39877,7 @@
 	ld b, $4
 	ld c, $12
 	call TextBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld hl, Strings_4a23d
 	call GetNthString
@@ -40475,7 +39892,7 @@
 	callba Function104148
 	call SetPalettes
 	call Function1bc9
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 	jr asm_4a19d
@@ -40482,7 +39899,7 @@
 
 Function4a195: ; 4a195 (12:6195)
 	call Function1bd3
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 
@@ -40493,7 +39910,7 @@
 	jr nz, .asm_4a1ba
 	jr .asm_4a1bc
 .asm_4a1a7
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	cp $1
 	jp z, Function4a20e
@@ -40505,7 +39922,7 @@
 	pop bc
 	ret
 .asm_4a1bc
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	dec a
 	ld hl, Strings_4a23d
@@ -40522,7 +39939,7 @@
 .asm_4a1db
 	call Function4a373
 	pop bc
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld [hl], b
 	lb bc, 6, 1
 	hlcoord 2, 3
@@ -40551,7 +39968,7 @@
 	jr c, Function4a239
 	call Function4a373
 	ld a, $2
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jr .asm_4a235
 .asm_4a235
 	pop bc
@@ -40603,7 +40020,7 @@
 	pop af
 	bit 1, a
 	jr nz, .asm_4a33b
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .asm_4a2f0
 	cp $3
@@ -40629,7 +40046,7 @@
 	call InterpretMenu2
 	bit 1, a
 	jr nz, .asm_4a338
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .asm_4a338
 	ld a, $5
@@ -40904,7 +40321,7 @@
 	call Function3200
 	call SetPalettes
 	call Function1bc9
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 	jr asm_4a54d
@@ -40911,7 +40328,7 @@
 
 Function4a545: ; 4a545 (12:6545)
 	call Function1bd3
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld b, [hl]
 	push bc
 
@@ -40922,7 +40339,7 @@
 	jr nz, .asm_4a574
 	jr .asm_4a57e
 .asm_4a557
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	cp $1
 	jp z, Function4a6ab
@@ -40940,7 +40357,7 @@
 	call ClearTileMap
 	jp Function49f0a
 .asm_4a57e
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	dec a
 	add a
@@ -40968,7 +40385,7 @@
 Function4a5b0: ; 4a5b0 (12:65b0)
 	call Function4a680
 	pop bc
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld [hl], b
 	ld b, $a
 	ld c, $1
@@ -41859,11 +41276,11 @@
 	ld a, [PartyCount]
 	inc a
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd0d8], a
 	cp b
 	jr z, .asm_4ab7e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurPartyMon], a
 	ld c, a
@@ -41880,7 +41297,7 @@
 	ret
 
 .asm_4ab6d
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd0d8], a
 .asm_4ab73
 	ld de, SFX_READ_TEXT_2
@@ -41946,7 +41363,7 @@
 	jr z, .asm_4abd5
 	ld a, [PartyCount]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1
 	ld [wcfaa], a
 	jr .asm_4ac29
@@ -41954,30 +41371,30 @@
 .asm_4abd5
 	bit 6, a
 	jr z, .asm_4abeb
-	ld a, [wcfa9]
-	ld [wcfa9], a
+	ld a, [MenuSelection2]
+	ld [MenuSelection2], a
 	and a
 	jr nz, .asm_4ac29
 	ld a, [PartyCount]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jr .asm_4ac29
 
 .asm_4abeb
 	bit 7, a
 	jr z, .asm_4ac08
-	ld a, [wcfa9]
-	ld [wcfa9], a
+	ld a, [MenuSelection2]
+	ld [MenuSelection2], a
 	ld a, [PartyCount]
 rept 2
 	inc a
 endr
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp b
 	jr nz, .asm_4ac29
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jr .asm_4ac29
 
 .asm_4ac08
@@ -41987,7 +41404,7 @@
 	jr z, .asm_4ac56
 
 .asm_4ac10
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [PartyCount]
 	inc a
@@ -42015,7 +41432,7 @@
 	dec a
 	jr nz, .asm_4ac3b
 	ld [hl], $7f
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [PartyCount]
 	inc a
@@ -42079,12 +41496,12 @@
 Function4acaa: ; 4acaa
 .asm_4acaa
 	ld a, $a0
-	ld [wcf91], a
+	ld [wMenuData2Flags], a
 	ld a, [wd019]
 	bit 1, a
 	jr z, .asm_4acc2
 	ld a, $2
-	ld [wcf92], a
+	ld [wMenuData2Items], a
 	ld a, $c
 	ld [wMenuBorderTopCoord], a
 	jr .asm_4accc
@@ -42091,7 +41508,7 @@
 
 .asm_4acc2
 	ld a, $4
-	ld [wcf92], a
+	ld [wMenuData2Items], a
 	ld a, $8
 	ld [wMenuBorderTopCoord], a
 
@@ -42120,7 +41537,7 @@
 	ld a, [wd019]
 	bit 1, a
 	jr nz, .asm_4ad0e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, Function4ad17
 	cp $2
@@ -42130,7 +41547,7 @@
 	jr .asm_4acf3
 
 .asm_4ad0e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, Function4ad56
 	jr .asm_4acf3
@@ -42280,7 +41697,7 @@
 	ret z
 	ld a, [PartyCount]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1
 	ld [wcfaa], a
 	ld a, [wd019]
@@ -42322,7 +41739,7 @@
 	call Function4ae5e
 	pop af
 	jr c, .asm_4ae57
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .asm_4ae57
 	and a
@@ -42330,7 +41747,7 @@
 
 .asm_4ae57
 	ld a, $2
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	scf
 	ret
 ; 4ae5e
@@ -42747,7 +42164,7 @@
 ; 4d319
 
 Function4d319: ; 4d319
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurPartyMon], a
 	call LowVolume
@@ -42754,7 +42171,7 @@
 	predef StatsScreenInit
 	ld a, [CurPartyMon]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call ClearScreen
 	call WhiteBGMap
 	call MaxVolume
@@ -42860,7 +42277,7 @@
 	call CopyMenuDataHeader
 	call InterpretMenu2
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	ret z
 	call ClockResetPassword
@@ -43136,7 +42553,7 @@
 	call CopyMenuDataHeader
 	call InterpretMenu2
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	ret z
 	callba EmptyAllSRAMBanks
@@ -46621,7 +46038,7 @@
 	ld a, $1
 
 .asm_50424
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $3
 	ld [wcfa8], a
 	ret
@@ -46642,7 +46059,7 @@
 .asm_50444
 	ld a, $1
 .asm_50446
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $3
 	ld [wcfa8], a
 	ret
@@ -46667,7 +46084,7 @@
 	ld a, [PartyCount]
 	inc a
 	ld b, a
-	ld a, [wcfa9] ; menu selection?
+	ld a, [MenuSelection2] ; menu selection?
 	cp b
 	jr z, .exitmenu ; CANCEL
 	ld [wd0d8], a
@@ -46675,7 +46092,7 @@
 	ld b, a
 	bit 1, b
 	jr nz, .exitmenu ; B button?
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurPartyMon], a
 	ld c, a
@@ -47825,7 +47242,7 @@
 	push bc
 	push hl
 	push de
-	ld hl, wcfa9
+	ld hl, MenuSelection2
 	ld a, [hl]
 	push af
 	ld [hl], b
@@ -48302,7 +47719,7 @@
 	dec a
 	ld [wd1ec], a
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [Buffer2], a ; wd1eb (aliases: MovementType)
 	cp b
@@ -52958,7 +52375,7 @@
 	ld de, String_84865
 	call PlaceString
 	ld a, [wd007]
-	ld bc, 9
+	ld bc, BOX_NAME_LENGTH
 	ld hl, wBoxNames
 	call AddNTimes
 	ld d, h
@@ -53939,7 +53356,7 @@
 .GotGender
 	call LoadMenuDataHeader
 	call InterpretMenu2
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function1db8
 	call WriteBackup
@@ -55770,7 +55187,7 @@
 	ret
 
 .one: ; 8d2a2 (23:52a2)
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld hl, $
 	add hl, bc
 	cp [hl]
@@ -55821,7 +55238,7 @@
 	ret
 
 .three: ; 8d2ea (23:52ea)
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld hl, $
 	add hl, bc
 	cp [hl]
@@ -58462,7 +57879,7 @@
 Function8ea4a: ; 8ea4a
 	ld hl, wPartyMonMenuIconAnims
 	ld e, $6
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld d, a
 .loop
 	ld a, [hl]
@@ -63720,7 +63137,7 @@
 	call InterpretMenu2
 	call WriteBackup
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, $4
 	sub b
@@ -63803,7 +63220,7 @@
 	call LoadMenuTextBox
 	lb bc, 14, 12
 	call PlaceYesNoBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call WriteBackup
 	and a
@@ -69533,7 +68950,7 @@
 ; e2101
 
 Functione2101: ; e2101
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld l, a
 	ld h, 0
@@ -69850,7 +69267,7 @@
 	ld de, PCString_WhatsUp
 	call Functione2a6e
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call Functione298d
 	ret
 
@@ -69857,11 +69274,11 @@
 Functione247d: ; e247d (38:647d)
 	ld hl, BillsPCDepositMenuDataHeader
 	call CopyMenuDataHeader
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	call Function1d4b
 	call InterpretMenu2
 	jp c, BillsPCDepositFuncCancel
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	and $3
 	ld e, a
@@ -69914,7 +69331,7 @@
 	jr c, BillsPCDepositFuncCancel
 	call Functione2f5f
 	jr c, BillsPCDepositFuncCancel
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	ld de, PCString_ReleasePKMN
 	call Functione2a6e
@@ -69921,7 +69338,7 @@
 	call LoadMenuDataHeader_0x1d75
 	lb bc, 14, 11
 	call PlaceYesNoBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call ExitMenu
 	and a
@@ -69945,7 +69362,7 @@
 	ld de, PCString_WhatsUp
 	call Functione2a6e
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ret
 
 BillsPCDepositFuncCancel: ; e2537 (38:6537)
@@ -70115,7 +69532,7 @@
 	ld de, PCString_WhatsUp
 	call Functione2a6e
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call Functione298d
 	ret
 
@@ -70122,11 +69539,11 @@
 BillsPC_Withdraw: ; e2675 (38:6675)
 	ld hl, .MenuDataHeader
 	call CopyMenuDataHeader
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	call Function1d4b
 	call InterpretMenu2
 	jp c, .cancel
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	and 3
 	ld e, a
@@ -70175,7 +69592,7 @@
 	ret
 
 .release: ; e26d8 (38:66d8)
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	call Functione2f5f
 	jr c, .FailedRelease
@@ -70184,7 +69601,7 @@
 	call LoadMenuDataHeader_0x1d75
 	lb bc, 14, 11
 	call PlaceYesNoBox
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call ExitMenu
 	and a
@@ -70208,7 +69625,7 @@
 	ld de, PCString_WhatsUp
 	call Functione2a6e
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ret
 
 .cancel: ; e272b (38:672b)
@@ -70376,7 +69793,7 @@
 	ld de, PCString_WhatsUp
 	call Functione2a6e
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call Functione298d
 	ret
 ; e285d
@@ -70384,11 +69801,11 @@
 Functione285d: ; e285d
 	ld hl, MenuDataHeader_0xe28c3
 	call CopyMenuDataHeader
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	call Function1d4b
 	call InterpretMenu2
 	jp c, Functione28bd
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	and 3
 	ld e, a
@@ -70758,7 +70175,7 @@
 .gotbox
 	dec a
 	ld hl, wBoxNames
-	ld bc, 9
+	ld bc, BOX_NAME_LENGTH
 	call AddNTimes
 	ld e, l
 	ld d, h
@@ -72116,8 +71533,12 @@
 ; e3609
 
 .boxes: ; e3609
-	db 14
-	db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
+	db NUM_BOXES
+x = 1
+rept NUM_BOXES
+	db x
+x = x + 1
+endr
 	db -1
 ; e3619
 
@@ -72125,14 +71546,14 @@
 	push de
 	ld a, [MenuSelection]
 	dec a
-	call Functione3626
+	call GetBoxName
 	pop hl
 	call PlaceString
 	ret
 ; e3626
 
-Functione3626: ; e3626 (38:7626)
-	ld bc, 9
+GetBoxName: ; e3626 (38:7626)
+	ld bc, BOX_NAME_LENGTH
 	ld hl, wBoxNames
 	call AddNTimes
 	ld d, h
@@ -72166,6 +71587,7 @@
 ; e3668
 
 String_e3668: ; e3668
+	; db "/20@"
 	db "/"
 	db "0" + MONS_PER_BOX / 10 ; "2"
 	db "0" + MONS_PER_BOX % 10 ; "0"
@@ -72241,7 +71663,7 @@
 	call PlaceString
 	ld a, [wCurBox]
 	and $f
-	call Functione3626
+	call GetBoxName
 	hlcoord 11, 2
 	call PlaceString
 	ret
@@ -72257,7 +71679,7 @@
 	call InterpretMenu2
 	call ExitMenu
 	ret c
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .asm_e3734
 	cp $2
@@ -72305,7 +71727,7 @@
 	call LoadFontsBattleExtra
 	ld a, [MenuSelection]
 	dec a
-	call Functione3626
+	call GetBoxName
 	ld e, l
 	ld d, h
 	ld hl, DefaultFlypoint
@@ -72313,7 +71735,7 @@
 	call InitString
 	ld a, [MenuSelection]
 	dec a
-	call Functione3626
+	call GetBoxName
 	ld de, DefaultFlypoint
 	call CopyName2
 	ret
@@ -75526,8 +74948,8 @@
 INCBIN "gfx/unknown/0f8ae0.2bpp"
 ; f8b10
 
-GFX_f8b10: ; f8b10
-INCBIN "gfx/unknown/0f8b10.2bpp"
+ExpBarGFX: ; f8b10
+INCBIN "gfx/battle/expbar.2bpp"
 ; f8ba0
 
 TownMapGFX: ; f8ba0
@@ -75683,9 +75105,9 @@
 	ld hl, VTiles2 tile $73
 	lb bc, BANK(GFX_f8ae0), 6
 	call Functionddc
-	ld de, GFX_f8b10
+	ld de, ExpBarGFX
 	ld hl, VTiles2 tile $55
-	lb bc, BANK(GFX_f8b10), 9
+	lb bc, BANK(ExpBarGFX), 9
 	call Functiondc9
 	ld de, GFX_f9214 + $90
 	ld hl, VTiles2 tile $5e
@@ -75708,9 +75130,9 @@
 	ld hl, VTiles2 tile $76
 	lb bc, BANK(GFX_f8ae0), 2
 	call Functionddc
-	ld de, GFX_f8b10
+	ld de, ExpBarGFX
 	ld hl, VTiles2 tile $55
-	lb bc, BANK(GFX_f8b10), 8
+	lb bc, BANK(ExpBarGFX), 8
 	call Functiondc9
 
 Functionfb571: ; fb571
--- a/misc/battle_tower_47.asm
+++ b/misc/battle_tower_47.asm
@@ -368,7 +368,7 @@
 	ld [wcd2b], a
 	ld a, $ff
 	ld [wcd24], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	call Function11c254
 	call WhiteBGMap
@@ -1813,7 +1813,7 @@
 
 Function11cb52: ; 11cb52 (47:4b52)
 	ld hl, Unknown_11cc01
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 .asm_11cb58
 	dec a
 	jr z, .asm_11cb5f
@@ -1851,7 +1851,7 @@
 	ld a, $4
 	call GetSRAMBank
 	ld hl, $a007
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	sla a
 	sla a
@@ -1874,7 +1874,7 @@
 	ld de, Unknown_11cfc6
 	call Function11cfce
 	ld hl, Unknown_11cc7e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 .asm_11cbba
 	dec a
 	jr z, .asm_11cbc1
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -259,7 +259,7 @@
 	call Function8920f
 	pop af
 	jr c, .done
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .done
 	and a
@@ -2222,7 +2222,7 @@
 	push hl
 	call _hl_
 	call Function89dab
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	call Function891ab
 	pop af
@@ -2253,7 +2253,7 @@
 	call PlayClickSFX
 	ld a, [wcfa3]
 	ld c, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp c
 	jr z, .asm_89dd9
 	call Function1bee
@@ -2273,7 +2273,7 @@
 .asm_89dea
 	call Function8a31c
 	jr z, .asm_89dfd
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld c, a
 	push bc
 	ld hl, Jumptable_89e04
@@ -2782,7 +2782,7 @@
 	call Function8923c
 	call Function8a17b
 	jr c, .asm_8a16b
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd030], a
 	dec d
 	jr z, .asm_8a140
@@ -2865,7 +2865,7 @@
 	ld c, $12
 	call TextBox
 	hlcoord 1, 14
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld de, Strings_8a1cc
 	dec a
 	ld c, a
@@ -3104,7 +3104,7 @@
 	ret
 
 Function8a3a2: ; 8a3a2 (22:63a2)
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld hl, DefaultFlypoint
 	ld e, a
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -854,7 +854,7 @@
 
 .asm_8b824
 	ld c, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wd030], a
 	ld a, [wd0e4]
 	ld [wd031], a
@@ -863,7 +863,7 @@
 
 Function8b832: ; 8b832
 	ld a, [wd0e4]
-	ld hl, wcf92
+	ld hl, wMenuData2Items
 	sub [hl]
 	jr nc, Function8b84b
 	xor a
@@ -872,7 +872,7 @@
 
 Function8b83e: ; 8b83e
 	ld a, [wd0e4]
-	ld hl, wcf92
+	ld hl, wMenuData2Items
 	add [hl]
 	cp $24
 	jr c, Function8b84b
@@ -880,7 +880,7 @@
 
 Function8b84b: ; 8b84b
 	ld [wd0e4], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wMenuCursorBuffer], a
 	ret
 ; 8b855
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -901,7 +901,7 @@
 	ret z
 	jr nc, .asm_1005a6
 	xor a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 
 .asm_1005a6
 	call ExitMenu
@@ -953,7 +953,7 @@
 	ret z
 	jr nc, .asm_1005f0
 	xor a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 .asm_1005f0
 	call ExitMenu
 	ld a, [wcd26]
@@ -1882,16 +1882,16 @@
 	jr .asm_100bd1
 
 .asm_100bff
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	and a
 	jp nz, .asm_100bcb
 	ld a, [wd0eb]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp .asm_100bcb
 
 .asm_100c10
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [wd0eb]
 rept 2
@@ -1900,11 +1900,11 @@
 	cp b
 	jp nz, .asm_100bcb
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	jp .asm_100bcb
 
 .asm_100c25
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurMoveNum], a
 	ld a, $1
@@ -1912,10 +1912,10 @@
 	ret
 
 .asm_100c30
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurMoveNum], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, 0
@@ -1930,7 +1930,7 @@
 	dec a
 	cp c
 	jr z, .asm_100c63
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, 0
@@ -1978,7 +1978,7 @@
 	ld [wcfa3], a
 	ld a, [CurMoveNum]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ret
 ; 100cad
 
@@ -2007,7 +2007,7 @@
 	ld a, [PartyCount]
 	inc a
 	ld b, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp b
 	jr z, .asm_100d17
 	ld [wd0d8], a
@@ -2015,7 +2015,7 @@
 	ld b, a
 	bit 1, b
 	jr nz, .asm_100d17
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurPartyMon], a
 	ld c, a
@@ -2084,7 +2084,7 @@
 	call CopyMenuDataHeader
 	xor a
 	ld [hBGMapMode], a
-	call Function1cbb
+	call MenuBox
 	call UpdateSprites
 	call Function1c89
 	call WaitBGMap
@@ -4141,7 +4141,7 @@
 	call Function1013dd
 	ld a, $0
 	ld [wcd26], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .asm_101b51
 	ld a, $2
@@ -4194,7 +4194,7 @@
 	call Function1013dd
 	ld a, $0
 	ld [wcd26], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .asm_101bbc
 	ld a, $1
@@ -4238,7 +4238,7 @@
 	call Function1013dd
 	ld a, $0
 	ld [wcd26], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr nz, .asm_101c0b
 	ld a, $2a
@@ -5330,7 +5330,7 @@
 	call Function102d9a
 	call Function102dd3
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 
 Function1023a1: ; 1023a1
 	call Function102283
@@ -5696,7 +5696,7 @@
 	ret
 
 .asm_10262e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [OTPartyCount]
 	cp b
@@ -5703,13 +5703,13 @@
 	ret nz
 	call Function1bf7
 	ld a, [PartyCount]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1d
 	ld [wcd49], a
 	ret
 
 .asm_102646
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	ret nz
 	ld a, $23
@@ -5758,7 +5758,7 @@
 	ret
 
 .asm_10269a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ret nz
 	call Function1bf7
@@ -5767,7 +5767,7 @@
 	ret
 
 .asm_1026a8
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	ld a, [PartyCount]
 	cp b
@@ -5827,7 +5827,7 @@
 	hlcoord 9, 17
 	ld [hl], $7f
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1d
 	ld [wcd49], a
 	ret
@@ -5836,7 +5836,7 @@
 	hlcoord 9, 17
 	ld [hl], $7f
 	ld a, [OTPartyCount]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, $1f
 	ld [wcd49], a
 	ret
@@ -5947,7 +5947,7 @@
 asm_1027d1:
 	ld hl, wcd4b
 	set 3, [hl]
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wcd4c], a
 	ld a, $7
 	ld [wcd49], a
@@ -5978,7 +5978,7 @@
 ; 102814
 
 Function102814: ; 102814
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wcd52], a
 	ld a, [wcd4c]
 	dec a
@@ -6030,7 +6030,7 @@
 	call Function1028fc
 	ret nc
 	ld a, [wcd52]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, [wcd51]
 	cp $8
 	jr nz, .asm_102886
@@ -6062,7 +6062,7 @@
 
 Function1028ab: ; 1028ab
 	ld a, [wcd52]
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call Function102f15
 	ld hl, wcd4b
 	set 1, [hl]
@@ -6288,7 +6288,7 @@
 	push af
 	call ExitMenu
 	pop af
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr nz, .asm_102a21
 	ld a, $1
@@ -6439,12 +6439,12 @@
 Function102b4e: ; 102b4e
 	ld a, $1
 	ld [MonType], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	ld de, Unknown_102b73
 	call Function1bb1
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, [OTPartyCount]
 	ld [wcfa3], a
 	ret
@@ -6464,12 +6464,12 @@
 Function102b7b: ; 102b7b
 	xor a
 	ld [MonType], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	push af
 	ld de, Unknown_102b94
 	call Function1bb1
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld a, [PartyCount]
 	ld [wcfa3], a
 	ret
@@ -6489,7 +6489,7 @@
 ; 102bac
 
 Function102bac: ; 102bac
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld [CurPartyMon], a
 	call LowVolume
@@ -6497,7 +6497,7 @@
 	callba Function4dc8f
 	ld a, [CurPartyMon]
 	inc a
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	call Function102d9a
 	call ClearPalettes
 	call DelayFrame
@@ -7695,7 +7695,7 @@
 	call InterpretMenu2
 	call WriteBackup
 	jr c, .asm_10363b
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [ScriptVar], a
 	ld c, a
 	ld a, [wdc40]
@@ -7783,7 +7783,7 @@
 	call InterpretMenu2
 	call ExitMenu
 	jr c, .asm_1036f4
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr z, .asm_1036d9
 	cp $2
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -7972,11 +7972,11 @@
 Function1178aa: ; 1178aa (45:78aa)
 	ld hl, MenuDataHeader_1179b5
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	ld hl, MenuDataHeader_1179bd
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	callba Function104061
 	hlcoord 16, 8
@@ -8075,7 +8075,7 @@
 Function117984: ; 117984 (45:7984)
 	ld hl, MenuDataHeader_1179b5
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	callba Function104061
 	hlcoord 1, 14
@@ -8235,7 +8235,7 @@
 	ret nz
 	ld hl, Data117cbc
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	jp Function117cdd
 
@@ -8247,7 +8247,7 @@
 Function117b31:
 	ld hl, Data117cc4
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	hlcoord 16, 8
 	ld de, YesNo117ccc
@@ -8385,7 +8385,7 @@
 Function117c4a:
 	ld hl, Data117cbc
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	callba Function104061
 	ld hl, MobileStadiumSuccessText
--- a/misc/mobile_46.asm
+++ b/misc/mobile_46.asm
@@ -1284,7 +1284,7 @@
 	ret nz
 	ld hl, MenuDataHeader_119cf7
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	call Function321c
 	hlcoord 16, 8, AttrMap
@@ -4739,7 +4739,7 @@
 Function11a207: ; 11a207
 	ld hl, MenuDataHeader_11a2de
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	call Function321c
 	hlcoord 16, 8
@@ -5954,7 +5954,7 @@
 	call ClearSprites
 	call ClearTileMap
 	callba Function17c000
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld [wcd82], a
 	dec a
 	ld [hObjectStructIndexBuffer], a
@@ -6018,7 +6018,7 @@
 Function11ad95: ; 11ad95
 	ld hl, MenuDataHeader_11ae38
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	hlcoord 12, 12
 	ld de, String_11ae40
 	call PlaceString
@@ -6028,7 +6028,7 @@
 	callba Function104061
 	call Function11ad8a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, Unknown_11afcc
 	call Function11afb7
 
@@ -6055,13 +6055,13 @@
 	jr .asm_11ae2e
 
 .asm_11ade6
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ret z
 	jr .asm_11adf4
 
 .asm_11aded
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	inc a
 	cp $4
 	ret z
@@ -6071,7 +6071,7 @@
 	ld hl, Unknown_11afcc
 	call Function11afbb
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, Unknown_11afcc
 	call Function11afb7
 	ret
@@ -6078,7 +6078,7 @@
 
 .asm_11ae06
 	call PlayClickSFX
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld hl, wcd30
 	ld [hl], a
@@ -6085,7 +6085,7 @@
 	and a
 	jr z, .asm_11ae28
 	hlcoord 2, 14
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .asm_11ae23
 	call Function11b272
@@ -6126,13 +6126,13 @@
 Function11ae4e: ; 11ae4e
 	ld hl, MenuDataHeader_11afe8
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	hlcoord 10, 14
 	ld de, String_11aff0
 	call PlaceString
 	ld hl, MenuDataHeader_11b013
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	hlcoord 16, 8
 	ld de, String_11b01b
 	call PlaceString
@@ -6145,7 +6145,7 @@
 	callba Function104061
 	call Function11ad8a
 	ld a, $1
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, Unknown_11afd2
 	call Function11afb7
 
@@ -6176,13 +6176,13 @@
 	jr .asm_11aef7
 
 .asm_11aec1
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ret z
 	jr .asm_11aecf
 
 .asm_11aec8
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	inc a
 	cp $3
 	ret z
@@ -6192,7 +6192,7 @@
 	ld hl, Unknown_11afd2
 	call Function11afbb
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, Unknown_11afd2
 	call Function11afb7
 	ret
@@ -6199,7 +6199,7 @@
 
 .asm_11aee1
 	call PlayClickSFX
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .asm_11aeb4
 	ld a, [wcd4b]
@@ -6217,13 +6217,13 @@
 Function11af04: ; 11af04
 	ld hl, MenuDataHeader_11afe8
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	hlcoord 10, 14
 	ld de, String_11b003
 	call PlaceString
 	ld hl, MenuDataHeader_11b013
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	hlcoord 16, 8
 	ld de, String_11b01b
 	call PlaceString
@@ -6236,7 +6236,7 @@
 	callba Function104061
 	call Function11ad8a
 	ld a, $2
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, Unknown_11afd2
 	call Function11afb7
 
@@ -6267,13 +6267,13 @@
 	jr .asm_11afaa
 
 .asm_11af77
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ret z
 	jr .asm_11af85
 
 .asm_11af7e
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	inc a
 	cp $3
 	ret z
@@ -6283,7 +6283,7 @@
 	ld hl, Unknown_11afd2
 	call Function11afbb
 	pop af
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 	ld hl, Unknown_11afd2
 	call Function11afb7
 	ret
@@ -6290,7 +6290,7 @@
 
 .asm_11af97
 	call PlayClickSFX
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $2
 	jr z, .asm_11af6a
 	ld a, $6
@@ -6313,7 +6313,7 @@
 	ld e, $7f
 
 asm_11afbd:
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	dec a
 	ld c, a
 	ld b, 0
--- a/misc/mobile_5b.asm
+++ b/misc/mobile_5b.asm
@@ -1168,7 +1168,7 @@
 	swap a
 	and $f
 	ld c, a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	ld b, a
 	xor a
 	dec b
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -2270,7 +2270,7 @@
 	call CloseSRAM
 	ld hl, MenuDataHeader_171c6b
 	call LoadMenuDataHeader
-	call Function1cbb
+	call MenuBox
 	call GetMemTileCoord
 	callba Function104061
 	hlcoord 1, 14
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -462,7 +462,7 @@
 	ld a, [ScriptVar]
 	cp $5
 	jr nz, .asm_17d25d
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $3
 	ret z
 	jr c, .asm_17d25d
@@ -470,7 +470,7 @@
 	jr .asm_17d260
 
 .asm_17d25d
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 
 .asm_17d260
 	ld [ScriptVar], a
@@ -1932,13 +1932,13 @@
 	call InterpretMenu2
 	jr nc, .asm_17dc6e
 	ld a, $2
-	ld [wcfa9], a
+	ld [MenuSelection2], a
 
 .asm_17dc6e
 	call WriteBackup
 	pop af
 	ld [rSVBK], a
-	ld a, [wcfa9]
+	ld a, [MenuSelection2]
 	cp $1
 	jr nz, .asm_17dc85
 	ld a, [$c68a]
--- a/wram.asm
+++ b/wram.asm
@@ -1238,9 +1238,9 @@
 wcf87:: ds 1
 wMenuCursorBuffer:: ds 2
 wcf8a:: ds 7 ; menu data 2 bank?
-wcf91:: ds 1
 
-wcf92:: ds 1
+wMenuData2Flags:: ds 1
+wMenuData2Items:: ds 1
 wcf93:: ds 1
 wcf94:: ds 1
 wcf95:: ds 1 ; bank
@@ -1257,7 +1257,7 @@
 wcfa6:: ds 1
 wcfa7:: ds 1
 wcfa8:: ds 1
-wcfa9:: ds 1
+MenuSelection2:: ds 1
 wcfaa:: ds 1
 wcfab:: ds 1
 wcfac:: ds 1
@@ -2321,7 +2321,7 @@
 	ds 2
 
 ; 8 chars + $50
-wBoxNames:: ds 9 * NUM_BOXES ; db75
+wBoxNames:: ds BOX_NAME_LENGTH * NUM_BOXES ; db75
 
 wCelebiEvent:: ds 1
 	ds 1
--