shithub: pokecrystal

Download patch

ref: 023cfdbb051ea5184ebc7fa329db3ca43f1ca23e
parent: 23f9b5d21e93f1b3c8de5e4ecf72da89265ccea8
author: yenatch <[email protected]>
date: Thu Jun 12 14:32:42 EDT 2014

Consolidate monster structs in wram and sram.

The PartyMon struct is really the box struct with volatile variables like status added.

Some other labels have been reworked.
Move structs no longer have explicit labels since their location is arbitrary and usually shared.

--- a/battle/ai/scoring.asm
+++ b/battle/ai/scoring.asm
@@ -16,7 +16,7 @@
 	inc de
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	ld c, a
 
 	push hl
@@ -28,7 +28,7 @@
 	pop hl
 	jr nz, .discourage
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	push hl
 	push de
 	push bc
@@ -82,7 +82,7 @@
 	inc de
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 
 	cp EFFECT_ATTACK_UP
 	jr c, .checkmove
@@ -119,7 +119,7 @@
 	jr nz, .discourage
 
 .encourage
-	call Function_0x39527
+	call Function39527
 	jr c, .checkmove
 
 	dec [hl]
@@ -173,7 +173,7 @@
 	jr c, .noteffective
 
 ; effective
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .checkmove
 	dec [hl]
@@ -185,7 +185,7 @@
 	push hl
 	push de
 	push bc
-	ld a, [EnemyMoveType]
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
 	ld d, a
 	ld hl, EnemyMonMoves
 	ld b, EnemyMonMovesEnd - EnemyMonMoves + 1
@@ -199,10 +199,10 @@
 	jr z, .asm_38693
 
 	call AIGetEnemyMove
-	ld a, [EnemyMoveType]
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
 	cp d
 	jr z, .checkmove2
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr nz, .asm_38692
 	jr .checkmove2
@@ -244,7 +244,7 @@
 	inc de
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr nz, .checkmove
 
@@ -275,7 +275,7 @@
 	push hl
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	ld hl, .table_386f2
 	ld de, 3
 	call IsInArray
@@ -398,7 +398,7 @@
 	ret nc
 
 .asm_387f0
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	dec [hl]
@@ -421,7 +421,7 @@
 	call AICheckEnemyMaxHP
 
 	ret c
-	call Function_0x39521
+	call Function39521
 
 	ret c
 	dec [hl]
@@ -484,8 +484,8 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveAccuracy]
-	cp $b4
+	ld a, [wEnemyMoveStruct + MOVE_ACC]
+	cp 180
 	jr nc, .asm_3884f
 
 	ld a, $1
@@ -513,7 +513,7 @@
 
 .asm_3887a
 	pop hl
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -538,8 +538,8 @@
 	inc de
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveAccuracy]
-	cp $b4
+	ld a, [wEnemyMoveStruct + MOVE_ACC]
+	cp 180
 	jr nc, .asm_3888b
 
 	dec [hl]
@@ -602,19 +602,16 @@
 	jp nc, AIDiscourageMove
 
 	call AICheckEnemyMaxHP
-
 	jr nc, .asm_388f2
 
 	ld a, [PlayerSubStatus5]
-	bit 0, a
+	bit SUBSTATUS_TOXIC, a
 	jr nz, .asm_388ef
 
 	call Random
-
 	cp $b2
 	jr nc, .asm_38911
 
-
 .asm_388ef
 	dec [hl]
 	dec [hl]
@@ -622,31 +619,24 @@
 
 .asm_388f2
 	call AICheckEnemyQuarterHP
-
 	jr nc, .asm_3890f
 
 	call Random
-
 	cp $a
 	jr c, .asm_388ef
 
 	call AICheckEnemyHalfHP
-
 	jr nc, .asm_3890a
 
-	call Function_0x39521
-
+	call Function39521
 	jr c, .asm_388ef
-
 	jr .asm_38911
 
 
 .asm_3890a
-	call Function_0x39527
-
+	call Function39527
 	jr c, .asm_38911
 
-
 .asm_3890f
 	inc [hl]
 	inc [hl]
@@ -653,11 +643,11 @@
 
 .asm_38911
 	ld a, [PlayerSubStatus5]
-	bit 0, a
+	bit SUBSTATUS_TOXIC, a
 	jr nz, .asm_38938
 
 	ld a, [PlayerSubStatus4]
-	bit 7, a
+	bit SUBSTATUS_LEECH_SEED, a
 	jr nz, .asm_38941
 
 	ld a, [EnemyEvaLevel]
@@ -671,7 +661,7 @@
 	jr nz, .asm_388ef
 
 	ld a, [PlayerSubStatus1]
-	bit 6, a
+	bit SUBSTATUS_ENCORED, a
 	jr nz, .asm_388ef
 
 
@@ -688,7 +678,7 @@
 	ret
 
 .asm_38941
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -706,7 +696,7 @@
 	ret c
 
 .asm_38954
-	call Function_0x39521
+	call Function39521
 
 	ret c
 	dec [hl]
@@ -721,30 +711,29 @@
 	jr nz, .asm_38968
 
 	call AICompareSpeed
-
 	ret nc
+
 	jp AIDiscourageMove
 
-
 .asm_38968
 	push hl
 	ld hl, Table_0x39301
 	ld de, 1
 	call IsInArray
-
 	pop hl
 	ret nc
-	call Function_0x39527
 
+	call Function39527
 	ret c
+
 	dec [hl]
 	call AICompareSpeed
-
 	ret nc
-	call Random
 
+	call Random
 	cp $19
 	ret c
+
 	dec [hl]
 	ret
 ; 38985
@@ -752,23 +741,19 @@
 
 AIScoring_AccuracyDown: ; 38985
 	call AICheckPlayerMaxHP
-
 	jr nc, .asm_389a0
 
 	call AICheckEnemyHalfHP
-
 	jr nc, .asm_389a0
 
 	ld a, [PlayerSubStatus5]
-	bit 0, a
+	bit SUBSTATUS_TOXIC, a
 	jr nz, .asm_3899d
 
 	call Random
-
 	cp $b2
 	jr nc, .asm_389bf
 
-
 .asm_3899d
 	dec [hl]
 	dec [hl]
@@ -776,31 +761,23 @@
 
 .asm_389a0
 	call AICheckPlayerQuarterHP
-
 	jr nc, .asm_389bd
 
 	call Random
-
 	cp $a
 	jr c, .asm_3899d
 
 	call AICheckPlayerHalfHP
-
 	jr nc, .asm_389b8
 
-	call Function_0x39521
-
+	call Function39521
 	jr c, .asm_3899d
-
 	jr .asm_389bf
 
-
 .asm_389b8
-	call Function_0x39527
-
+	call Function39527
 	jr c, .asm_389bf
 
-
 .asm_389bd
 	inc [hl]
 	inc [hl]
@@ -807,11 +784,11 @@
 
 .asm_389bf
 	ld a, [PlayerSubStatus5]
-	bit 0, a
+	bit SUBSTATUS_TOXIC, a
 	jr nz, .asm_389e6
 
 	ld a, [PlayerSubStatus4]
-	bit 7, a
+	bit SUBSTATUS_LEECH_SEED, a
 	jr nz, .asm_389ef
 
 	ld a, [EnemyEvaLevel]
@@ -825,10 +802,9 @@
 	jr nz, .asm_3899d
 
 	ld a, [PlayerSubStatus1]
-	bit 6, a
+	bit SUBSTATUS_ENCORED, a
 	jr nz, .asm_3899d
 
-
 .asm_389e4
 	inc [hl]
 	ret
@@ -842,9 +818,9 @@
 	ret
 
 .asm_389ef
-	call Function_0x39527
-
+	call Function39527
 	ret c
+
 	dec [hl]
 	ret
 ; 389f5
@@ -862,7 +838,6 @@
 	jr c, .asm_38a12
 	jr .asm_389fb
 
-
 .asm_38a05
 	ld hl, PlayerAtkLevel
 	ld c, $8
@@ -984,7 +959,7 @@
 	jr z, .asm_38a91
 
 .asm_38a8b
-	call Function_0x39527
+	call Function39527
 	ret c
 	inc [hl]
 	ret
@@ -992,7 +967,7 @@
 .asm_38a91
 	call AICheckEnemyQuarterHP
 	ret nc
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	dec [hl]
@@ -1022,7 +997,7 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	cp EFFECT_PROTECT
 	jr z, .asm_38ad5
 	dec c
@@ -1081,14 +1056,14 @@
 	ret nc
 
 	ld a, [BattleMonType1]
-	cp FIRE
+	cp SPECIAL
 	jr nc, .asm_38b09
 	ld a, [BattleMonType2]
-	cp FIRE
+	cp SPECIAL
 	ret c
 
 .asm_38b09
-	call Function_0x39521
+	call Function39521
 	ret c
 	dec [hl]
 	dec [hl]
@@ -1128,7 +1103,7 @@
 	ret c
 	call AICheckEnemyQuarterHP
 	ret nc
-	call Function_0x39521
+	call Function39521
 	ret c
 	dec [hl]
 	dec [hl]
@@ -1135,7 +1110,7 @@
 	ret
 
 .asm_38b3a
-	call Function_0x39527
+	call Function39527
 	ret c
 	inc [hl]
 	ret
@@ -1143,7 +1118,7 @@
 
 
 AIScoring_SpeedDownHit: ; 38b40
-	ld a, [EnemyMoveAnimation]
+	ld a, [wEnemyMoveStruct + MOVE_ANIM]
 	cp ICY_WIND
 	ret nz
 	call AICheckEnemyQuarterHP
@@ -1174,7 +1149,7 @@
 	jr c, .asm_38b72
 	call AICheckEnemyQuarterHP
 	ret c
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	ret
@@ -1184,7 +1159,7 @@
 	cp 40
 	ret c
 	inc [hl]
-	call Function_0x39527
+	call Function39527
 	ret c
 	inc [hl]
 	ret
@@ -1196,7 +1171,7 @@
 	bit 6, a
 	jr z, .asm_38b9b
 
-	call Function_0x39527
+	call Function39527
 	jr c, .asm_38b8c
 
 	dec [hl]
@@ -1216,7 +1191,7 @@
 	call AICheckEnemyHalfHP
 	jr nc, .asm_38ba6
 
-	call Function_0x39521
+	call Function39521
 	ret nc
 	dec [hl]
 	ret
@@ -1249,7 +1224,7 @@
 	jr c, .asm_38bef
 	jr z, .asm_38bd4
 
-	call Function_0x39527
+	call Function39527
 	jr c, .asm_38bd4
 
 	dec [hl]
@@ -1263,7 +1238,7 @@
 
 	pop hl
 	ret nc
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	ret
@@ -1291,12 +1266,12 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .asm_38c0e
 
-	ld a, [EnemyMoveType]
-	cp $14
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
+	cp SPECIAL
 	jr nc, .asm_38c0e
 
 	inc b
@@ -1319,12 +1294,12 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .asm_38c38
 
-	ld a, [EnemyMoveType]
-	cp $14
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
+	cp SPECIAL
 	jr nc, .asm_38c38
 
 
@@ -1354,12 +1329,12 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .asm_38c68
 
 	push hl
-	ld a, [EnemyMoveType]
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
 	ld hl, EnemyMonType1
 	ld a, $41
 	call Predef
@@ -1433,7 +1408,7 @@
 
 AIScoring_PainSplit: ; 38ca4
 	push hl
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld b, [hl]
 	inc hl
 	ld c, [hl]
@@ -1490,7 +1465,7 @@
 	call AICompareSpeed
 	jp c, AIDiscourageMove
 
-	call Function_0x39527
+	call Function39527
 	ret c
 	inc [hl]
 	ret
@@ -1596,7 +1571,7 @@
 .asm_38d48
 	and $27
 	ret z
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -1664,7 +1639,7 @@
 
 	ld a, BANK(Moves)
 	call GetFarByte
-	ld [PlayerMoveType], a
+	ld [wPlayerMoveStruct + MOVE_TYPE], a
 
 	xor a
 	ld [hBattleTurn], a
@@ -1677,7 +1652,7 @@
 	jr c, .asm_38dc9
 
 	ret z
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -1713,7 +1688,7 @@
 	ret
 
 .asm_38dee
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	ret nz
 
@@ -1755,7 +1730,7 @@
 	ret
 
 .asm_38e26
-	call Function_0x39521
+	call Function39521
 	ret c
 	dec [hl]
 	dec [hl]
@@ -1792,7 +1767,7 @@
 
 
 AIScoring_Nightmare: ; 38e4a
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	ret
@@ -1832,12 +1807,12 @@
 	ld a, [BattleMonType1]
 	cp GHOST
 	jr z, .asm_38e92
-	cp FIRE
+	cp SPECIAL
 	ret nc
 	ld a, [BattleMonType2]
-	cp FIRE
+	cp SPECIAL
 	ret nc
-	call Function_0x39521
+	call Function39521
 	ret c
 	dec [hl]
 	dec [hl]
@@ -1892,7 +1867,7 @@
 	ret nz
 
 .asm_38ecb
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -1936,7 +1911,7 @@
 	jr c, .asm_38f14
 
 .asm_38f0d
-	call Function_0x39521
+	call Function39521
 	ret c
 	dec [hl]
 	ret
@@ -2002,7 +1977,7 @@
 	pop hl
 	ret c
 
-	call Function_0x39527
+	call Function39527
 	ret c
 
 	inc [hl]
@@ -2009,7 +1984,7 @@
 	ret
 
 .asm_38f6f
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -2043,7 +2018,7 @@
 	call AICheckPlayerHalfHP
 	jr nc, .asm_38fa6
 
-	call Function_0x39527
+	call Function39527
 	ret c
 
 	dec [hl]
@@ -2079,7 +2054,7 @@
 	call AIHasMove
 	jr nc, .asm_38fcb
 
-	call Function_0x39521
+	call Function39521
 	ret c
 
 	dec [hl]
@@ -2091,7 +2066,7 @@
 	ld a, [EnemySubStatus5]
 	bit SUBSTATUS_LOCK_ON, a
 	ret z
-	call Function_0x39527
+	call Function39527
 
 	ret c
 	dec [hl]
@@ -2161,7 +2136,7 @@
 	ret
 
 .asm_39020
-	call Function_0x39521
+	call Function39521
 	ret c
 	inc [hl]
 	ret
@@ -2174,7 +2149,7 @@
 	and a
 	jr z, .asm_39032
 
-	call Function_0x39521
+	call Function39521
 	ret c
 	inc [hl]
 	ret
@@ -2191,7 +2166,7 @@
 AIScoring_Safeguard: ; 3903a
 	call AICheckPlayerHalfHP
 	ret c
-	call Function_0x39521
+	call Function39521
 	ret c
 	inc [hl]
 	ret
@@ -2217,7 +2192,7 @@
 .asm_39058
 	call AICompareSpeed
 	ret c
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	ret
@@ -2239,13 +2214,13 @@
 AIScoring_Pursuit: ; 39072
 	call AICheckPlayerQuarterHP
 	jr nc, .asm_3907d
-	call Function_0x39521
+	call Function39521
 	ret c
 	inc [hl]
 	ret
 
 .asm_3907d
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	dec [hl]
@@ -2267,7 +2242,7 @@
 	ret z
 
 .asm_39097
-	call Function_0x39521
+	call Function39521
 
 	ret c
 	dec [hl]
@@ -2372,7 +2347,7 @@
 	call AICheckPlayerHalfHP
 	jr nc, AIBadWeatherType
 
-	call Function_0x39527
+	call Function39527
 	ret c
 
 	dec [hl]
@@ -2476,7 +2451,7 @@
 	ld a, [EnemyEvaLevel]
 	cp $8
 	ret nc
-	call Function_0x39521
+	call Function39521
 
 	ret c
 	dec [hl]
@@ -2502,12 +2477,12 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .asm_391a8
 
-	ld a, [EnemyMoveType]
-	cp FIRE
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
+	cp SPECIAL
 	jr c, .asm_391a8
 
 	inc b
@@ -2530,12 +2505,12 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .asm_391d2
 
-	ld a, [EnemyMoveType]
-	cp FIRE
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
+	cp SPECIAL
 	jr c, .asm_391d2
 
 
@@ -2574,7 +2549,7 @@
 .asm_391e9
 	call AICompareSpeed
 	ret c
-	call Function_0x39527
+	call Function39527
 	ret c
 	dec [hl]
 	ret
@@ -2600,7 +2575,7 @@
 	and a
 	ret z
 
-	call Function_0x39521
+	call Function39521
 	ret c
 
 	dec [hl]
@@ -2625,7 +2600,7 @@
 	ret
 
 .asm_3921e
-	call Function_0x39521
+	call Function39521
 	ret c
 
 	dec [hl]
@@ -2650,13 +2625,13 @@
 
 AICompareSpeed: ; 39233
 	push bc
-	ld a, [EnemyMonSpd + 1]
+	ld a, [EnemyMonSpeed + 1]
 	ld b, a
-	ld a, [BattleMonSpd + 1]
+	ld a, [BattleMonSpeed + 1]
 	cp b
-	ld a, [EnemyMonSpd]
+	ld a, [EnemyMonSpeed]
 	ld b, a
-	ld a, [BattleMonSpd]
+	ld a, [BattleMonSpeed]
 	sbc b
 	pop bc
 	ret
@@ -2677,8 +2652,8 @@
 	push hl
 	push de
 	push bc
-	ld de, EnemyMonHPHi
-	ld hl, EnemyMonMaxHPHi
+	ld de, EnemyMonHP
+	ld hl, EnemyMonMaxHP
 	; fallthrough
 ; 3925a
 
@@ -2733,7 +2708,7 @@
 	push hl
 	push de
 	push bc
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld b, [hl]
 	inc hl
 	ld c, [hl]
@@ -2756,7 +2731,7 @@
 	push hl
 	push de
 	push bc
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld b, [hl]
 	inc hl
 	ld c, [hl]
@@ -2811,7 +2786,7 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	cp b
 	jr z, .asm_392e3
 
@@ -2898,7 +2873,7 @@
 	call AICheckEnemyQuarterHP
 	jr nc, .asm_39322
 
-	call Function_0x39527
+	call Function39527
 	ret c
 
 .asm_39322
@@ -2992,7 +2967,7 @@
 	push de
 	push bc
 	call AIGetEnemyMove
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .nodamage
 	call AIDamageCalc
@@ -3043,7 +3018,7 @@
 
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	cp 2
 	jr c, .checkmove2
 
@@ -3050,7 +3025,7 @@
 	push hl
 	push de
 	push bc
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	ld hl, .aggressivemoves
 	ld de, 1
 	call IsInArray
@@ -3077,7 +3052,7 @@
 AIDamageCalc: ; 393e7
 	ld a, 1
 	ld [hBattleTurn], a
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	ld de, 1
 	ld hl, .ConstantDamageEffects
 	call IsInArray
@@ -3175,7 +3150,7 @@
 	inc de
 	call AIGetEnemyMove
 
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	cp EFFECT_TOXIC
 	jr z, .poisonimmunity
 	cp EFFECT_POISON
@@ -3185,7 +3160,7 @@
 	cp EFFECT_PARALYZE
 	jr z, .typeimmunity
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .checkmove
 
@@ -3242,12 +3217,12 @@
 	push hl
 	call AIGetEnemyMove
 
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	and a
 	jr z, .nextmove
 
 ; Don't use risky moves at max hp.
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	ld de, 1
 	ld hl, .riskymoves
 	call IsInArray
@@ -3317,7 +3292,7 @@
 	ld bc, MOVE_LENGTH
 	call AddNTimes
 
-	ld de, EnemyMoveStruct
+	ld de, wEnemyMoveStruct
 	ld a, BANK(Moves)
 	call FarCopyBytes
 
@@ -3328,7 +3303,7 @@
 ; 39521
 
 
-Function_0x39521: ; 39521
+Function39521: ; 39521
 	call Random
 	cp 50 ; 1/5
 	ret
@@ -3335,7 +3310,7 @@
 ; 39527
 
 
-Function_0x39527: ; 39527
+Function39527: ; 39527
 	call Random
 	cp $80 ; 1/2
 	ret
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -12,8 +12,8 @@
 	inc a
 	ld [$d264], a
 	ld hl, OTPartyMon1HP
-	ld bc, $002f
-	ld d, $3
+	ld bc, OTPartyMon2 - (OTPartyMon1 + 1)
+	ld d, NUM_MOVES - 1
 .asm_3c019
 	inc d
 	ld a, [hli]
@@ -166,8 +166,8 @@
 	call Function3c3f5
 	jp c, .asm_3c1be
 	xor a
-	ld [$c710], a
-	ld [$c711], a
+	ld [wPlayerIsSwitching], a
+	ld [wEnemyIsSwitching], a
 	ld [$d264], a
 	ld [$c73f], a
 	ld [$c740], a
@@ -455,7 +455,7 @@
 	jr z, .asm_3c35b
 	cp $d
 	jr z, .asm_3c35b
-	sub $4
+	sub NUM_MOVES
 	jr c, .asm_3c35b
 	ld a, [$d0ec]
 	cp $2
@@ -537,8 +537,8 @@
 	jr .asm_3c3c5
 
 .asm_3c3c5
-	ld de, BattleMonSpd
-	ld hl, EnemyMonSpd
+	ld de, BattleMonSpeed
+	ld hl, EnemyMonSpeed
 	ld c, $2
 	call StringCmp
 	jr z, .asm_3c3d8
@@ -653,26 +653,26 @@
 	callab UpdateMoveData
 	xor a
 	ld [$c732], a
-	ld a, [PlayerMoveEffect]
-	cp $77
+	ld a, [wPlayerMoveStruct + MOVE_EFFECT]
+	cp EFFECT_FURY_CUTTER
 	jr z, .asm_3c494
 	xor a
 	ld [PlayerFuryCutterCount], a
 
 .asm_3c494
-	ld a, [PlayerMoveEffect]
-	cp $51
+	ld a, [wPlayerMoveStruct + MOVE_EFFECT]
+	cp EFFECT_RAGE
 	jr z, .asm_3c4a4
 	ld hl, PlayerSubStatus4
-	res 6, [hl]
+	res SUBSTATUS_RAGE, [hl]
 	xor a
 	ld [$c72b], a
 
 .asm_3c4a4
-	ld a, [PlayerMoveEffect]
-	cp $6f
+	ld a, [wPlayerMoveStruct + MOVE_EFFECT]
+	cp EFFECT_PROTECT
 	jr z, .asm_3c4c9
-	cp $74
+	cp EFFECT_ENDURE
 	jr z, .asm_3c4c9
 	xor a
 	ld [PlayerProtectCount], a
@@ -1055,7 +1055,7 @@
 	and a
 	jr z, Function3c710
 Function3c70b: ; 3c70b
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	jr Function3c713
 
 Function3c710: ; 3c710
@@ -1176,7 +1176,7 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3c7f4
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 
 .asm_3c7f4
 	ld a, [hli]
@@ -1243,7 +1243,7 @@
 	ret
 
 .asm_3c85c
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	xor a
 	ld [hli], a
 	ld [hl], a
@@ -1352,7 +1352,7 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3c922
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 
 .asm_3c922
 	ld a, [hli]
@@ -2423,7 +2423,7 @@
 	call SetEnemyTurn
 	call SpikesDamage
 	xor a
-	ld [EnemyMoveAnimation], a
+	ld [wEnemyMoveStruct + MOVE_ANIM], a
 	ld [$d0ec], a
 	inc a
 	ret
@@ -2732,7 +2732,7 @@
 
 Function3d14e: ; 3d14e
 	call Function3cef1
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
 	call z, Function3cf14
@@ -2743,7 +2743,7 @@
 	ld a, d
 	and a
 	jp z, LostBattle
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
 	jr nz, .asm_3d185
@@ -2841,7 +2841,7 @@
 	cp $1
 	jr z, .asm_3d20a
 	ld hl, PartyMon1Speed
-	ld de, EnemyMonSpd
+	ld de, EnemyMonSpeed
 	jp Function3d8b3
 ; 3d227
 
@@ -2862,7 +2862,7 @@
 	ld [$d0ec], a
 	call Function3d2e0
 	jr c, .asm_3d251
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
 	jr nz, .asm_3d26c
@@ -3296,7 +3296,7 @@
 	ld [$c6fc], a
 	ld [$d0ec], a
 	inc a
-	ld [$c711], a
+	ld [wEnemyIsSwitching], a
 	call Function309d
 	jp Function3e3ad
 ; 3d517
@@ -3309,8 +3309,8 @@
 
 .asm_3d522
 	call Function3d6ca
-	ld a, $1
-	ld [$c711], a
+	ld a, 1
+	ld [wEnemyIsSwitching], a
 	call Function3d7a0
 	call Function3d7b8
 	jp Function3d7c7
@@ -3321,7 +3321,7 @@
 	and a
 	jr z, .asm_3d541
 	ld a, [$d430]
-	sub $4
+	sub NUM_MOVES
 	ld b, a
 	jr .asm_3d555
 
@@ -3435,10 +3435,10 @@
 	push de
 	push bc
 	dec a
-	ld hl, Moves + MOVE_ANIM
+	ld hl, Moves
 	ld bc, MOVE_LENGTH
 	call AddNTimes
-	ld de, EnemyMoveAnimation
+	ld de, wEnemyMoveStruct
 	ld a, BANK(Moves)
 	call FarCopyBytes
 	call SetEnemyTurn
@@ -3475,7 +3475,7 @@
 	ld a, BANK(BaseData)
 	call FarCopyBytes
 	ld a, [BattleMonType1]
-	ld [PlayerMoveType], a
+	ld [wPlayerMoveStruct + MOVE_TYPE], a
 	call SetPlayerTurn
 	callab Function347c8
 	ld a, [$d265]
@@ -3482,7 +3482,7 @@
 	cp $b
 	jr nc, .asm_3d663
 	ld a, [BattleMonType2]
-	ld [PlayerMoveType], a
+	ld [wPlayerMoveStruct + MOVE_TYPE], a
 	callab Function347c8
 	ld a, [$d265]
 	cp $b
@@ -3592,14 +3592,14 @@
 	ld a, [$def4]
 	and a
 	jr nz, .asm_3d708
-	ld hl, EnemyMonAtkDefDV
-	ld a, $2d
+	ld hl, EnemyMonDVs
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	ld a, [UnownLetter]
 	ld [$def4], a
 
 .asm_3d708
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	ld [$c6ea], a
 	ld a, [hl]
@@ -3759,7 +3759,7 @@
 	ld [hl], a
 	ld [EnemyDisableCount], a
 	ld [EnemyFuryCutterCount], a
-	ld [$c681], a
+	ld [EnemyProtectCount], a
 	ld [$c72c], a
 	ld [EnemyDisabledMove], a
 	ld [$c6fa], a
@@ -4019,21 +4019,21 @@
 
 
 Function3da0d: ; 3da0d
-	ld a, $0
+	ld a, PartyMon1Species - PartyMon1
 	call GetPartyParamLocation
 	ld de, BattleMonSpecies
-	ld bc, $0006
+	ld bc, 1 + 1 + NUM_MOVES ; species, item, moves ; BattleMonDVs - BattleMonSpecies
 	call CopyBytes
-	ld bc, $000f
+	ld bc, PartyMon1DVs - (PartyMon1Species + 1 + 1 + NUM_MOVES)
 	add hl, bc
-	ld de, BattleMonAtkDefDV
-	ld bc, $0007
+	ld de, BattleMonDVs
+	ld bc, 2 + NUM_MOVES + 1 ; DVs, PP, happiness ; BattleMonLevel - BattleMonDVs
 	call CopyBytes
 	inc hl
 	inc hl
 	inc hl
 	ld de, BattleMonLevel
-	ld bc, $0011
+	ld bc, 1 + 1 + 1 + 2 + 2 * 6 ; level, status, unused, stats
 	call CopyBytes
 	ld a, [BattleMonSpecies]
 	ld [TempBattleMonSpecies], a
@@ -4044,15 +4044,15 @@
 	ld [BattleMonType1], a
 	ld a, [BaseType2]
 	ld [BattleMonType2], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [CurBattleMon]
 	call SkipNames
 	ld de, BattleMonNick
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
-	ld hl, BattleMonAtk
+	ld hl, BattleMonAttack
 	ld de, PlayerStats
-	ld bc, $000a
+	ld bc, 2 * 5
 	call CopyBytes
 	call Function3ec2c
 	call BadgeStatBoosts
@@ -4074,7 +4074,7 @@
 ; 3da85
 
 Function3da85: ; 3da85
-	ld hl, BattleMonAtkDefDV
+	ld hl, BattleMonDVs
 	ld a, [PlayerSubStatus5]
 	bit 3, a
 	ret z
@@ -4084,7 +4084,7 @@
 ; 3da97
 
 Function3da97: ; 3da97
-	ld hl, EnemyMonAtkDefDV
+	ld hl, EnemyMonDVs
 	ld a, [EnemySubStatus5]
 	bit 3, a
 	ret z
@@ -4092,7 +4092,7 @@
 	ld a, [IsInBattle]
 	dec a
 	ret z
-	ld hl, OTPartyMon1AtkDefDV
+	ld hl, OTPartyMon1DVs
 	ld a, [CurOTMon]
 	jp GetPartyLocation
 ; 3dab1
@@ -4114,31 +4114,31 @@
 	ld hl, OTPartyMon1Species
 	call GetPartyLocation
 	ld de, EnemyMonSpecies
-	ld bc, $0006
+	ld bc, 1 + 1 + NUM_MOVES
 	call CopyBytes
-	ld bc, $000f
+	ld bc, OTPartyMon1DVs - (OTPartyMon1Species + 1 + 1 + NUM_MOVES)
 	add hl, bc
-	ld de, EnemyMonAtkDefDV
-	ld bc, $0007
+	ld de, EnemyMonDVs
+	ld bc, 2 + NUM_MOVES + 1
 	call CopyBytes
 	inc hl
 	inc hl
 	inc hl
 	ld de, EnemyMonLevel
-	ld bc, $0011
+	ld bc, 1 + 1 + 1 + 2 + 2 * 6
 	call CopyBytes
 	ld a, [EnemyMonSpecies]
 	ld [CurSpecies], a
 	call GetBaseData
-	ld hl, OTPartyMon1Nickname
+	ld hl, OTPartyMonNicknames
 	ld a, [CurPartyMon]
 	call SkipNames
 	ld de, EnemyMonNick
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
-	ld hl, EnemyMonAtk
+	ld hl, EnemyMonAttack
 	ld de, EnemyStats
-	ld bc, $000a
+	ld bc, 2 * 5
 	call CopyBytes
 	call Function3ec30
 	ld hl, BaseType1
@@ -4148,9 +4148,9 @@
 	inc de
 	ld a, [hl]
 	ld [de], a
-	ld hl, BaseHP
+	ld hl, BaseStats
 	ld de, EnemyMonBaseStats
-	ld b, $5
+	ld b, 5
 .asm_3db25
 	ld a, [hli]
 	ld [de], a
@@ -4177,7 +4177,7 @@
 	call Function3db5f
 	call EmptyBattleTextBox
 	call Function309d
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
 	ret
@@ -4185,12 +4185,12 @@
 
 
 Function3db5f: ; 3db5f
-	ld hl, BattleMonAtkDefDV
-	ld a, $2d
+	ld hl, BattleMonDVs
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	hlcoord 1, 5
-	ld b, $7
-	ld c, $8
+	ld b, 7
+	ld c, 8
 	call ClearBox
 	call WaitBGMap
 	xor a
@@ -4201,7 +4201,7 @@
 	ld [$d0d2], a
 	ld [CurMoveNum], a
 	ld [TypeModifier], a
-	ld [PlayerMoveAnimation], a
+	ld [wPlayerMoveStruct + MOVE_ANIM], a
 	ld [LastEnemyCounterMove], a
 	ld [LastPlayerCounterMove], a
 	ld [LastPlayerMove], a
@@ -4223,7 +4223,7 @@
 	call Function3ee17
 
 .asm_3dbbc
-	ld a, $0
+	ld a, PartyMon1Species - PartyMon1
 	call GetPartyParamLocation
 	ld b, h
 	ld c, l
@@ -4281,13 +4281,13 @@
 
 SpikesDamage: ; 3dc23
 	ld hl, PlayerScreens
-	ld de, BattleMonType1
+	ld de, BattleMonType
 	ld bc, Function3df48
 	ld a, [hBattleTurn]
 	and a
 	jr z, .ok
 	ld hl, EnemyScreens
-	ld de, EnemyMonType1
+	ld de, EnemyMonType
 	ld bc, Function3e036
 .ok
 
@@ -4294,7 +4294,7 @@
 	bit SCREENS_SPIKES, [hl]
 	ret z
 
-; Flying-types aren't affected by Spikes.
+	; Flying-types aren't affected by Spikes.
 	ld a, [de]
 	cp FLYING
 	ret z
@@ -4321,15 +4321,17 @@
 ; 3dc5b
 
 Function3dc5b: ; 3dc5b
-	ld a, $10
+	ld a, BATTLE_VARS_MOVE
 	call GetBattleVar
 	ld b, a
 	call GetMoveEffect
 	ld a, b
-	cp $80
+	cp EFFECT_PURSUIT
 	jr nz, .asm_3dce4
+
 	ld a, [CurBattleMon]
 	push af
+
 	ld hl, DoPlayerTurn
 	ld a, [hBattleTurn]
 	and a
@@ -4337,19 +4339,22 @@
 	ld hl, DoEnemyTurn
 	ld a, [$c71a]
 	ld [CurBattleMon], a
-
 .asm_3dc7e
 	ld a, BANK(DoPlayerTurn)
 	rst FarCall
-	ld a, $10
+
+	ld a, BATTLE_VARS_MOVE
 	call _GetBattleVar
 	ld a, $ff
 	ld [hl], a
+
 	pop af
 	ld [CurBattleMon], a
+
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3dcc0
+
 	ld a, [$c71a]
 	call Function399f
 	ld hl, BattleMonHP
@@ -4356,6 +4361,7 @@
 	ld a, [hli]
 	or [hl]
 	jr nz, .asm_3dce4
+
 	ld a, $f0
 	ld [CryTracks], a
 	ld a, [BattleMonSpecies]
@@ -4371,10 +4377,11 @@
 	jr .asm_3dcdf
 
 .asm_3dcc0
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
 	jr nz, .asm_3dce4
+
 	ld de, SFX_KINESIS
 	call PlaySFX
 	call WaitSFX
@@ -4436,8 +4443,8 @@
 	ld a, b
 	cp $1
 	ret nz
-	ld de, EnemyMonHPLo
-	ld hl, EnemyMonMaxHPHi
+	ld de, EnemyMonHP + 1
+	ld hl, EnemyMonMaxHP
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3dd4a
@@ -4945,7 +4952,7 @@
 	ld h, b
 	ld l, c
 	dec hl
-	ld hl, EnemyMonAtkDefDV
+	ld hl, EnemyMonDVs
 	ld de, TempMonDVs
 	ld a, [EnemySubStatus5]
 	bit 3, a
@@ -4990,7 +4997,7 @@
 	call PrintLevel
 
 .asm_3e0be
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	ld [$ffb5], a
 	ld a, [hld]
@@ -5008,7 +5015,7 @@
 	ld a, $30
 	ld [hMultiplier], a
 	call Multiply
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 	ld a, [hli]
 	ld b, a
 	ld a, [hl]
@@ -5386,8 +5393,8 @@
 ; 3e3ad
 
 Function3e3ad: ; 3e3ad
-	ld a, $1
-	ld [$c710], a
+	ld a, 1
+	ld [wPlayerIsSwitching], a
 	ld a, [InLinkBattle]
 	and a
 	jr z, .asm_3e3c1
@@ -5412,7 +5419,7 @@
 	jp z, .asm_3e3ca
 	cp $d
 	jp z, .asm_3e3ca
-	cp $4
+	cp NUM_MOVES
 	jp c, .asm_3e3ca
 	cp $f
 	jr nz, .asm_3e3e9
@@ -5452,9 +5459,9 @@
 
 	call SetEnemyTurn
 	call Function3dc5b
-	jr c, .asm_3e423
+	jr c, .ok
 	call Function3dce6
-.asm_3e423
+.ok
 
 	hlcoord 9, 7
 	lb bc, 5, 11
@@ -5506,8 +5513,8 @@
 	call Function30b4
 	ld a, $3
 	ld [$cfa9], a
-	ld hl, BattleMonSpd
-	ld de, EnemyMonSpd
+	ld hl, BattleMonSpeed
+	ld de, EnemyMonSpeed
 	call Function3d8b3
 	ld a, $0
 	ld [$d266], a
@@ -5906,7 +5913,7 @@
 	ld [hl], "/"
 
 	callab UpdateMoveData
-	ld a, [PlayerMoveAnimation]
+	ld a, [wPlayerMoveStruct + MOVE_ANIM]
 	ld b, a
 	hlcoord 2, 10
 	ld a, PREDEF_PRINT_MOVE_TYPE
@@ -5996,7 +6003,7 @@
 
 
 Function3e7c1: ; 3e7c1
-	ld a, [$c711]
+	ld a, [wEnemyIsSwitching]
 	and a
 	ret nz
 	ld a, [InLinkBattle]
@@ -6013,16 +6020,17 @@
 	jp z, .asm_3e8bd
 	cp $d
 	jp z, .asm_3e82c
-	cp $4
+	cp NUM_MOVES
 	jp nc, Function3e8c1
 	ld [CurEnemyMoveNum], a
 	ld c, a
 	ld a, [EnemySubStatus1]
-	bit 6, a
+	bit SUBSTATUS_ENCORED, a
 	jp nz, .asm_3e882
 	ld a, [EnemySubStatus3]
-	and $13
+	and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_ROLLOUT | 1 << SUBSTATUS_BIDE
 	jp nz, .asm_3e882
+
 	ld hl, EnemySubStatus5
 	bit 4, [hl]
 	ld a, [LastEnemyMove]
@@ -6113,7 +6121,7 @@
 	ld [$c733], a
 
 .asm_3e894
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	cp EFFECT_FURY_CUTTER
 	jr z, .asm_3e89f
 	xor a
@@ -6120,7 +6128,7 @@
 	ld [EnemyFuryCutterCount], a
 
 .asm_3e89f
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	cp EFFECT_RAGE
 	jr z, .asm_3e8af
 	ld hl, EnemySubStatus4
@@ -6129,13 +6137,13 @@
 	ld [$c72c], a
 
 .asm_3e8af
-	ld a, [EnemyMoveEffect]
+	ld a, [wEnemyMoveStruct + MOVE_EFFECT]
 	cp EFFECT_PROTECT
 	ret z
 	cp EFFECT_ENDURE
 	ret z
 	xor a
-	ld [$c681], a
+	ld [EnemyProtectCount], a
 	ret
 
 .asm_3e8bd
@@ -6146,7 +6154,7 @@
 Function3e8c1: ; 3e8c1
 	xor a
 	ld [EnemyFuryCutterCount], a
-	ld [$c681], a
+	ld [EnemyProtectCount], a
 	ld [$c72c], a
 	ld hl, EnemySubStatus4
 	res SUBSTATUS_RAGE, [hl]
@@ -6492,9 +6500,9 @@
 	ld [hli], a
 	
 ; Full HP...
-	ld a, [EnemyMonMaxHPHi]
+	ld a, [EnemyMonMaxHP]
 	ld [hli], a
-	ld a, [EnemyMonMaxHPLo]
+	ld a, [EnemyMonMaxHP + 1]
 	ld [hl], a
 	
 ; ...unless it's a RoamMon
@@ -6510,13 +6518,13 @@
 	jr z, .InitRoamHP
 ; Update from the struct if it has
 	ld a, [hl]
-	ld [EnemyMonHPLo], a
+	ld [EnemyMonHP + 1], a
 	jr .Moves
 	
 .InitRoamHP
 ; HP only uses the lo byte in the RoamMon struct since
 ; Raikou/Entei/Suicune will have < 256 hp at level 40
-	ld a, [EnemyMonHPLo]
+	ld a, [EnemyMonHP + 1]
 	ld [hl], a
 	jr .Moves
 	
@@ -6527,9 +6535,9 @@
 	ld a, [CurPartyMon]
 	call GetPartyLocation
 	ld a, [hld]
-	ld [EnemyMonHPLo], a
+	ld [EnemyMonHP + 1], a
 	ld a, [hld]
-	ld [EnemyMonHPHi], a
+	ld [EnemyMonHP], a
 	
 ; Make sure everything knows which monster the opponent is using
 	ld a, [CurPartyMon]
@@ -6975,11 +6983,11 @@
 	ld a, [$d265]
 	and a
 	ld a, c
-	ld hl, BattleMonAtk
+	ld hl, BattleMonAttack
 	ld de, PlayerStats
 	ld bc, PlayerAtkLevel
 	jr z, .asm_3ecd2
-	ld hl, EnemyMonAtk
+	ld hl, EnemyMonAttack
 	ld de, EnemyStats
 	ld bc, EnemyAtkLevel
 
@@ -7113,7 +7121,7 @@
 	or c
 	ld b, a
 
-	ld hl, BattleMonAtk
+	ld hl, BattleMonAttack
 	ld c, 4
 .CheckBadge
 	ld a, b
@@ -7432,7 +7440,7 @@
 	ld a, [$ffb5]
 	ld [StringBuffer2], a
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld hl, UnknownText_0x3f11b
 	call BattleTextBox
@@ -7960,7 +7968,7 @@
 	jr nz, .asm_3f2ce
 
 .asm_3f27c
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	or [hl]
 	ld hl, UnknownText_0x3f2d1
@@ -7967,7 +7975,7 @@
 	jr z, .asm_3f2ce
 	xor a
 	ld [hMultiplicand], a
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	ld [$c6ea], a
 	ld [$ffb5], a
@@ -7977,7 +7985,7 @@
 	ld a, $19
 	ld [hMultiplier], a
 	call Multiply
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 	ld a, [hli]
 	ld b, [hl]
 	srl a
@@ -8052,7 +8060,7 @@
 Function3f2ff: ; 3f2ff
 	push de
 	push bc
-	ld hl, EnemyMonHPLo
+	ld hl, EnemyMonHP + 1
 	ld de, $c6eb
 	ld b, [hl]
 	dec hl
@@ -8067,7 +8075,7 @@
 	ld a, $19
 	ld [hMultiplier], a
 	call Multiply
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 	ld a, [hli]
 	ld b, [hl]
 	srl a
@@ -8300,8 +8308,8 @@
 	push af
 	ld a, [BattleMonSpecies]
 	ld [CurPartySpecies], a
-	ld hl, BattleMonAtkDefDV
-	ld a, $2d
+	ld hl, BattleMonDVs
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	ld de, $9310
 	ld a, $3d
@@ -8339,8 +8347,8 @@
 	ld [CurSpecies], a
 	ld [CurPartySpecies], a
 	call GetBaseData
-	ld hl, EnemyMonAtkDefDV
-	ld a, $2d
+	ld hl, EnemyMonDVs
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	ld de, VTiles2
 	ld a, $3e
@@ -8537,8 +8545,8 @@
 	ld de, $c739
 	ld bc, NUM_MOVES
 	call CopyBytes
-	ld hl, EnemyMonAtkDefDV
-	ld a, $2d
+	ld hl, EnemyMonDVs
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	ld a, [CurPartySpecies]
 	cp UNOWN
@@ -8975,7 +8983,7 @@
 	and $f
 	jr z, .asm_3f9af
 	call GetRoamMonHP
-	ld a, [EnemyMonHPLo]
+	ld a, [EnemyMonHP + 1]
 	ld [hl], a
 	jr .asm_3f9ca
 
@@ -9003,15 +9011,15 @@
 GetRoamMonMapGroup: ; 3f9d1
 	ld a, [TempEnemyMonSpecies]
 	ld b, a
-	ld a, [RoamMon1Species]
+	ld a, [wRoamMon1Species]
 	cp b
-	ld hl, RoamMon1MapGroup
+	ld hl, wRoamMon1MapGroup
 	ret z
-	ld a, [RoamMon2Species]
+	ld a, [wRoamMon2Species]
 	cp b
-	ld hl, RoamMon2MapGroup
+	ld hl, wRoamMon2MapGroup
 	ret z
-	ld hl, RoamMon3MapGroup
+	ld hl, wRoamMon3MapGroup
 	ret
 ; 3f9e9
 
@@ -9018,59 +9026,59 @@
 GetRoamMonMapNumber: ; 3f9e9
 	ld a, [TempEnemyMonSpecies]
 	ld b, a
-	ld a, [RoamMon1Species]
+	ld a, [wRoamMon1Species]
 	cp b
-	ld hl, RoamMon1MapNumber
+	ld hl, wRoamMon1MapNumber
 	ret z
-	ld a, [RoamMon2Species]
+	ld a, [wRoamMon2Species]
 	cp b
-	ld hl, RoamMon2MapNumber
+	ld hl, wRoamMon2MapNumber
 	ret z
-	ld hl, RoamMon3MapNumber
+	ld hl, wRoamMon3MapNumber
 	ret
 ; 3fa01
 
 GetRoamMonHP: ; 3fa01
-; output: hl = RoamMonHP
+; output: hl = wRoamMonHP
 	ld a, [TempEnemyMonSpecies]
 	ld b, a
-	ld a, [RoamMon1Species]
+	ld a, [wRoamMon1Species]
 	cp b
-	ld hl, RoamMon1HP
+	ld hl, wRoamMon1HP
 	ret z
-	ld a, [RoamMon2Species]
+	ld a, [wRoamMon2Species]
 	cp b
-	ld hl, RoamMon2HP
+	ld hl, wRoamMon2HP
 	ret z
-	ld hl, RoamMon3HP
+	ld hl, wRoamMon3HP
 	ret
 ; 3fa19
 
 GetRoamMonDVs: ; 3fa19
-; output: hl = RoamMonDVs
+; output: hl = wRoamMonDVs
 	ld a, [TempEnemyMonSpecies]
 	ld b, a
-	ld a, [RoamMon1Species]
+	ld a, [wRoamMon1Species]
 	cp b
-	ld hl, RoamMon1DVs
+	ld hl, wRoamMon1DVs
 	ret z
-	ld a, [RoamMon2Species]
+	ld a, [wRoamMon2Species]
 	cp b
-	ld hl, RoamMon2DVs
+	ld hl, wRoamMon2DVs
 	ret z
-	ld hl, RoamMon3DVs
+	ld hl, wRoamMon3DVs
 	ret
 ; 3fa31
 
 GetRoamMonSpecies: ; 3fa31
 	ld a, [TempEnemyMonSpecies]
-	ld hl, RoamMon1Species
+	ld hl, wRoamMon1Species
 	cp [hl]
 	ret z
-	ld hl, RoamMon2Species
+	ld hl, wRoamMon2Species
 	cp [hl]
 	ret z
-	ld hl, RoamMon3Species
+	ld hl, wRoamMon3Species
 	ret
 ; 3fa42
 
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -2395,12 +2395,12 @@
 
 	call .StatModifiers
 
-	ld a, [PlayerMoveAccuracy]
+	ld a, [wPlayerMoveStruct + MOVE_ACC]
 	ld b, a
 	ld a, [hBattleTurn]
 	and a
 	jr z, .BrightPowder
-	ld a, [EnemyMoveAccuracy]
+	ld a, [wEnemyMoveStruct + MOVE_ACC]
 	ld b, a
 
 .BrightPowder
@@ -2592,7 +2592,7 @@
 	ld a, [hBattleTurn]
 	and a
 
-	ld hl, PlayerMoveAccuracy
+	ld hl, wPlayerMoveStruct + MOVE_ACC
 	ld a, [PlayerAccLevel]
 	ld b, a
 	ld a, [EnemyEvaLevel]
@@ -2600,7 +2600,7 @@
 
 	jr z, .asm_34e60
 
-	ld hl, EnemyMoveAccuracy
+	ld hl, wEnemyMoveStruct + MOVE_ACC
 	ld a, [EnemyAccLevel]
 	ld b, a
 	ld a, [PlayerEvaLevel]
@@ -2695,11 +2695,11 @@
 	jr nz, .failed
 
 	push hl
-	ld hl, PlayerMoveEffectChance
+	ld hl, wPlayerMoveStruct + MOVE_CHANCE
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_34ee1
-	ld hl, EnemyMoveEffectChance
+	ld hl, wEnemyMoveStruct + MOVE_CHANCE
 .asm_34ee1
 
 	call BattleRandom
@@ -3224,7 +3224,7 @@
 
 ; Faint the user if it fainted an opponent using Destiny Bond.
 
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_351cb
@@ -3438,7 +3438,7 @@
 
 	call ResetDamage
 
-	ld hl, PlayerMovePower
+	ld hl, wPlayerMoveStruct + MOVE_POWER
 	ld a, [hli]
 	and a
 	ld d, a
@@ -3450,7 +3450,7 @@
 
 
 ; Physical
-	ld hl, EnemyMonDef
+	ld hl, EnemyMonDefense
 	ld a, [hli]
 	ld b, a
 	ld c, [hl]
@@ -3463,7 +3463,7 @@
 	rl b
 
 .physicalcrit
-	ld hl, BattleMonAtk
+	ld hl, BattleMonAttack
 	call GetDamageStatsCritical
 	jr c, .thickclub
 
@@ -3586,7 +3586,7 @@
 	ld a, [hBattleTurn]
 	and a
 	jr nz, .enemy
-	ld a, [PlayerMoveType]
+	ld a, [wPlayerMoveStruct + MOVE_TYPE]
 	cp SPECIAL
 ; special
 	ld a, [PlayerSAtkLevel]
@@ -3600,7 +3600,7 @@
 	jr .end
 
 .enemy
-	ld a, [EnemyMoveType]
+	ld a, [wEnemyMoveStruct + MOVE_TYPE]
 	cp SPECIAL
 ; special
 	ld a, [EnemySAtkLevel]
@@ -3699,8 +3699,8 @@
 	call ResetDamage
 
 ; No damage dealt with 0 power.
-	ld hl, EnemyMovePower
-	ld a, [hli] ; hl = EnemyMoveType
+	ld hl, wEnemyMoveStruct + MOVE_POWER
+	ld a, [hli] ; hl = wEnemyMoveStruct + MOVE_TYPE
 	ld d, a
 	and a
 	ret z
@@ -3711,7 +3711,7 @@
 
 
 ; Physical
-	ld hl, BattleMonDef
+	ld hl, BattleMonDefense
 	ld a, [hli]
 	ld b, a
 	ld c, [hl]
@@ -3724,7 +3724,7 @@
 	rl b
 
 .physicalcrit
-	ld hl, EnemyMonAtk
+	ld hl, EnemyMonAttack
 	call GetDamageStatsCritical
 	jr c, .thickclub
 
@@ -3804,7 +3804,7 @@
 	ld [DefaultFlypoint], a
 .asm_3548d
 	ld a, [DefaultFlypoint]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld a, $22
 	call Function355bd
@@ -3847,7 +3847,7 @@
 	ld a, [hl]
 	ld e, a
 	pop bc
-	ld a, [PlayerMovePower]
+	ld a, [wPlayerMoveStruct + MOVE_POWER]
 	ld d, a
 	ret
 
@@ -3893,7 +3893,7 @@
 
 .asm_35532
 	ld a, [DefaultFlypoint]
-	ld hl, OTPartyMon1Nickname
+	ld hl, OTPartyMonNicknames
 	ld bc, $000b
 	call AddNTimes
 	ld de, StringBuffer1
@@ -3952,7 +3952,7 @@
 	ld a, [hl]
 	ld e, a
 	pop bc
-	ld a, [EnemyMovePower]
+	ld a, [wEnemyMoveStruct + MOVE_POWER]
 	ld d, a
 	ret
 ; 355b0
@@ -4004,12 +4004,12 @@
 	call ResetDamage
 	ld a, [hBattleTurn]
 	and a
-	ld hl, BattleMonDef
+	ld hl, BattleMonDefense
 	ld de, PlayerScreens
 	ld a, [BattleMonLevel]
 	jr z, .asm_355f7
 
-	ld hl, EnemyMonDef
+	ld hl, EnemyMonDefense
 	ld de, EnemyScreens
 	ld a, [EnemyMonLevel]
 .asm_355f7
@@ -4345,7 +4345,7 @@
 	ld a, $0
 	jr .asm_3578c ; 35769 $21
 .asm_3576b
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_35776 ; 35771 $3
@@ -4376,7 +4376,7 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3579d ; 35798 $3
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 .asm_3579d
 	xor a
 	ld [$ffb3], a
@@ -4433,7 +4433,7 @@
 	ld a, [hl]
 	jr nz, .asm_357f8
 
-	ld hl, PlayerMovePower
+	ld hl, wPlayerMoveStruct + MOVE_POWER
 	ld [hl], a
 	push hl
 	call PlayerAttackDamage
@@ -4440,7 +4440,7 @@
 	jr .asm_35800
 
 .asm_357f8
-	ld hl, EnemyMovePower
+	ld hl, wEnemyMoveStruct + MOVE_POWER
 	ld [hl], a
 	push hl
 	call EnemyAttackDamage
@@ -4600,7 +4600,7 @@
 	ld a, b
 	ld [CurPlayerMove], a
 	dec a
-	ld de, PlayerMoveStruct
+	ld de, wPlayerMoveStruct
 	call GetMoveData
 	jr .asm_3591a
 .asm_358ef
@@ -4629,7 +4629,7 @@
 	ld a, b
 	ld [CurEnemyMove], a
 	dec a
-	ld de, EnemyMoveStruct
+	ld de, wEnemyMoveStruct
 	call GetMoveData
 .asm_3591a
 	call AnimateCurrentMove
@@ -4654,7 +4654,7 @@
 	jp nz, Function359cd
 	call AnimateCurrentMove
 	ld hl, $c63f
-	ld de, EnemyMonMaxHPLo
+	ld de, EnemyMonMaxHP + 1
 	call .asm_3597d
 	ld a, $1
 	ld [$d10a], a
@@ -4661,7 +4661,7 @@
 	hlcoord 10, 9
 	ld a, $b
 	call Predef
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hli]
 	ld [$d1ed], a
 	ld a, [hli]
@@ -5230,7 +5230,7 @@
 BattleCommand4b: ; 35c94
 ; falseswipe
 
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_35c9f ; 35c9a $3
@@ -5362,7 +5362,7 @@
 	ld a, [EnemyMonHP]
 	ld [$d1ec + 1], a
 	sbc b
-	ld [EnemyMonHPHi], a
+	ld [EnemyMonHP], a
 	jr nc, .asm_35d59
 
 	ld a, [$d1ed]
@@ -5837,8 +5837,8 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_36037 ; 0x3602f $6
-	ld hl, EnemyMonHPHi
-	ld de, EnemyMonMaxHPHi
+	ld hl, EnemyMonHP
+	ld de, EnemyMonMaxHP
 .asm_36037
 	ld bc, $d1ed
 	ld a, [hli]
@@ -6396,12 +6396,12 @@
 	jr nc, .Hit
 
 	push hl
-	ld hl, EnemyMonAtk + 1
+	ld hl, EnemyMonAttack + 1
 	ld de, EnemyStats
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_36366
-	ld hl, BattleMonAtk + 1
+	ld hl, BattleMonAttack + 1
 	ld de, PlayerStats
 .asm_36366
 	call Function3641a
@@ -6840,7 +6840,7 @@
 Function365d7: ; 365d7
 	ld hl, PlayerAtkLevel
 	ld de, PlayerStats
-	ld bc, BattleMonAtk
+	ld bc, BattleMonAttack
 
 	ld a, $5
 	call Function3661d
@@ -6863,7 +6863,7 @@
 Function365fd: ; 365fd
 	ld hl, EnemyAtkLevel
 	ld de, EnemyStats
-	ld bc, EnemyMonAtk
+	ld bc, EnemyMonAttack
 
 	ld a, $5
 	call Function3661d
@@ -7040,8 +7040,8 @@
 	ld [de], a
 	inc de
 	ld [de], a
-	ld [PlayerMoveEffect], a
-	ld [EnemyMoveEffect], a
+	ld [wPlayerMoveStruct + MOVE_EFFECT], a
+	ld [wEnemyMoveStruct + MOVE_EFFECT], a
 	call BattleRandom
 	and $1
 	inc a
@@ -7257,7 +7257,7 @@
 	inc a
 	ld [$d232], a
 	call Function36804
-	ld a, [PlayerMoveAnimation]
+	ld a, [wPlayerMoveStruct + MOVE_ANIM]
 	jp .asm_36975
 .asm_36869
 	call Function349f4
@@ -7348,7 +7348,7 @@
 	inc a
 	ld [$d232], a
 	call Function36804
-	ld a, [EnemyMoveAnimation]
+	ld a, [wEnemyMoveStruct + MOVE_ANIM]
 	jr .asm_36975
 
 .asm_36908
@@ -7687,7 +7687,7 @@
 	jr z, .asm_36b2f ; 36afb $32
 	ld hl, EnemyMonLevel
 	ld de, BattleMonLevel
-	ld bc, PlayerMoveAccuracy
+	ld bc, wPlayerMoveStruct + MOVE_ACC
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_36b12 ; 36b09 $7
@@ -7695,7 +7695,7 @@
 	ld h, d
 	ld l, e
 	pop de
-	ld bc, EnemyMoveAccuracy
+	ld bc, wEnemyMoveStruct + MOVE_ACC
 .asm_36b12
 	ld a, [de]
 	sub [hl]
@@ -7990,7 +7990,7 @@
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_36cbd ; 36cb8 $3
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 .asm_36cbd
 	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
@@ -9951,20 +9951,25 @@
 
 
 BattleCommand68: ; 37b1d
-	ld hl, $c711
+; pursuit
+; Double damage if the opponent is switching.
+
+	ld hl, wEnemyIsSwitching
 	ld a, [hBattleTurn]
 	and a
-	jr z, .asm_37b28 ; 37b23 $3
-	ld hl, $c710
-.asm_37b28
+	jr z, .ok
+	ld hl, wPlayerIsSwitching
+.ok
 	ld a, [hl]
 	and a
 	ret z
+
 	ld hl, CurDamage + 1
 	sla [hl]
 	dec hl
 	rl [hl]
 	ret nc
+
 	ld a, $ff
 	ld [hli], a
 	ld [hl], a
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -1,3 +1,4 @@
+PARTY_LENGTH EQU 6
 
 ; strings
 PLAYER_NAME_LENGTH EQU 8
@@ -16,7 +17,8 @@
 
 
 ; boxes
-NUM_BOXES EQU 14
+MONS_PER_BOX EQU 20
+NUM_BOXES    EQU 14
 
 
 ; predefs
--- a/data/odd_eggs.asm
+++ b/data/odd_eggs.asm
@@ -35,7 +35,7 @@
 	ld hl, OddEggs
 	ld a, OddEgg2 - OddEgg1
 	call AddNTimes
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0046
 	call CopyBytes
 	ld a, EGG_TICKET
--- a/engine/engine_flags.asm
+++ b/engine/engine_flags.asm
@@ -9,13 +9,13 @@
 	dwb $d957, %00001000 ; expn card
 	dwb $d957, %10000000 ; on/off
 	
-	;   DaycareMan, %10000000 ; daycare 1 on
-	dwb DaycareMan, %01000000 ; monster 1 and 2 are compatible
-	;   DaycareMan, %00100000 ; egg is ready
-	dwb DaycareMan, %00000001 ; monster 1 in daycare
+	;   wDaycareMan, %10000000 ; daycare 1 on
+	dwb wDaycareMan, %01000000 ; monster 1 and 2 are compatible
+	;   wDaycareMan, %00100000 ; egg is ready
+	dwb wDaycareMan, %00000001 ; monster 1 in daycare
 	
-	;   DaycareLady, %10000000 = daycare 2 on
-	dwb DaycareLady, %00000001 ; monster 2 in daycare
+	;   wDaycareLady, %10000000 = daycare 2 on
+	dwb wDaycareLady, %00000001 ; monster 2 in daycare
 	
 	dwb $d854, %00000001 ; mom saving money ; $8
 	dwb $d854, %10000000 ; dst
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -2659,7 +2659,7 @@
 	ld [CurPartySpecies], a
 	call GetScriptByte
 	ld [CurPartyLevel], a
-	callba Functiondf8c
+	callba GiveEgg
 	ret nc
 	ld a, $2
 	ld [ScriptVar], a
--- a/event/name_rater.asm
+++ b/event/name_rater.asm
@@ -34,7 +34,7 @@
 	call Functionfb7d3
 	ld hl, UnknownText_0xfb837
 	jr c, .asm_fb76c
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, $000b
 	ld a, [CurPartyMon]
 	call AddNTimes
@@ -70,12 +70,12 @@
 ; fb78a
 
 Functionfb78a: ; fb78a
-	ld hl, PartyMon1OT
-	ld bc, $000b
+	ld hl, PartyMonOT
+	ld bc, NAME_LENGTH
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld de, PlayerName
-	ld c, $b
+	ld c, NAME_LENGTH
 	call .asm_fb7b1
 	jr c, .asm_fb7bc
 	ld hl, PartyMon1ID
@@ -122,7 +122,7 @@
 ; fb7d3
 
 Functionfb7d3: ; fb7d3
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, $000b
 	ld a, [CurPartyMon]
 	call AddNTimes
--- a/event/poke_seer.asm
+++ b/event/poke_seer.asm
@@ -139,7 +139,7 @@
 
 GetCaughtName: ; 4f176
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, PKMN_NAME_LENGTH
 	call AddNTimes
 	ld de, $d003
@@ -258,8 +258,8 @@
 
 GetCaughtOT: ; 4f242
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1OT
-	ld bc, $000b
+	ld hl, PartyMonOT
+	ld bc, NAME_LENGTH
 	call AddNTimes
 	ld de, $d02a
 	ld bc, $000b
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -250,10 +250,10 @@
 	dw PlayerSubStatus4,     EnemySubStatus4
 	dw PlayerSubStatus5,     EnemySubStatus5
 	dw BattleMonStatus,      EnemyMonStatus
-	dw PlayerMoveAnimation,  EnemyMoveAnimation
-	dw PlayerMoveEffect,     EnemyMoveEffect
-	dw PlayerMovePower,      EnemyMovePower
-	dw PlayerMoveType,       EnemyMoveType
+	dw wPlayerMoveStruct + MOVE_ANIM,   wEnemyMoveStruct + MOVE_ANIM
+	dw wPlayerMoveStruct + MOVE_EFFECT, wEnemyMoveStruct + MOVE_EFFECT
+	dw wPlayerMoveStruct + MOVE_POWER,  wEnemyMoveStruct + MOVE_POWER
+	dw wPlayerMoveStruct + MOVE_TYPE,   wEnemyMoveStruct + MOVE_TYPE
 	dw CurPlayerMove,        CurEnemyMove
 	dw LastEnemyCounterMove, LastPlayerCounterMove
 	dw LastPlayerMove,       LastEnemyMove
--- a/home/map.asm
+++ b/home/map.asm
@@ -120,7 +120,7 @@
 	ld e, a
 	ld a, [$d195]
 	ld d, a
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld b, $5
 
 .asm_21a5
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -274,7 +274,7 @@
 	ld a, b
 	ld [$ffb6], a
 
-	ld hl, EnemyMonHPHi
+	ld hl, EnemyMonHP
 	ld b, [hl]
 	inc hl
 	ld c, [hl]
@@ -449,9 +449,9 @@
 .asm_ea1a
 	set 3, [hl]
 	ld hl, $c6f2
-	ld a, [EnemyMonAtkDefDV]
+	ld a, [EnemyMonDVs]
 	ld [hli], a
-	ld a, [EnemyMonSpdSpclDV]
+	ld a, [EnemyMonDVs + 1]
 	ld [hl], a
 
 .asm_ea27
@@ -579,7 +579,7 @@
 	ld a, [PartyCount]
 	dec a
 	ld [CurPartyMon], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, PKMN_NAME_LENGTH
 	call AddNTimes
 
@@ -1316,11 +1316,11 @@
 ; eeeb
 
 Table_eeeb: ; eeeb
-	db HP_UP,   PartyMon1HPExp   - PartyMon1StatExp
-	db PROTEIN, PartyMon1AtkExp  - PartyMon1StatExp
-	db IRON,    PartyMon1DefExp  - PartyMon1StatExp
-	db CARBOS,  PartyMon1SpdExp  - PartyMon1StatExp
-	db CALCIUM, PartyMon1SpclExp - PartyMon1StatExp
+	db HP_UP,   PartyMon1HPExp  - PartyMon1StatExp
+	db PROTEIN, PartyMon1AtkExp - PartyMon1StatExp
+	db IRON,    PartyMon1DefExp - PartyMon1StatExp
+	db CARBOS,  PartyMon1SpdExp - PartyMon1StatExp
+	db CALCIUM, PartyMon1SpcExp - PartyMon1StatExp
 ; eef5
 
 
@@ -1334,7 +1334,7 @@
 	ld [CurPartyLevel], a
 	call GetBaseData
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ret
 ; 0xef14
--- a/main.asm
+++ b/main.asm
@@ -3891,7 +3891,7 @@
 
 	ld a, 1
 	call GetSRAMBank
-	ld hl, BoxCount
+	ld hl, sBoxCount
 	call Function5ca1
 	call CloseSRAM
 	
@@ -3908,16 +3908,16 @@
 	call Function5ca1
 
 	xor a
-	ld [RoamMon1Species], a
-	ld [RoamMon2Species], a
-	ld [RoamMon3Species], a
+	ld [wRoamMon1Species], a
+	ld [wRoamMon2Species], a
+	ld [wRoamMon3Species], a
 	ld a, -1
-	ld [RoamMon1MapGroup], a
-	ld [RoamMon2MapGroup], a
-	ld [RoamMon3MapGroup], a
-	ld [RoamMon1MapNumber], a
-	ld [RoamMon2MapNumber], a
-	ld [RoamMon3MapNumber], a
+	ld [wRoamMon1MapGroup], a
+	ld [wRoamMon2MapGroup], a
+	ld [wRoamMon3MapGroup], a
+	ld [wRoamMon1MapNumber], a
+	ld [wRoamMon2MapNumber], a
+	ld [wRoamMon3MapNumber], a
 
 	ld a, 0
 	call GetSRAMBank
@@ -3977,8 +3977,8 @@
 ; 5ca6
 
 Function5ca6: ; 5ca6
-	ld hl, Box1Name
-	ld c, $0
+	ld hl, wBoxNames
+	ld c, 0
 .asm_5cab
 	push hl
 	ld de, .Box
@@ -3986,22 +3986,22 @@
 	dec hl
 	ld a, c
 	inc a
-	cp $a
+	cp 10
 	jr c, .asm_5cbe
-	sub $a
-	ld [hl], $f7
+	sub 10
+	ld [hl], "1"
 	inc hl
 
 .asm_5cbe
-	add $f6
+	add "0"
 	ld [hli], a
-	ld [hl], $50
+	ld [hl], "@"
 	pop hl
-	ld de, $0009
+	ld de, 9
 	add hl, de
 	inc c
 	ld a, c
-	cp $e
+	cp NUM_BOXES
 	jr c, .asm_5cab
 	ret
 
@@ -4041,18 +4041,14 @@
 	ld de, GreensName
 
 .Copy
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	ret
 
-.Rival
-	db "???@"
-.Red
-	db "RED@"
-.Green
-	db "GREEN@"
-.Mom
-	db "MOM@"
+.Rival  db "???@"
+.Red    db "RED@"
+.Green  db "GREEN@"
+.Mom    db "MOM@"
 ; 5d23
 
 Function5d23: ; 5d23
@@ -5258,11 +5254,11 @@
 Function6508: ; 6508
 	call Function309d
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld hl, StringBuffer1
 	ld de, $d050
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 
 Function6520: ; 6520
@@ -6514,7 +6510,7 @@
 
 DaycareStep:: ; 7282
 
-	ld a, [DaycareMan]
+	ld a, [wDaycareMan]
 	bit 0, a
 	jr z, .asm_72a4
 
@@ -6536,7 +6532,7 @@
 	ld [hl], a
 
 .asm_72a4
-	ld a, [DaycareLady]
+	ld a, [wDaycareLady]
 	bit 0, a
 	jr z, .asm_72c6
 
@@ -6558,10 +6554,10 @@
 	ld [hl], a
 
 .asm_72c6
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	bit 5, [hl] ; egg
 	ret z
-	ld hl, StepsToEgg
+	ld hl, wStepsToEgg
 	dec [hl]
 	ret nz
 
@@ -6586,7 +6582,7 @@
 	call Random
 	cp b
 	ret nc
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	res 5, [hl]
 	set 6, [hl]
 	ret
@@ -6635,7 +6631,7 @@
 ; Nickname.
 	ld a, [PartyCount]
 	dec a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call SkipNames
 	ld de, SpecialShuckleNick
 	call CopyName2
@@ -6643,7 +6639,7 @@
 ; OT.
 	ld a, [PartyCount]
 	dec a
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	ld de, SpecialShuckleOT
 	call CopyName2
@@ -6691,7 +6687,7 @@
 
 ; OT
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	ld de, SpecialShuckleOT
 .CheckOT
@@ -7767,7 +7763,7 @@
 	dwb Functionda96, BANK(Functionda96)
 	dwb Functiondb3f, BANK(Functiondb3f) ; $8
 	dwb Functionde6e, BANK(Functionde6e)
-	dwb Functiondf8c, BANK(Functiondf8c)
+	dwb GiveEgg, BANK(GiveEgg)
 	dwb Functionc6e0, BANK(Functionc6e0)
 	dwb Functione167, BANK(Functione167)
 	dwb Functione17b, BANK(Functione17b)
@@ -8939,7 +8935,7 @@
 
 GetPartyNick: ; c706
 ; write CurPartyMon nickname to StringBuffer1-3
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, BOXMON
 	ld [MonType], a
 	ld a, [CurPartyMon]
@@ -12321,7 +12317,7 @@
 .asm_d899
 	ld a, [de]
 	inc a
-	cp $7
+	cp PARTY_LENGTH + 1
 	ret nc
 	ld [de], a
 	ld a, [de]
@@ -12337,11 +12333,11 @@
 	inc de
 	ld a, $ff
 	ld [de], a
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld a, [MonType]
 	and $f
 	jr z, .asm_d8bc
-	ld hl, OTPartyMon1OT
+	ld hl, OTPartyMonOT
 
 .asm_d8bc
 	ld a, [$ffae]
@@ -12350,7 +12346,7 @@
 	ld d, h
 	ld e, l
 	ld hl, PlayerName
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	ld a, [MonType]
 	and a
@@ -12358,7 +12354,7 @@
 	ld a, [CurPartySpecies]
 	ld [$d265], a
 	call GetPokemonName
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [$ffae]
 	dec a
 	call SkipNames
@@ -12365,7 +12361,7 @@
 	ld d, h
 	ld e, l
 	ld hl, StringBuffer1
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 
 .asm_d8f0
@@ -12542,10 +12538,10 @@
 	jr .asm_da29
 
 .asm_d9f3
-	ld a, [EnemyMonAtkDefDV]
+	ld a, [EnemyMonDVs]
 	ld [de], a
 	inc de
-	ld a, [EnemyMonSpdSpclDV]
+	ld a, [EnemyMonDVs + 1]
 	ld [de], a
 	inc de
 
@@ -12591,7 +12587,7 @@
 	ld a, [IsInBattle]
 	dec a
 	jr nz, .asm_da3b
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 	ld bc, $000c
 	call CopyBytes
 	pop hl
@@ -12609,7 +12605,7 @@
 	and $f
 	jr nz, .asm_da6b
 	ld a, [CurPartySpecies]
-	cp $c9
+	cp UNOWN
 	jr nz, .asm_da6b
 	ld hl, PartyMon1DVs
 	ld a, [PartyCount]
@@ -12616,7 +12612,7 @@
 	dec a
 	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld a, $2d
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	callab Functionfba18
 
@@ -12659,13 +12655,13 @@
 Functionda96: ; da96
 	ld hl, PartyCount
 	ld a, [hl]
-	cp $6
+	cp PARTY_LENGTH
 	scf
 	ret z
 	inc a
 	ld [hl], a
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [CurPartySpecies]
 	ld [hli], a
@@ -12679,32 +12675,33 @@
 	ld d, h
 	ld hl, TempMonSpecies
 	call CopyBytes
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld a, [PartyCount]
 	dec a
 	call SkipNames
 	ld d, h
 	ld e, l
-	ld hl, OTPartyMon1OT
+	ld hl, OTPartyMonOT
 	ld a, [CurPartyMon]
 	call SkipNames
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	call CopyBytes
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [PartyCount]
 	dec a
 	call SkipNames
 	ld d, h
 	ld e, l
-	ld hl, OTPartyMon1Nickname
+	ld hl, OTPartyMonNicknames
 	ld a, [CurPartyMon]
 	call SkipNames
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
+
 	ld a, [CurPartySpecies]
 	ld [$d265], a
-	cp $fd
-	jr z, .asm_db12
+	cp EGG
+	jr z, .owned
 	dec a
 	call SetSeenAndCaughtMon
 	ld hl, PartyMon1Happiness
@@ -12713,26 +12710,26 @@
 	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld [hl], BASE_HAPPINESS
+.owned
 
-.asm_db12
 	ld a, [CurPartySpecies]
-	cp $c9
-	jr nz, .asm_db3d
+	cp UNOWN
+	jr nz, .done
 	ld hl, PartyMon1DVs
 	ld a, [PartyCount]
 	dec a
 	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld a, $2d
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	callab Functionfba18
 	ld a, [$def4]
 	and a
-	jr nz, .asm_db3d
+	jr nz, .done
 	ld a, [UnownLetter]
 	ld [$def4], a
+.done
 
-.asm_db3d
 	and a
 	ret
 ; db3f
@@ -12746,11 +12743,11 @@
 	cp $2
 	jr z, .asm_db60
 	cp $3
-	ld hl, BreedMon1Species
+	ld hl, wBreedMon1Species
 	jr z, .asm_db9b
-	ld hl, BoxCount
+	ld hl, sBoxCount
 	ld a, [hl]
-	cp $14
+	cp MONS_PER_BOX
 	jr nz, .asm_db69
 	jp Functiondcb1
 
@@ -12757,7 +12754,7 @@
 .asm_db60
 	ld hl, PartyCount
 	ld a, [hl]
-	cp $6
+	cp PARTY_LENGTH
 	jp z, Functiondcb1
 
 .asm_db69
@@ -12764,11 +12761,11 @@
 	inc a
 	ld [hl], a
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [$d10b]
 	cp $2
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	jr z, .asm_db7c
 	ld a, [CurPartySpecies]
 
@@ -12781,9 +12778,9 @@
 	ld bc, PartyMon2 - PartyMon1
 	ld a, [PartyCount]
 	jr nz, .asm_db97
-	ld hl, BoxMon1Species
-	ld bc, $0020
-	ld a, [BoxCount]
+	ld hl, sBoxMon1Species
+	ld bc, sBoxMon1End - sBoxMon1
+	ld a, [sBoxCount]
 
 .asm_db97
 	dec a
@@ -12795,11 +12792,11 @@
 	ld d, h
 	ld a, [$d10b]
 	and a
-	ld hl, BoxMon1Species
-	ld bc, $0020
+	ld hl, sBoxMon1Species
+	ld bc, sBoxMon1End - sBoxMon1
 	jr z, .asm_dbb7
 	cp $2
-	ld hl, BreedMon1Species
+	ld hl, wBreedMon1Species
 	jr z, .asm_dbbd
 	ld hl, PartyMon1Species
 	ld bc, PartyMon2 - PartyMon1
@@ -12809,18 +12806,18 @@
 	call AddNTimes
 
 .asm_dbbd
-	ld bc, $0020
+	ld bc, sBoxMon1End - sBoxMon1
 	call CopyBytes
 	ld a, [$d10b]
 	cp $3
-	ld de, BreedMon1OT
+	ld de, wBreedMon1OT
 	jr z, .asm_dbe2
 	dec a
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld a, [PartyCount]
 	jr nz, .asm_dbdc
-	ld hl, BoxMon1OT
-	ld a, [BoxCount]
+	ld hl, sBoxMonOT
+	ld a, [sBoxCount]
 
 .asm_dbdc
 	dec a
@@ -12829,14 +12826,14 @@
 	ld e, l
 
 .asm_dbe2
-	ld hl, BoxMon1OT
+	ld hl, sBoxMonOT
 	ld a, [$d10b]
 	and a
 	jr z, .asm_dbf5
-	ld hl, BreedMon1OT
+	ld hl, wBreedMon1OT
 	cp $2
 	jr z, .asm_dbfb
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 
 .asm_dbf5
 	ld a, [CurPartyMon]
@@ -12843,18 +12840,18 @@
 	call SkipNames
 
 .asm_dbfb
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	ld a, [$d10b]
 	cp $3
-	ld de, BreedMon1Nick
+	ld de, wBreedMon1Nick
 	jr z, .asm_dc20
 	dec a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [PartyCount]
 	jr nz, .asm_dc1a
-	ld hl, BoxMon1Nickname
-	ld a, [BoxCount]
+	ld hl, sBoxMonNicknames
+	ld a, [sBoxCount]
 
 .asm_dc1a
 	dec a
@@ -12863,14 +12860,14 @@
 	ld e, l
 
 .asm_dc20
-	ld hl, BoxMon1Nickname
+	ld hl, sBoxMonNicknames
 	ld a, [$d10b]
 	and a
 	jr z, .asm_dc33
-	ld hl, BreedMon1Nick
+	ld hl, wBreedMon1Nick
 	cp $2
 	jr z, .asm_dc39
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 
 .asm_dc33
 	ld a, [CurPartyMon]
@@ -12877,7 +12874,7 @@
 	call SkipNames
 
 .asm_dc39
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	pop hl
 	ld a, [$d10b]
@@ -12922,7 +12919,7 @@
 	ld d, h
 	ld e, l
 	ld a, [CurPartySpecies]
-	cp $fd
+	cp EGG
 	jr z, .asm_dc9e
 	inc hl
 	inc hl
@@ -12941,7 +12938,7 @@
 	jr .asm_dcac
 
 .asm_dca4
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	dec a
 	ld b, a
 	call Functiondcb6
@@ -12962,12 +12959,12 @@
 Functiondcb6: ; dcb6
 
 	ld a, b
-	ld hl, BoxMons
-	ld bc, BoxMon2 - BoxMon1
+	ld hl, sBoxMons
+	ld bc, sBoxMon1End - sBoxMon1
 	call AddNTimes
 	ld b, h
 	ld c, l
-	ld hl, BoxMon1PP - BoxMon1
+	ld hl, sBoxMon1PP - sBoxMon1
 	add hl, bc
 	push hl
 	push bc
@@ -12975,7 +12972,7 @@
 	ld bc, NUM_MOVES
 	call CopyBytes
 	pop bc
-	ld hl, BoxMon1Moves - BoxMon1
+	ld hl, sBoxMon1Moves - sBoxMon1
 	add hl, bc
 	push hl
 	ld de, TempMonMoves
@@ -13027,7 +13024,7 @@
 
 
 Functiondd21: ; dd21
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	ld [CurPartySpecies], a
 	ld de, SFX_TRANSACTION
 	call PlaySFX
@@ -13043,7 +13040,7 @@
 ; dd42
 
 Functiondd42: ; dd42
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	ld [CurPartySpecies], a
 	ld de, SFX_TRANSACTION
 	call PlaySFX
@@ -13061,7 +13058,7 @@
 Functiondd64: ; dd64
 	ld hl, PartyCount
 	ld a, [hl]
-	cp $6
+	cp PARTY_LENGTH
 	jr nz, .asm_dd6e
 	scf
 	ret
@@ -13070,15 +13067,15 @@
 	inc a
 	ld [hl], a
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [$d10b]
 	and a
-	ld a, [BreedMon1Species]
-	ld de, BreedMon1Nick
+	ld a, [wBreedMon1Species]
+	ld de, wBreedMon1Nick
 	jr z, .asm_dd86
-	ld a, [BreedMon2Species]
-	ld de, BreedMon2Nick
+	ld a, [wBreedMon2Species]
+	ld de, wBreedMon2Nick
 
 .asm_dd86
 	ld [hli], a
@@ -13085,7 +13082,7 @@
 	ld [CurSpecies], a
 	ld a, $ff
 	ld [hl], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [PartyCount]
 	dec a
 	call SkipNames
@@ -13095,7 +13092,7 @@
 	pop de
 	call CopyBytes
 	push hl
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld a, [PartyCount]
 	dec a
 	call SkipNames
@@ -13168,7 +13165,7 @@
 ; de2a
 
 Functionde2a: ; de2a
-	ld de, BreedMon1Nick
+	ld de, wBreedMon1Nick
 	call Functionde44
 	xor a
 	ld [$d10b], a
@@ -13176,7 +13173,7 @@
 ; de37
 
 Functionde37: ; de37
-	ld de, BreedMon2Nick
+	ld de, wBreedMon2Nick
 	call Functionde44
 	xor a
 	ld [$d10b], a
@@ -13185,11 +13182,11 @@
 
 Functionde44: ; de44
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call SkipNames
 	call CopyBytes
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	call CopyBytes
 	ld a, [CurPartyMon]
@@ -13196,17 +13193,17 @@
 	ld hl, PartyMon1Species
 	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld bc, $0020
+	ld bc, sBoxMon1End - sBoxMon1
 	jp CopyBytes
 ; de6e
 
 
 Functionde6e: ; de6e
-	ld a, 1 ; BANK(BoxCount)
+	ld a, 1 ; BANK(sBoxCount)
 	call GetSRAMBank
-	ld de, BoxCount
+	ld de, sBoxCount
 	ld a, [de]
-	cp 20
+	cp MONS_PER_BOX
 	jp nc, Functiondf42
 	inc a
 	ld [de], a
@@ -13225,19 +13222,19 @@
 	call GetBaseData
 	call ShiftBoxMon
 	ld hl, PlayerName
-	ld de, BoxMonOT
-	ld bc, BoxMon2OT - BoxMon1OT
+	ld de, sBoxMonOT
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	ld a, [CurPartySpecies]
 	ld [$d265], a
 	call GetPokemonName
-	ld de, BoxMon1Nickname
+	ld de, sBoxMonNicknames
 	ld hl, StringBuffer1
-	ld bc, BoxMon2Nickname - BoxMon1Nickname
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	ld hl, EnemyMon
-	ld de, BoxMon1
-	ld bc, 6 ; species + item + moves
+	ld de, sBoxMon1
+	ld bc, 1 + 1 + NUM_MOVES ; species + item + moves
 	call CopyBytes
 	ld hl, PlayerID
 	ld a, [hli]
@@ -13267,8 +13264,8 @@
 	inc de
 	dec b
 	jr nz, .asm_dee5
-	ld hl, EnemyMonAtkDefDV
-	ld b, $6
+	ld hl, EnemyMonDVs
+	ld b, 2 + NUM_MOVES ; DVs and PP ; EnemyMonHappiness - EnemyMonDVs
 .asm_deef
 	ld a, [hli]
 	ld [de], a
@@ -13275,7 +13272,7 @@
 	inc de
 	dec b
 	jr nz, .asm_deef
-	ld a, $46
+	ld a, BASE_HAPPINESS
 	ld [de], a
 	inc de
 	xor a
@@ -13293,17 +13290,17 @@
 	ld a, [CurPartySpecies]
 	cp UNOWN
 	jr nz, .asm_df20
-	ld hl, BoxMon1DVs
+	ld hl, sBoxMon1DVs
 	ld a, $2d
 	call Predef
 	callab Functionfba18
 
 .asm_df20
-	ld hl, BoxMon1Moves
+	ld hl, sBoxMon1Moves
 	ld de, TempMonMoves
 	ld bc, NUM_MOVES
 	call CopyBytes
-	ld hl, BoxMon1PP
+	ld hl, sBoxMon1PP
 	ld de, TempMonPP
 	ld bc, NUM_MOVES
 	call CopyBytes
@@ -13321,19 +13318,19 @@
 ; df47
 
 ShiftBoxMon: ; df47
-	ld hl, BoxMonOT
-	ld bc, BoxMon2OT - BoxMon1OT
+	ld hl, sBoxMonOT
+	ld bc, NAME_LENGTH
 	call .asm_df5f
 
-	ld hl, BoxMonNicknames
-	ld bc, BoxMon2Nickname - BoxMon1Nickname
+	ld hl, sBoxMonNicknames
+	ld bc, PKMN_NAME_LENGTH
 	call .asm_df5f
 
-	ld hl, BoxMons
-	ld bc, BoxMon2 - BoxMon1
+	ld hl, sBoxMons
+	ld bc, sBoxMon1End - sBoxMon1
 
 .asm_df5f
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	cp 2
 	ret c
 
@@ -13344,13 +13341,13 @@
 	ld d, h
 	pop hl
 
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	dec a
 	call AddNTimes
 	dec hl
 
 	push hl
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	dec a
 	ld hl, 0
 	call AddNTimes
@@ -13368,7 +13365,7 @@
 	ret
 ; df8c
 
-Functiondf8c:: ; df8c
+GiveEgg:: ; df8c
 	ld a, [CurPartySpecies]
 	push af
 	callab GetPreEvolution
@@ -13421,14 +13418,14 @@
 	ld [hl], a
 	ld hl, PartyCount
 	ld a, [hl]
-	ld b, $0
+	ld b, 0
 	ld c, a
 	add hl, bc
-	ld a, $fd
+	ld a, EGG
 	ld [hl], a
 	ld a, [PartyCount]
 	dec a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call SkipNames
 	ld de, Stringe035
 	call CopyName2
@@ -13469,9 +13466,9 @@
 	and a
 	jr z, .asm_e04a
 
-	ld a, 1 ; BANK(BoxCount)
+	ld a, 1 ; BANK(sBoxCount)
 	call GetSRAMBank
-	ld hl, BoxCount
+	ld hl, sBoxCount
 
 .asm_e04a
 	ld a, [hl]
@@ -13490,13 +13487,13 @@
 	ld [hli], a
 	inc a
 	jr nz, .asm_e057
-	ld hl, PartyMon1OT
-	ld d, $5
+	ld hl, PartyMonOT
+	ld d, PARTY_LENGTH - 1
 	ld a, [$d10b]
 	and a
 	jr z, .asm_e06d
-	ld hl, BoxMonOT
-	ld d, $13
+	ld hl, sBoxMonOT
+	ld d, MONS_PER_BOX - 1
 
 .asm_e06d
 	ld a, [CurPartyMon]
@@ -13510,13 +13507,13 @@
 .asm_e07e
 	ld d, h
 	ld e, l
-	ld bc, $000b
+	ld bc, PKMN_NAME_LENGTH
 	add hl, bc
-	ld bc, PartyMon1Nickname
+	ld bc, PartyMonNicknames
 	ld a, [$d10b]
 	and a
 	jr z, .asm_e090
-	ld bc, BoxMonNicknames
+	ld bc, sBoxMonNicknames
 .asm_e090
 	call CopyDataUntil
 
@@ -13525,8 +13522,8 @@
 	ld a, [$d10b]
 	and a
 	jr z, .asm_e0a5
-	ld hl, BoxMons
-	ld bc, BoxMon2 - BoxMon1
+	ld hl, sBoxMons
+	ld bc, sBoxMon1End - sBoxMon1
 
 .asm_e0a5
 	ld a, [CurPartyMon]
@@ -13536,37 +13533,37 @@
 	ld a, [$d10b]
 	and a
 	jr z, .asm_e0bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon1End - sBoxMon1
 	add hl, bc
-	ld bc, BoxMonOT
+	ld bc, sBoxMonOT
 	jr .asm_e0c3
 
 .asm_e0bc
 	ld bc, PartyMon2 - PartyMon1
 	add hl, bc
-	ld bc, PartyMon1OT
+	ld bc, PartyMonOT
 
 .asm_e0c3
 	call CopyDataUntil
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [$d10b]
 	and a
 	jr z, .asm_e0d2
-	ld hl, BoxMonNicknames
+	ld hl, sBoxMonNicknames
 
 .asm_e0d2
-	ld bc, BoxMon2Nickname - BoxMon1Nickname
+	ld bc, PKMN_NAME_LENGTH
 	ld a, [CurPartyMon]
 	call AddNTimes
 	ld d, h
 	ld e, l
-	ld bc, BoxMon2Nickname - BoxMon1Nickname
+	ld bc, PKMN_NAME_LENGTH
 	add hl, bc
 	ld bc, PartyMonNicknamesEnd
 	ld a, [$d10b]
 	and a
 	jr z, .asm_e0ed
-	ld bc, BoxMonNicknamesEnd
+	ld bc, sBoxMonNicknamesEnd
 
 .asm_e0ed
 	call CopyDataUntil
@@ -13854,7 +13851,7 @@
 	ld [MonType], a
 	call Functiond88c
 	jr nc, .asm_e2b0
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [PartyCount]
 	dec a
 	ld [CurPartyMon], a
@@ -13899,7 +13896,7 @@
 	and a
 	jr z, .asm_e2e1
 	ld a, [CurItem]
-	ld [BoxMon1Item], a
+	ld [sBoxMon1Item], a
 
 .asm_e2e1
 	ld a, [CurPartySpecies]
@@ -13936,7 +13933,7 @@
 	jr nz, .asm_e35e
 	push hl
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	ld d, h
 	ld e, l
@@ -13967,7 +13964,7 @@
 .asm_e35e
 	ld a, $1
 	call GetSRAMBank
-	ld de, BoxMon1OT
+	ld de, sBoxMonOT
 .asm_e366
 	ld a, [ScriptBank]
 	call GetFarByte
@@ -13979,7 +13976,7 @@
 	ld a, [ScriptBank]
 	call GetFarByte
 	ld b, a
-	ld hl, BoxMon1ID
+	ld hl, sBoxMon1ID
 	call Random
 	ld [hli], a
 	call Random
@@ -14019,7 +14016,7 @@
 	ld a, $1
 	call GetSRAMBank
 	ld hl, $d050
-	ld de, BoxMon1Nickname
+	ld de, sBoxMonNicknames
 	ld bc, $000b
 	call CopyBytes
 	call CloseSRAM
@@ -14225,7 +14222,7 @@
 	ld a, [PartyCount]
 	and a
 	jr z, .asm_e51e
-	cp $2
+	cp 2
 	jr c, .asm_e526
 	and a
 	ret
@@ -14300,7 +14297,7 @@
 
 Functione56d: ; e56d
 	ld a, [PartyCount]
-	cp $6
+	cp PARTY_LENGTH
 	jr nc, .asm_e576
 	and a
 	ret
@@ -14347,7 +14344,7 @@
 
 Functione5bb: ; e5bb
 	ld a, [CurPartyMon]
-	ld hl, BoxMon1Species
+	ld hl, sBoxMon1Species
 	ld bc, $0020
 	call AddNTimes
 	ld de, TempMonSpecies
@@ -14377,7 +14374,7 @@
 
 .asm_e5f1
 	ld a, $1
-	ld hl, BoxCount
+	ld hl, sBoxCount
 
 .asm_e5f6
 	call GetSRAMBank
@@ -14386,7 +14383,7 @@
 	add hl, bc
 	ld b, a
 	ld c, $0
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld a, b
 	and a
 	jr z, .asm_e66a
@@ -14479,7 +14476,7 @@
 ; e698
 
 Functione698: ; e698
-	ld hl, BreedMon1Species
+	ld hl, wBreedMon1Species
 	ld de, TempMonSpecies
 	ld bc, $0020
 	call CopyBytes
@@ -14494,7 +14491,7 @@
 ; e6b3
 
 Functione6b3: ; e6b3
-	ld hl, BreedMon2Species
+	ld hl, wBreedMon2Species
 	ld de, TempMonSpecies
 	ld bc, $0020
 	call CopyBytes
@@ -15294,7 +15291,7 @@
 	callba PartyMenuSelect
 	jr c, .asm_10475
 	ld a, [CurPartySpecies] ; $d108
-	cp $fd
+	cp EGG
 	jr nz, .asm_10453
 	ld hl, UnknownText_0x1048d
 	call PrintText
@@ -15307,7 +15304,7 @@
 	call GetCurNick
 	ld hl, StringBuffer1 ; $d073
 	ld de, $d050
-	ld bc, $b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	call Function12bd9
 	pop af
@@ -20776,7 +20773,7 @@
 	call ClearBox
 	xor a
 	ld [MonType], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [CurPartyMon]
 	call GetNick
 	hlcoord 5, 1
@@ -22008,7 +22005,7 @@
 	call .AddContestStat
 
 	; DVs
-	ld a, [wContestMonAtkDefDV]
+	ld a, [wContestMonDVs + 0]
 	ld b, a
 	and 2
 	add a
@@ -22022,7 +22019,7 @@
 	add c
 	ld d, a
 
-	ld a, [wContestMonSpdSpcDV]
+	ld a, [wContestMonDVs + 1]
 	ld b, a
 	and 2
 	ld c, a
@@ -22179,7 +22176,7 @@
 	or [hl]
 	jr z, .asm_13a2b
 	ld hl, PartyCount
-	ld a, $1
+	ld a, 1
 	ld [hli], a
 	inc hl
 	ld a, [hl]
@@ -22196,7 +22193,7 @@
 ; 13a31
 
 Function13a31: ; 13a31
-	ld hl, $dcd9
+	ld hl, PartySpecies + 1
 	ld a, [$df9b]
 	ld [hl], a
 	ld b, $1
@@ -22926,9 +22923,9 @@
 	cp SPRITE_POKEMON
 	jr c, .Normal
 	cp SPRITE_DAYCARE_MON_1
-	jr z, .BreedMon1
+	jr z, .wBreedMon1
 	cp SPRITE_DAYCARE_MON_2
-	jr z, .BreedMon2
+	jr z, .wBreedMon2
 	cp SPRITE_VARS
 	jr nc, .Variable
 	jr .Icon
@@ -22946,12 +22943,12 @@
 	ld a, [hl]
 	jr .Mon
 
-.BreedMon1
-	ld a, [BreedMon1Species]
+.wBreedMon1
+	ld a, [wBreedMon1Species]
 	jr .Mon
 
-.BreedMon2
-	ld a, [BreedMon2Species]
+.wBreedMon2
+	ld a, [wBreedMon2Species]
 
 .Mon
 	ld e, a
@@ -25231,8 +25228,8 @@
 	push de
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxCount
-	ld de, EnemyMoveAnimation
+	ld hl, sBoxCount
+	ld de, $c608
 	ld bc, $01e0
 	call CopyBytes
 	call CloseSRAM
@@ -25241,7 +25238,7 @@
 	push af
 	push de
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $01e0
 	call CopyBytes
 	call CloseSRAM
@@ -25248,7 +25245,7 @@
 	ld a, $1
 	call GetSRAMBank
 	ld hl, $aef0
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $01e0
 	call CopyBytes
 	call CloseSRAM
@@ -25261,7 +25258,7 @@
 	push af
 	push de
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $01e0
 	call CopyBytes
 	call CloseSRAM
@@ -25268,7 +25265,7 @@
 	ld a, $1
 	call GetSRAMBank
 	ld hl, $b0d0
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $008e
 	call CopyBytes
 	call CloseSRAM
@@ -25279,7 +25276,7 @@
 	ld e, l
 	ld d, h
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $008e
 	call CopyBytes
 	call CloseSRAM
@@ -25296,13 +25293,13 @@
 	push af
 	push hl
 	call GetSRAMBank
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 	ld bc, $1e0
 	call CopyBytes
 	call CloseSRAM
 	ld a, $1
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld hl, $c608
 	ld de, $ad10
 	ld bc, $1e0
 	call CopyBytes
@@ -25314,13 +25311,13 @@
 	push af
 	push hl
 	call GetSRAMBank
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 	ld bc, $1e0
 	call CopyBytes
 	call CloseSRAM
 	ld a, $1
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld hl, $c608
 	ld de, $aef0
 	ld bc, $1e0
 	call CopyBytes
@@ -25330,13 +25327,13 @@
 	ld de, $1e0
 	add hl, de
 	call GetSRAMBank
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 	ld bc, $8e
 	call CopyBytes
 	call CloseSRAM
 	ld a, $1
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld hl, $c608
 	ld de, $b0d0
 	ld bc, $8e
 	call CopyBytes
@@ -28712,10 +28709,10 @@
 ; 0x166d6
 
 Function166d6: ; 166d6
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	bit 0, [hl]
 	jr nz, .asm_166fe
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	ld a, $0
 	call Function1678f
 	jr c, .asm_16724
@@ -28722,7 +28719,7 @@
 	call Function16798
 	jr c, .asm_16721
 	callba Functionde2a
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	set 0, [hl]
 	call Function167f6
 	call Function16a3b
@@ -28730,13 +28727,13 @@
 
 .asm_166fe
 	callba Functione698
-	ld hl, BreedMon1Nick
+	ld hl, wBreedMon1Nick
 	call Function1686d
 	call Function16807
 	jr c, .asm_16721
 	callba Functiondd21
 	call Function16850
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	res 0, [hl]
 	res 5, [hl]
 	jr .asm_16724
@@ -28751,10 +28748,10 @@
 ; 1672a
 
 Function1672a: ; 1672a
-	ld hl, DaycareLady
+	ld hl, wDaycareLady
 	bit 0, [hl]
 	jr nz, .asm_16752
-	ld hl, DaycareLady
+	ld hl, wDaycareLady
 	ld a, $2
 	call Function16781
 	jr c, .asm_1677b
@@ -28761,7 +28758,7 @@
 	call Function16798
 	jr c, .asm_16778
 	callba Functionde37
-	ld hl, DaycareLady
+	ld hl, wDaycareLady
 	set 0, [hl]
 	call Function167f6
 	call Function16a3b
@@ -28769,15 +28766,15 @@
 
 .asm_16752
 	callba Functione6b3
-	ld hl, BreedMon2Nick
+	ld hl, wBreedMon2Nick
 	call Function1686d
 	call Function16807
 	jr c, .asm_16778
 	callba Functiondd42
 	call Function16850
-	ld hl, DaycareLady
+	ld hl, wDaycareLady
 	res 0, [hl]
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	res 5, [hl]
 	jr .asm_1677b
 
@@ -28830,7 +28827,7 @@
 	ld d, [hl]
 	callba ItemIsMail
 	jr c, .asm_167ed
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [CurPartyMon]
 	call GetNick
 	and a
@@ -29118,7 +29115,7 @@
 ; 0x16936
 
 Function16936: ; 16936
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	bit 6, [hl]
 	jr nz, Function16949
 	ld hl, UnknownText_0x16944
@@ -29140,7 +29137,7 @@
 	cp $6
 	jr nc, .asm_16987
 	call Function169ac
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	res 6, [hl]
 	call Function16a3b
 	ld hl, UnknownText_0x16998
@@ -29213,26 +29210,26 @@
 	add hl, bc
 	ld a, EGG
 	ld [hli], a
-	ld a, [EggSpecies]
+	ld a, [wEggMonSpecies]
 	ld [CurSpecies], a
 	ld [CurPartySpecies], a
 	ld a, $ff
 	ld [hl], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, $000b
 	call Function16a31
-	ld hl, EggNick
+	ld hl, wEggNick
 	call CopyBytes
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld bc, $000b
 	call Function16a31
-	ld hl, EggOT
+	ld hl, wEggOT
 	call CopyBytes
 	ld hl, PartyMon1
 	ld bc, PartyMon2 - PartyMon1
 	call Function16a31
-	ld hl, EggMon
-	ld bc, $0020
+	ld hl, wEggMon
+	ld bc, wEggMonEnd - wEggMon
 	call CopyBytes
 	call GetBaseData
 	ld a, [PartyCount]
@@ -29278,10 +29275,10 @@
 ; 16a3b
 
 Function16a3b: ; 16a3b
-	ld a, [DaycareLady]
+	ld a, [wDaycareLady]
 	bit 0, a
 	ret z
-	ld a, [DaycareMan]
+	ld a, [wDaycareMan]
 	bit 0, a
 	ret z
 	callab Function16e1d
@@ -29290,40 +29287,40 @@
 	ret z
 	inc a
 	ret z
-	ld hl, DaycareMan
+	ld hl, wDaycareMan
 	set 5, [hl]
 .asm_16a59
 	call Random
 	cp 150
 	jr c, .asm_16a59
-	ld [StepsToEgg], a
+	ld [wStepsToEgg], a
 	jp Function16a66
 ; 16a66
 
 Function16a66: ; 16a66
 	xor a
-	ld hl, EggSpecies
-	ld bc, $0020
+	ld hl, wEggMon
+	ld bc, wEggMonEnd - wEggMon
 	call ByteFill
-	ld hl, EggNick
-	ld bc, $000b
+	ld hl, wEggNick
+	ld bc, PKMN_NAME_LENGTH
 	call ByteFill
-	ld hl, EggOT
-	ld bc, $000b
+	ld hl, wEggOT
+	ld bc, NAME_LENGTH
 	call ByteFill
 	ld a, [$df21]
 	ld [TempMonDVs], a
 	ld a, [$df22]
 	ld [$d124], a
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	ld [CurPartySpecies], a
 	ld a, $3
 	ld [MonType], a
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp DITTO
 	ld a, $1
 	jr z, .asm_16ab6
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	ld a, $0
 	jr z, .asm_16ab6
@@ -29333,11 +29330,11 @@
 	inc a
 
 .asm_16ab6
-	ld [DittoInDaycare], a
+	ld [wDittoInDaycare], a
 	and a
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	jr z, .asm_16ac2
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 
 .asm_16ac2
 	ld [CurPartySpecies], a
@@ -29357,14 +29354,14 @@
 .asm_16ae8
 	ld [CurPartySpecies], a
 	ld [CurSpecies], a
-	ld [EggSpecies], a
+	ld [wEggMonSpecies], a
 	call GetBaseData
-	ld hl, EggNick
+	ld hl, wEggNick
 	ld de, String_16be0
 	call CopyName2
 	ld hl, PlayerName
-	ld de, EggOT
-	ld bc, $000b
+	ld de, wEggOT
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	xor a
 	ld [$df7c], a
@@ -29404,11 +29401,11 @@
 	ld [hld], a
 	ld [$d124], a
 	ld de, $df21
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp DITTO
 	jr z, .asm_16b98
 	ld de, $df5a
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	jr z, .asm_16b98
 	ld a, $3
@@ -29420,7 +29417,7 @@
 	ld bc, $df5a
 	jr c, .asm_16bab
 	jr z, .asm_16b90
-	ld a, [DittoInDaycare]
+	ld a, [wDittoInDaycare]
 	and a
 	jr z, .asm_16b98
 	ld d, b
@@ -29428,7 +29425,7 @@
 	jr .asm_16b98
 
 .asm_16b90
-	ld a, [DittoInDaycare]
+	ld a, [wDittoInDaycare]
 	and a
 	jr nz, .asm_16b98
 	ld d, b
@@ -29784,7 +29781,7 @@
 	call Function16ed6
 	ld c, $0
 	jp nc, .asm_16eb7
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	ld [CurPartySpecies], a
 	ld a, [$df21]
 	ld [TempMonDVs], a
@@ -29801,7 +29798,7 @@
 
 .asm_16e48
 	push bc
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	ld [CurPartySpecies], a
 	ld a, [$df5a]
 	ld [TempMonDVs], a
@@ -29823,16 +29820,16 @@
 
 .asm_16e70
 	ld c, $0
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp DITTO
 	jr z, .asm_16e82
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	jr nz, .asm_16eb7
 	jr .asm_16e89
 
 .asm_16e82
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	jr z, .asm_16eb7
 
@@ -29840,9 +29837,9 @@
 	call Function16ebc
 	ld c, $ff
 	jp z, .asm_16eb7
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	ld b, a
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp b
 	ld c, $fe
 	jr z, .asm_16e9f
@@ -29889,19 +29886,19 @@
 ; 16ed6
 
 Function16ed6: ; 16ed6
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	ld [CurSpecies], a
 	call GetBaseData
 	ld a, [BaseEggGroups]
 	cp $ff
 	jr z, .asm_16f3a
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	ld [CurSpecies], a
 	call GetBaseData
 	ld a, [BaseEggGroups]
 	cp $ff
 	jr z, .asm_16f3a
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	jr z, .asm_16f3c
 	ld [CurSpecies], a
@@ -29914,7 +29911,7 @@
 	and $f0
 	swap a
 	ld c, a
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp DITTO
 	jr z, .asm_16f3c
 	ld [CurSpecies], a
@@ -30080,7 +30077,7 @@
 	ld a, [$d47c]
 	ld [hl], a
 	ld a, [CurPartyMon] ; $d109
-	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT)
 	ld bc, $b
 	call AddNTimes
 	ld d, h
@@ -30090,7 +30087,7 @@
 	ld hl, UnknownText_0x1708b
 	call PrintText
 	ld a, [CurPartyMon] ; $d109
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	ld bc, $b
 	call AddNTimes
 	ld d, h
@@ -30211,7 +30208,7 @@
 GLOBAL EggMoves
 
 	push bc
-	ld a, [EggSpecies]
+	ld a, [wEggMonSpecies]
 	dec a
 	ld c, a
 	ld b, 0
@@ -30245,7 +30242,7 @@
 	jr .asm_1710c
 
 .asm_17116
-	ld a, [EggSpecies]
+	ld a, [wEggMonSpecies]
 	dec a
 	ld c, a
 	ld b, 0
@@ -30343,13 +30340,13 @@
 
 Function17197: ; 17197
 	ld hl, $df47
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp DITTO
 	jr z, .asm_171b1
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	jr z, .asm_171d7
-	ld a, [DittoInDaycare]
+	ld a, [wDittoInDaycare]
 	and a
 	ret z
 	ld hl, $df0e
@@ -30358,7 +30355,7 @@
 .asm_171b1
 	ld a, [CurPartySpecies]
 	push af
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	ld [CurPartySpecies], a
 	ld a, [$df5a]
 	ld [TempMonDVs], a
@@ -30375,7 +30372,7 @@
 .asm_171d7
 	ld a, [CurPartySpecies]
 	push af
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	ld [CurPartySpecies], a
 	ld a, [$df21]
 	ld [TempMonDVs], a
@@ -30403,13 +30400,13 @@
 
 Function1720b: ; 1720b
 	ld hl, $df0e
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	cp DITTO
 	ret z
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	cp DITTO
 	jr z, .asm_17220
-	ld a, [DittoInDaycare]
+	ld a, [wDittoInDaycare]
 	and a
 	ret z
 
@@ -30425,7 +30422,7 @@
 	ld [CurPartySpecies], a ; $d108
 	ld [CurSpecies], a ; $cf60
 	call GetBaseData
-	ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV)
+	ld hl, BattleMonDVs
 	ld a, $2d
 	call Predef
 	pop de
@@ -30438,7 +30435,7 @@
 	ld [CurPartySpecies], a ; $d108
 	ld [CurSpecies], a ; $cf60
 	call GetBaseData
-	ld hl, BattleMonDVs ; $c632 (aliases: BattleMonAtkDefDV)
+	ld hl, BattleMonDVs
 	ld a, $2d
 	call Predef
 	pop de
@@ -30672,13 +30669,13 @@
 Function17421: ; 17421
 	ld hl, UnknownText_0x17467
 	call PrintText
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	call Function37ce
-	ld a, [DaycareLady]
+	ld a, [wDaycareLady]
 	bit 0, a
 	jr z, Function1745f
 	call Functionaaf
-	ld hl, BreedMon2Nick
+	ld hl, wBreedMon2Nick
 	call Function1746c
 	jp PrintText
 
@@ -30685,13 +30682,13 @@
 Function17440: ; 17440
 	ld hl, UnknownText_0x17462
 	call PrintText
-	ld a, [BreedMon2Species]
+	ld a, [wBreedMon2Species]
 	call Function37ce
-	ld a, [DaycareMan]
+	ld a, [wDaycareMan]
 	bit 0, a
 	jr z, Function1745f
 	call Functionaaf
-	ld hl, BreedMon1Nick
+	ld hl, wBreedMon1Nick
 	call Function1746c
 	jp PrintText
 
@@ -36345,7 +36342,7 @@
 	call Function75f
 	ld a, $fe
 	ld [de], a
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld de, PlayerSDefLevel
 	ld bc, $00c8
 	call Function75f
@@ -36488,7 +36485,7 @@
 	call Function75f
 	ld a, $fe
 	ld [de], a
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld de, PlayerSDefLevel
 	ld bc, $00c8
 	call Function75f
@@ -36838,7 +36835,7 @@
 	ld [hli], a
 	dec b
 	jr nz, .asm_28441
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld a, $fd
 	ld [hli], a
 	ld [hli], a
@@ -36850,7 +36847,7 @@
 	dec b
 	jr nz, .asm_28457
 	ld hl, $c818
-	ld de, PlayerMoveType
+	ld de, $c612
 	ld bc, $0000
 .asm_28464
 	inc c
@@ -37087,10 +37084,10 @@
 	ld hl, PartyMon1Species
 	ld bc, $0120
 	call CopyBytes
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld bc, $0042
 	call CopyBytes
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, $0042
 	call CopyBytes
 	ld a, [InLinkBattle]
@@ -37226,10 +37223,10 @@
 	pop hl
 	ld bc, $0108
 	add hl, bc
-	ld de, OTPartyMon1OT
+	ld de, OTPartyMonOT
 	ld bc, $0042
 	call CopyBytes
-	ld de, OTPartyMon1Nickname
+	ld de, OTPartyMonNicknames
 	ld bc, $0042
 	jp CopyBytes
 ; 286ba
@@ -38059,7 +38056,7 @@
 	ld [PlayerSDefLevel], a
 	push af
 	ld a, [DefaultFlypoint]
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	ld de, $c6f2
 	ld bc, $000b
@@ -38098,7 +38095,7 @@
 	ld a, [hl]
 	ld [PlayerLightScreenCount], a
 	ld a, [$d003]
-	ld hl, OTPartyMon1OT
+	ld hl, OTPartyMonOT
 	call SkipNames
 	ld de, $c724
 	ld bc, $000b
@@ -38110,7 +38107,7 @@
 	ld [$c731], a
 	ld a, [hl]
 	ld [$c732], a
-	ld hl, OTPartyMon1AtkDefDV
+	ld hl, OTPartyMon1DVs
 	ld a, [$d003]
 	call GetPartyLocation
 	ld a, [hli]
@@ -40541,14 +40538,14 @@
 ; 2a0b7
 
 Function2a0b7: ; 2a0b7
-	ld a, [RoamMon1Species]
+	ld a, [wRoamMon1Species]
 	ld b, a
 	ld a, [$d265]
 	cp b
 	ret nz
-	ld a, [RoamMon1MapGroup]
+	ld a, [wRoamMon1MapGroup]
 	ld b, a
-	ld a, [RoamMon1MapNumber]
+	ld a, [wRoamMon1MapNumber]
 	ld c, a
 	call Function2a09c
 	ret nc
@@ -40558,14 +40555,14 @@
 ; 2a0cf
 
 Function2a0cf: ; 2a0cf
-	ld a, [RoamMon2Species]
+	ld a, [wRoamMon2Species]
 	ld b, a
 	ld a, [$d265]
 	cp b
 	ret nz
-	ld a, [RoamMon2MapGroup]
+	ld a, [wRoamMon2MapGroup]
 	ld b, a
-	ld a, [RoamMon2MapNumber]
+	ld a, [wRoamMon2MapNumber]
 	ld c, a
 	call Function2a09c
 	ret nc
@@ -40911,45 +40908,45 @@
 
 
 InitRoamMons: ; 2a2a0
-; initialize RoamMon structs
+; initialize wRoamMon structs
 
 ; species
 	ld a, RAIKOU
-	ld [RoamMon1Species], a
+	ld [wRoamMon1Species], a
 	ld a, ENTEI
-	ld [RoamMon2Species], a
+	ld [wRoamMon2Species], a
 ;	ld a, SUICUNE
-;	ld [RoamMon3Species], a
+;	ld [wRoamMon3Species], a
 
 ; level
 	ld a, 40
-	ld [RoamMon1Level], a
-	ld [RoamMon2Level], a
-;	ld [RoamMon3Level], a
+	ld [wRoamMon1Level], a
+	ld [wRoamMon2Level], a
+;	ld [wRoamMon3Level], a
 
 ; raikou starting map
 	ld a, GROUP_ROUTE_42
-	ld [RoamMon1MapGroup], a
+	ld [wRoamMon1MapGroup], a
 	ld a, MAP_ROUTE_42
-	ld [RoamMon1MapNumber], a
+	ld [wRoamMon1MapNumber], a
 
 ; entei starting map
 	ld a, GROUP_ROUTE_37
-	ld [RoamMon2MapGroup], a
+	ld [wRoamMon2MapGroup], a
 	ld a, MAP_ROUTE_37
-	ld [RoamMon2MapNumber], a
+	ld [wRoamMon2MapNumber], a
 
 ; suicune starting map
 ;	ld a, GROUP_ROUTE_38
-;	ld [RoamMon3MapGroup], a
+;	ld [wRoamMon3MapGroup], a
 ;	ld a, MAP_ROUTE_38
-;	ld [RoamMon3MapNumber], a
+;	ld [wRoamMon3MapNumber], a
 
 ; hp
 	xor a ; generate new stats
-	ld [RoamMon1HP], a
-	ld [RoamMon2HP], a
-;	ld [RoamMon3HP], a
+	ld [wRoamMon1HP], a
+	ld [wRoamMon2HP], a
+;	ld [wRoamMon3HP], a
 
 	ret
 ; 2a2ce
@@ -40966,7 +40963,7 @@
 	and 3
 	jr z, .asm_2a30a
 	dec a
-	ld hl, RoamMon1MapGroup
+	ld hl, wRoamMon1MapGroup
 	ld c, a
 	ld b, 0
 	ld a, 7
@@ -40999,43 +40996,43 @@
 
 
 Function2a30d: ; 2a30d
-	ld a, [RoamMon1MapGroup]
+	ld a, [wRoamMon1MapGroup]
 	cp $ff
 	jr z, .asm_2a324
 	ld b, a
-	ld a, [RoamMon1MapNumber]
+	ld a, [wRoamMon1MapNumber]
 	ld c, a
 	call Function2a355
 	ld a, b
-	ld [RoamMon1MapGroup], a
+	ld [wRoamMon1MapGroup], a
 	ld a, c
-	ld [RoamMon1MapNumber], a
+	ld [wRoamMon1MapNumber], a
 
 .asm_2a324
-	ld a, [RoamMon2MapGroup]
+	ld a, [wRoamMon2MapGroup]
 	cp $ff
 	jr z, .asm_2a33b
 	ld b, a
-	ld a, [RoamMon2MapNumber]
+	ld a, [wRoamMon2MapNumber]
 	ld c, a
 	call Function2a355
 	ld a, b
-	ld [RoamMon2MapGroup], a
+	ld [wRoamMon2MapGroup], a
 	ld a, c
-	ld [RoamMon2MapNumber], a
+	ld [wRoamMon2MapNumber], a
 
 .asm_2a33b
-	ld a, [RoamMon3MapGroup]
+	ld a, [wRoamMon3MapGroup]
 	cp $ff
 	jr z, .asm_2a352
 	ld b, a
-	ld a, [RoamMon3MapNumber]
+	ld a, [wRoamMon3MapNumber]
 	ld c, a
 	call Function2a355
 	ld a, b
-	ld [RoamMon3MapGroup], a
+	ld [wRoamMon3MapGroup], a
 	ld a, c
-	ld [RoamMon3MapNumber], a
+	ld [wRoamMon3MapNumber], a
 
 .asm_2a352
 	jp Function2a3f6
@@ -41096,34 +41093,34 @@
 	ret
 
 Function2a394: ; 2a394
-	ld a, [RoamMon1MapGroup]
+	ld a, [wRoamMon1MapGroup]
 	cp $ff
 	jr z, .asm_2a3a6
 	call Function2a3cd
 	ld a, b
-	ld [RoamMon1MapGroup], a
+	ld [wRoamMon1MapGroup], a
 	ld a, c
-	ld [RoamMon1MapNumber], a
+	ld [wRoamMon1MapNumber], a
 .asm_2a3a6
 
-	ld a, [RoamMon2MapGroup]
+	ld a, [wRoamMon2MapGroup]
 	cp $ff
 	jr z, .asm_2a3b8
 	call Function2a3cd
 	ld a, b
-	ld [RoamMon2MapGroup], a
+	ld [wRoamMon2MapGroup], a
 	ld a, c
-	ld [RoamMon2MapNumber], a
+	ld [wRoamMon2MapNumber], a
 .asm_2a3b8
 
-	ld a, [RoamMon3MapGroup]
+	ld a, [wRoamMon3MapGroup]
 	cp $ff
 	jr z, .asm_2a3ca
 	call Function2a3cd
 	ld a, b
-	ld [RoamMon3MapGroup], a
+	ld [wRoamMon3MapGroup], a
 	ld a, c
-	ld [RoamMon3MapNumber], a
+	ld [wRoamMon3MapNumber], a
 .asm_2a3ca
 
 	jp Function2a3f6
@@ -42615,7 +42612,7 @@
 	call Predef
 	push bc
 	ld a, [CurPartyMon] ; $d109
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	call GetNick
 	pop bc
 	ld a, c
@@ -43443,8 +43440,8 @@
 	ld [hl], a
 
 ; Clear the entire BattleMons area
-	ld hl, EnemyMoveStruct
-	ld bc, $0139
+	ld hl, wBattle
+	ld bc, wBattleEnd - wBattle
 	xor a
 	call ByteFill
 
@@ -43929,8 +43926,8 @@
 	callab AICheckEnemyMaxHP
 	jr c, .asm_382e4
 	push bc
-	ld de, EnemyMonMaxHPLo
-	ld hl, EnemyMonHPLo
+	ld de, EnemyMonMaxHP + 1
+	ld hl, EnemyMonHP + 1
 	ld a, [de]
 	sub [hl]
 	jr z, .asm_382e7
@@ -44100,7 +44097,7 @@
 	ld [EnemyConfuseCount], a ; $c67b
 asm_383c6: ; 383c6 (e:43c6)
 	ld de, $d1ec
-	ld hl, EnemyMonHPLo ; $d217
+	ld hl, EnemyMonHP + 1 ; $d217
 	ld a, [hld]
 	ld [de], a
 	inc de
@@ -44107,16 +44104,16 @@
 	ld a, [hl]
 	ld [de], a
 	inc de
-	ld hl, EnemyMonMaxHPLo ; $d219
+	ld hl, EnemyMonMaxHP + 1 ; $d219
 	ld a, [hld]
 	ld [de], a
 	inc de
 	ld [Buffer1], a ; $d1ea (aliases: MagikarpLength)
-	ld [EnemyMonHPLo], a ; $d217
+	ld [EnemyMonHP + 1], a ; $d217
 	ld a, [hl]
 	ld [de], a
 	ld [Buffer2], a ; $d1eb (aliases: MovementType)
-	ld [EnemyMonHPHi], a ; $d216 (aliases: EnemyMonHP)
+	ld [EnemyMonHP], a ; $d216 (aliases: EnemyMonHP)
 	jr asm_38436
 ; 383e8 (e:43e8)
 
@@ -44137,7 +44134,7 @@
 
 Function383f8: ; 383f8
 	ld [$d1f1], a
-	ld hl, EnemyMonHPLo ; $d217
+	ld hl, EnemyMonHP + 1 ; $d217
 	ld a, [hl]
 	ld [$d1ec], a
 	add b
@@ -44154,7 +44151,7 @@
 	inc hl
 	ld a, [hld]
 	ld b, a
-	ld de, EnemyMonMaxHPLo ; $d219
+	ld de, EnemyMonMaxHP + 1 ; $d219
 	ld a, [de]
 	dec de
 	ld [Buffer1], a ; $d1ea (aliases: MagikarpLength)
@@ -44304,7 +44301,7 @@
 
 Function3851e: ; 3851e
 	ld [hMultiplier], a
-	ld hl, EnemyMonMaxHPHi
+	ld hl, EnemyMonMaxHP
 	ld a, [hli]
 	ld [hProduct], a
 	ld a, [hl]
@@ -44315,7 +44312,7 @@
 	ld c, a
 	ld a, [$ffb5]
 	ld b, a
-	ld hl, EnemyMonHPLo
+	ld hl, EnemyMonHP + 1
 	ld a, [hld]
 	ld e, a
 	ld a, [hl]
@@ -47760,7 +47757,7 @@
 	ld a, [hl]
 	ld [Buffer2], a
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	call CopyName1
 	ld hl, UnknownText_0x42482
@@ -47929,7 +47926,7 @@
 	jr nz, .asm_4242b
 	ld a, [CurPartyMon]
 	ld bc, $000b
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call AddNTimes
 	push hl
 	ld a, [CurSpecies]
@@ -48948,7 +48945,7 @@
 	call CopyBytes
 	pop af
 	push af
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld bc, $000b
 	call AddNTimes
 	ld bc, $000a
@@ -51399,7 +51396,7 @@
 	call Predef
 	push bc
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	pop bc
 	ld a, c
@@ -53945,7 +53942,7 @@
 	ld d, a
 	ld e, 0
 	ld hl, PartyMon1Species
-	ld bc, PartyMon1OT
+	ld bc, PartyMonOT
 
 	; Run CheckOwnMon on each Pokémon in the party.
 .partymon
@@ -53963,13 +53960,13 @@
 	; Run CheckOwnMon on each Pokémon in the PC.
 	ld a, 1
 	call GetSRAMBank
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	and a
 	jr z, .boxes
 
 	ld d, a
-	ld hl, BoxMon1Species
-	ld bc, BoxMon1OT
+	ld hl, sBoxMon1Species
+	ld bc, sBoxMonOT
 .openboxmon
 	call CheckOwnMon
 	jr nc, .next
@@ -53980,7 +53977,7 @@
 
 .next
 	push bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
 	pop bc
 	call UpdateOTPointer
@@ -54019,13 +54016,13 @@
 	push bc
 
 	push hl
-	ld de, BoxMons - BoxCount
+	ld de, sBoxMons - sBoxCount
 	add hl, de
 	ld d, h
 	ld e, l
 	pop hl
 	push de
-	ld de, BoxMonOT - BoxCount
+	ld de, sBoxMonOT - sBoxCount
 	add hl, de
 	ld b, h
 	ld c, l
@@ -54044,7 +54041,7 @@
 
 .nextboxmon
 	push bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
 	pop bc
 	call UpdateOTPointer
@@ -54153,7 +54150,7 @@
 
 UpdateOTPointer: ; 0x4a83a
 	push hl
-	ld hl, PartyMon2OT - PartyMon1OT
+	ld hl, NAME_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
@@ -54173,7 +54170,7 @@
 	ld d, a
 	ld e, 0
 	ld hl, PartyMon1Species
-	ld bc, PartyMon1OT
+	ld bc, PartyMonOT
 .asm_4a851
 	call Function4a8dc
 	ret c
@@ -54186,12 +54183,12 @@
 	jr nz, .asm_4a851
 	ld a, 1
 	call GetSRAMBank
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	and a
 	jr z, .asm_4a888
 	ld d, a
-	ld hl, BoxMon1Species
-	ld bc, BoxMon1OT
+	ld hl, sBoxMon1Species
+	ld bc, sBoxMonOT
 .asm_4a873
 	call Function4a8dc
 	jr nc, .asm_4a87c
@@ -54200,7 +54197,7 @@
 
 .asm_4a87c
 	push bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
 	pop bc
 	call Function4a91e
@@ -54230,13 +54227,13 @@
 	jr z, .asm_4a8d1
 	push bc
 	push hl
-	ld de, BoxMons - BoxCount
+	ld de, sBoxMons - sBoxCount
 	add hl, de
 	ld d, h
 	ld e, l
 	pop hl
 	push de
-	ld de, BoxMonOT - BoxCount
+	ld de, sBoxMonOT - sBoxCount
 	add hl, de
 	ld b, h
 	ld c, l
@@ -54251,7 +54248,7 @@
 
 .asm_4a8c4
 	push bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
 	pop bc
 	call Function4a91e
@@ -54316,7 +54313,7 @@
 
 Function4a91e: ; 4a91e
 	push hl
-	ld hl, PartyMon2OT - PartyMon1OT
+	ld hl, NAME_LENGTH
 	add hl, bc
 	ld b, h
 	ld c, l
@@ -54438,7 +54435,7 @@
 
 Function4a9d7: ; 4a9d7
 	ld a, [DefaultFlypoint]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld h, d
 	ld l, e
@@ -54446,7 +54443,7 @@
 	ld bc, $0006
 	call CopyBytes
 	ld a, [$d003]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld h, d
 	ld l, e
@@ -54454,7 +54451,7 @@
 	ld bc, $0006
 	call CopyBytes
 	ld a, [$d004]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld h, d
 	ld l, e
@@ -55593,7 +55590,7 @@
 
 
 Function4d15b:: ; 4d15b
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld a, [$d196]
 	and a
 	jr z, .asm_4d168
@@ -56381,12 +56378,12 @@
 	jr nz, .asm_4d88d
 	ld a, $1
 	call GetSRAMBank
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	and a
 	jr z, .asm_4d8c8
 	ld d, a
-	ld hl, BoxMon1ID
-	ld bc, BoxSpecies
+	ld hl, sBoxMon1ID
+	ld bc, sBoxSpecies
 .asm_4d8af
 	ld a, [bc]
 	inc bc
@@ -56399,7 +56396,7 @@
 
 .asm_4d8bf
 	push bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
 	pop bc
 	dec d
@@ -56446,7 +56443,7 @@
 
 .asm_4d901
 	push bc
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	add hl, bc
 	pop bc
 	dec d
@@ -56625,7 +56622,7 @@
 	call CopyBytes
 	ld a, [PartyCount]
 	dec a
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	ld d, h
 	ld e, l
@@ -56651,7 +56648,7 @@
 .asm_4da66
 	ld a, [PartyCount]
 	dec a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call SkipNames
 	ld d, h
 	ld e, l
@@ -56683,9 +56680,9 @@
 Function4daa3: ; 4daa3
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxCount
+	ld hl, sBoxCount
 	ld a, [hl]
-	cp 20
+	cp MONS_PER_BOX
 	call CloseSRAM
 	jr nc, .asm_4db08
 	xor a
@@ -56692,11 +56689,11 @@
 	ld [CurPartyMon], a
 	ld hl, $df9c
 	ld de, $d018
-	ld bc, BoxMon2 - BoxMon1
+	ld bc, sBoxMon2 - sBoxMon1
 	call CopyBytes
 	ld hl, PlayerName
 	ld de, $d00d
-	ld bc, $000b
+	ld bc, NAME_LENGTH
 	call CopyBytes
 	callab Function51322
 	ld a, [CurPartySpecies]
@@ -56714,8 +56711,8 @@
 .asm_4daf7
 	ld a, $1
 	call GetSRAMBank
-	ld de, BoxMon1Nickname
-	ld bc, $000b
+	ld de, sBoxMonNicknames
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	call CloseSRAM
 
@@ -56722,13 +56719,13 @@
 .asm_4db08
 	ld a, $1
 	call GetSRAMBank
-	ld a, [BoxMon1Level]
+	ld a, [sBoxMon1Level]
 	ld [CurPartyLevel], a
 	call CloseSRAM
 	call Function4db83
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxMon1CaughtLocation
+	ld hl, sBoxMon1CaughtLocation
 	ld a, [hl]
 	and $80
 	ld b, $13
@@ -56804,7 +56801,7 @@
 Function4db83: ; 4db83
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxMon1CaughtLevel
+	ld hl, sBoxMon1CaughtLevel
 	call Function4db53
 	call CloseSRAM
 	ret
@@ -56814,7 +56811,7 @@
 	push bc
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxMon1CaughtLevel
+	ld hl, sBoxMon1CaughtLevel
 	pop bc
 	call Function4dbaf
 	call CloseSRAM
@@ -57800,7 +57797,7 @@
 Unknown_4e216: ; 4e216
 	dw PartyMonOT
 	dw OTPartyMonOT
-	dw BoxMonOT
+	dw sBoxMonOT
 	dw $d00d
 ; 4e21e
 
@@ -57907,7 +57904,7 @@
 Function4e2bf: ; 4e2bf (13:62bf)
 	ld a, [CurPartyMon] ; $d109
 	ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species)
-	ld bc, $30
+	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
 	ld b, h
 	ld c, l
@@ -57920,7 +57917,7 @@
 
 ; no known jump sources
 Function4e2d1: ; 4e2d1 (13:62d1)
-	ld hl, BoxMons
+	ld hl, sBoxMons
 	ld bc, $30
 	ld a, [CurPartyMon] ; $d109
 	call AddNTimes
@@ -59123,7 +59120,7 @@
 	push bc
 	push hl
 	push hl
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, b
 	call GetNick
 	pop hl
@@ -59860,7 +59857,7 @@
 
 Function50566: ; 50566
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call GetNick
 	ld a, [PartyMenuActionText]
 	and $f
@@ -60501,15 +60498,15 @@
 	jr .asm_50905
 
 .asm_508f1
-	ld a, 1 ; BANK(BoxSpecies)
+	ld a, 1 ; BANK(sBoxSpecies)
 	call GetSRAMBank
-	ld hl, BoxSpecies
+	ld hl, sBoxSpecies
 	call .asm_50905
 	call CloseSRAM
 	ret
 
 .asm_50900
-	ld a, [BreedMon1Species]
+	ld a, [wBreedMon1Species]
 	jr .asm_50909
 
 .asm_50905
@@ -60797,11 +60794,11 @@
 	dec a
 	jr z, .PartyMon
 	
-; 2: BoxMon
-	ld hl, BoxMon1DVs
-	ld bc, BoxMon2 - BoxMon1
+; 2: sBoxMon
+	ld hl, sBoxMon1DVs
+	ld bc, sBoxMon2 - sBoxMon1
 	dec a
-	jr z, .BoxMon
+	jr z, .sBoxMon
 	
 ; 3: Unknown
 	ld hl, TempMonDVs
@@ -60816,7 +60813,7 @@
 ; Get our place in the party/box.
 	
 .PartyMon
-.BoxMon
+.sBoxMon
 	ld a, [CurPartyMon]
 	call AddNTimes
 	
@@ -60823,7 +60820,7 @@
 	
 .DVs
 	
-; BoxMon data is read directly from SRAM.
+; sBoxMon data is read directly from SRAM.
 	ld a, [MonType]
 	cp BOXMON
 	ld a, 1
@@ -60842,7 +60839,7 @@
 	or b
 	ld b, a
 
-; Close SRAM if we were dealing with a BoxMon.
+; Close SRAM if we were dealing with a sBoxMon.
 	ld a, [MonType]
 	cp BOXMON
 	call z, CloseSRAM
@@ -60997,7 +60994,7 @@
 Function50cdb: ; 50cdb
 	push hl
 	push hl
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld a, [CurPartyMon]
 	call GetNick
 	pop hl
@@ -61157,7 +61154,7 @@
 	cp $1
 	jr nz, .asm_50dca
 	ld hl, OTPartyCount
-	ld de, OTPartyMon1OT
+	ld de, OTPartyMonOT
 	ld a, ENEMY_OT_NAME
 	jr .asm_50dfc
 .asm_50dca
@@ -61165,7 +61162,7 @@
 	cp $4
 	jr nz, .asm_50dd8
 	ld hl, PartyCount
-	ld de, PartyMon1OT
+	ld de, PartyMonOT
 	ld a, PARTY_OT_NAME
 	jr .asm_50dfc
 .asm_50dd8
@@ -61477,12 +61474,12 @@
 	ld bc, $30
 	call CopyBytes
 	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
-	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT)
 	call SkipNames
 	push hl
 	call Function51036
 	ld a, [$d1ec]
-	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT)
 	call SkipNames
 	pop de
 	push hl
@@ -61490,12 +61487,12 @@
 	pop de
 	ld hl, DefaultFlypoint ; $d002
 	call Function51039
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
 	call SkipNames
 	push hl
 	call Function51036
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	ld a, [$d1ec]
 	call SkipNames
 	pop de
@@ -61546,8 +61543,8 @@
 ; Return Unown letter in UnownLetter based on DVs at hl
 
 ; Take the middle 2 bits of each DV and place them in order:
-;	AtkDefDV | SpdSpcDV
-;	.ww..xx.   .yy..zz.
+;	atk  def  spd  spc
+;	.ww..xx.  .yy..zz.
 
 	; atk
 	ld a, [hl]
@@ -62026,27 +62023,27 @@
 Function51322: ; 51322
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxCount
+	ld hl, sBoxCount
 	call Function513cb
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	dec a
 	ld [$d265], a
-	ld hl, BoxMon1Nickname
-	ld bc, $000b
-	ld de, DefaultFlypoint
+	ld hl, sBoxMonNicknames
+	ld bc, PKMN_NAME_LENGTH
+	ld de, $d002
 	call Function513e0
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	dec a
 	ld [$d265], a
-	ld hl, BoxMon1OT
-	ld bc, $000b
+	ld hl, sBoxMonOT
+	ld bc, NAME_LENGTH
 	ld de, $d00d
 	call Function513e0
-	ld a, [BoxCount]
+	ld a, [sBoxCount]
 	dec a
 	ld [$d265], a
-	ld hl, BoxMon1Species
-	ld bc, $0020
+	ld hl, sBoxMons
+	ld bc, sBoxMon1End - sBoxMon1
 	ld de, $d018
 	call Function513e0
 	ld hl, $d01a
@@ -62069,21 +62066,21 @@
 	ld a, [PartyCount]
 	dec a
 	ld [$d265], a
-	ld hl, PartyMon1Nickname
-	ld bc, $000b
-	ld de, DefaultFlypoint
+	ld hl, PartyMonNicknames
+	ld bc, PKMN_NAME_LENGTH
+	ld de, $d002
 	call Function513e0
 	ld a, [PartyCount]
 	dec a
 	ld [$d265], a
-	ld hl, PartyMon1OT
-	ld bc, $000b
+	ld hl, PartyMonOT
+	ld bc, NAME_LENGTH
 	ld de, $d00d
 	call Function513e0
 	ld a, [PartyCount]
 	dec a
 	ld [$d265], a
-	ld hl, PartyMon1Species
+	ld hl, PartyMons
 	ld bc, PartyMon2 - PartyMon1
 	ld de, $d018
 	call Function513e0
@@ -62095,7 +62092,7 @@
 	inc hl
 	ld a, [CurPartyMon]
 	ld c, a
-	ld b, $0
+	ld b, 0
 	add hl, bc
 	ld a, [CurPartySpecies]
 	ld c, a
@@ -63254,10 +63251,10 @@
 
 Function80715: ; 80715
 ; Remaining slots in the current box.
-	ld a, $1
+	ld a, 1 ; BANK(sBoxCount)
 	call GetSRAMBank
-	ld hl, BoxCount
-	ld a, 20
+	ld hl, sBoxCount
+	ld a, MONS_PER_BOX
 	sub [hl]
 	ld b, a
 	call CloseSRAM
@@ -63458,13 +63455,13 @@
 	dec c
 	jr nz, .asm_819d6
 	ld a, $94
-	ld [EnemyMoveAnimation], a
+	ld [$c608], a
 	ld a, $52
-	ld [EnemyMoveEffect], a
+	ld [$c609], a
 	ld a, $4a
-	ld [EnemyMovePower], a
+	ld [$c60a], a
 	ld a, $29
-	ld [EnemyMoveType], a
+	ld [$c60b], a
 	pop af
 	ld [rSVBK], a
 	ret
@@ -63766,13 +63763,13 @@
 	add hl, hl
 	ld de, OverworldMap
 	add hl, de
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0004
 	call CopyBytes
 	xor a
 	ld [$cf64], a
 	ld [$cf65], a
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call Function81ea5
 	ret
 ; 81c18
@@ -63803,14 +63800,14 @@
 	ld a, $5
 	ld [rSVBK], a
 	ld hl, BGPals
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld c, $1
 	call Function81ee3
 	hlcoord 10, 2
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call Function81ca7
 	hlcoord 15, 2
-	ld de, EnemyMovePower
+	ld de, $c60a
 	call Function81ca7
 	ld a, $1
 	ld [hCGBPalUpdate], a
@@ -63828,13 +63825,13 @@
 	ld [hli], a
 	ld a, $7f
 	ld [hli], a
-	ld a, [EnemyMoveAnimation]
+	ld a, [$c608]
 	ld [hli], a
-	ld a, [EnemyMoveEffect]
+	ld a, [$c609]
 	ld [hli], a
-	ld a, [EnemyMovePower]
+	ld a, [$c60a]
 	ld [hli], a
-	ld a, [EnemyMoveType]
+	ld a, [$c60b]
 	ld [hli], a
 	xor a
 	ld [hli], a
@@ -63843,10 +63840,10 @@
 	ld hl, $cda9
 	call Function81f0c
 	hlcoord 10, 2
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call Function81ca7
 	hlcoord 15, 2
-	ld de, EnemyMovePower
+	ld de, $c60a
 	call Function81ca7
 	ld a, $3
 	ld [$cf63], a
@@ -63939,7 +63936,7 @@
 .asm_81d1d
 	xor a
 	ld [$cf65], a
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call Function81ea5
 	ret
 
@@ -63946,7 +63943,7 @@
 .asm_81d28
 	ld a, $1
 	ld [$cf65], a
-	ld de, EnemyMovePower
+	ld de, $c60a
 	call Function81ea5
 	ret
 
@@ -63958,7 +63955,7 @@
 	ld a, [hl]
 	and $40
 	jr nz, Function81d84
-	ld hl, PlayerMoveType
+	ld hl, $c612
 	jr Function81d63
 
 Function81d46: ; 81d46
@@ -63969,7 +63966,7 @@
 	ld a, [hl]
 	and $40
 	jr nz, Function81d84
-	ld hl, PlayerMoveAccuracy
+	ld hl, $c613
 	jr Function81d63
 
 Function81d58: ; 81d58
@@ -63977,7 +63974,7 @@
 	ld a, [hl]
 	and $40
 	jr nz, Function81d84
-	ld hl, PlayerMovePP
+	ld hl, $c614
 
 Function81d63: ; 81d63
 	ld a, [$ffa9]
@@ -64150,21 +64147,21 @@
 ; 81e67
 
 Function81e67: ; 81e67
-	ld a, [PlayerMoveType]
+	ld a, [$c612]
 	and $1f
 	ld e, a
-	ld a, [PlayerMoveAccuracy]
+	ld a, [$c613]
 	and $7
 	sla a
 	swap a
 	or e
 	ld e, a
-	ld a, [PlayerMoveAccuracy]
+	ld a, [$c613]
 	and $18
 	sla a
 	swap a
 	ld d, a
-	ld a, [PlayerMovePP]
+	ld a, [$c614]
 	and $1f
 	sla a
 	sla a
@@ -64174,16 +64171,16 @@
 	and a
 	jr z, .asm_81e9c
 	ld a, e
-	ld [EnemyMovePower], a
+	ld [$c60a], a
 	ld a, d
-	ld [EnemyMoveType], a
+	ld [$c60b], a
 	ret
 
 .asm_81e9c
 	ld a, e
-	ld [EnemyMoveAnimation], a
+	ld [$c608], a
 	ld a, d
-	ld [EnemyMoveEffect], a
+	ld [$c609], a
 	ret
 ; 81ea5
 
@@ -64190,7 +64187,7 @@
 Function81ea5: ; 81ea5
 	ld a, [de]
 	and $1f
-	ld [PlayerMoveType], a
+	ld [$c612], a
 	ld a, [de]
 	and $e0
 	swap a
@@ -64202,12 +64199,12 @@
 	swap a
 	srl a
 	or b
-	ld [PlayerMoveAccuracy], a
+	ld [$c613], a
 	ld a, [de]
 	and $7c
 	srl a
 	srl a
-	ld [PlayerMovePP], a
+	ld [$c614], a
 	ret
 ; 81eca
 
@@ -64222,7 +64219,7 @@
 	add hl, de
 	ld e, l
 	ld d, h
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $0004
 	call CopyBytes
 	ret
@@ -64371,11 +64368,11 @@
 	ld b, $70
 	ld c, $5
 	ld hl, Sprites
-	ld de, PlayerMoveType
+	ld de, $c612
 	call .asm_81fb7
-	ld de, PlayerMoveAccuracy
+	ld de, $c613
 	call .asm_81fb7
-	ld de, PlayerMovePP
+	ld de, $c614
 	call .asm_81fb7
 	ret
 
@@ -64523,10 +64520,10 @@
 	add hl, hl
 	ld de, Unkn1Pals
 	add hl, de
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0008
 	call CopyBytes
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call Function81ea5
 	pop af
 	ld [rSVBK], a
@@ -64572,7 +64569,7 @@
 	ld a, [$cf64]
 	ld bc, $0008
 	call AddNTimes
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0008
 	call CopyBytes
 	pop af
@@ -64604,20 +64601,20 @@
 	call AddNTimes
 	ld e, l
 	ld d, h
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $0008
 	call CopyBytes
 	hlcoord 1, 0
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call Function81ca7
 	hlcoord 6, 0
-	ld de, EnemyMovePower
+	ld de, $c60a
 	call Function81ca7
 	hlcoord 11, 0
-	ld de, EnemyMoveAccuracy
+	ld de, $c60c
 	call Function81ca7
 	hlcoord 16, 0
-	ld de, EnemyMoveEffectChance
+	ld de, $c60e
 	call Function81ca7
 	pop af
 	ld [rSVBK], a
@@ -64675,7 +64672,7 @@
 	ld [$cf66], a
 	ld e, a
 	ld d, $0
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	add hl, de
 	add hl, de
 	ld e, l
@@ -64691,7 +64688,7 @@
 	ld a, [hl]
 	and $40
 	jr nz, Function82387
-	ld hl, PlayerMoveType
+	ld hl, $c612
 	jr Function82368
 
 Function8234b: ; 8234b
@@ -64702,7 +64699,7 @@
 	ld a, [hl]
 	and $40
 	jr nz, Function82387
-	ld hl, PlayerMoveAccuracy
+	ld hl, $c613
 	jr Function82368
 
 Function8235d: ; 8235d
@@ -64710,7 +64707,7 @@
 	ld a, [hl]
 	and $40
 	jr nz, Function82387
-	ld hl, PlayerMovePP
+	ld hl, $c614
 
 Function82368: ; 82368
 	ld a, [$ffa9]
@@ -64751,21 +64748,21 @@
 ; 82391
 
 Function82391: ; 82391
-	ld a, [PlayerMoveType]
+	ld a, [$c612]
 	and $1f
 	ld e, a
-	ld a, [PlayerMoveAccuracy]
+	ld a, [$c613]
 	and $7
 	sla a
 	swap a
 	or e
 	ld e, a
-	ld a, [PlayerMoveAccuracy]
+	ld a, [$c613]
 	and $18
 	sla a
 	swap a
 	ld d, a
-	ld a, [PlayerMovePP]
+	ld a, [$c614]
 	and $1f
 	sla a
 	sla a
@@ -64774,7 +64771,7 @@
 	ld a, [$cf66]
 	ld c, a
 	ld b, $0
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	add hl, bc
 	add hl, bc
 	ld a, e
@@ -66036,13 +66033,13 @@
 ; known jump sources: 844f2 (21:44f2)
 Function84817: ; 84817 (21:4817)
 	xor a
-	ld [DefaultFlypoint], a ; $d002
-	ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
+	ld [$d002], a
+	ld hl, TileMap
 	ld bc, $168
 	ld a, $7f
 	call ByteFill
 	call Function84a0e
-	ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
+	ld hl, TileMap
 	ld bc, $b4
 	ld a, $7f
 	call ByteFill
@@ -66051,9 +66048,9 @@
 	hlcoord 4, 3
 	ld de, String_84865
 	call PlaceString
-	ld a, [MovementBuffer] ; $d007
-	ld bc, $9
-	ld hl, Box1Name ; $db75
+	ld a, [$d007]
+	ld bc, 9
+	ld hl, wBoxNames
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -66440,7 +66437,7 @@
 	ld a, [$cf64]
 	cp $6
 	jr nc, .asm_864fb
-	ld hl, EnemyMoveEffect
+	ld hl, $c609
 	ld bc, $0010
 	call AddNTimes
 	ld a, [hl]
@@ -66545,7 +66542,7 @@
 	pop bc
 	push bc
 	ld a, c
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, $000b
 	call AddNTimes
 	ld bc, $000a
@@ -66701,7 +66698,7 @@
 	ld a, [$cf64]
 	cp $6
 	jr nc, .asm_866a7
-	ld hl, EnemyMoveEffect
+	ld hl, $c609
 	ld bc, $0010
 	call AddNTimes
 	ld a, [hl]
@@ -66717,7 +66714,7 @@
 	call WhiteBGMap
 	pop hl
 	call Function86748
-	ld a, [EnemyMoveAnimation]
+	ld a, [$c608]
 	cp 200 + 1
 	jr c, .asm_866c6
 	ld de, String_866fc
@@ -66731,7 +66728,7 @@
 	hlcoord 1, 2
 	call PlaceString
 	hlcoord 2, 2
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0103
 	call PrintNum
 	hlcoord 11, 2
@@ -66776,7 +66773,7 @@
 	ld a, [hl]
 	and a
 	jr z, .asm_86743
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0062
 	call CopyBytes
 	call CloseSRAM
@@ -79595,9 +79592,9 @@
 	ld a, $60
 	ld [hl], a
 	ld a, c
-	ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct)
+	ld [$c608], a
 	ld a, b
-	ld [EnemyMoveEffect], a ; $c609
+	ld [$c609], a
 	ret
 
 ; known jump sources: 8e898 (23:6898)
@@ -91310,7 +91307,7 @@
 	call PrintNum
 
 	hlcoord 11, 10
-	ld de, EnemyMonMaxHPHi
+	ld de, EnemyMonMaxHP
 	call PrintNum
 
 	ld hl, SwitchMonText
@@ -93252,7 +93249,7 @@
 	xor a
 	ld [hBGMapMode], a
 	call DisableLCD
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $01e0
 	xor a
 	call ByteFill
@@ -96022,7 +96019,7 @@
 	ld a, [hl]
 	and a
 	jr z, .asm_e2cee
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	ld bc, $b
 	ld a, e
 	call AddNTimes
@@ -96485,9 +96482,9 @@
 .asm_e3020
 	ld hl, PartySpecies ; $dcd8
 	call Functione3357
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	call Functione3363
-	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT)
 	call Functione3376
 	ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species)
 	ld bc, $30
@@ -96530,7 +96527,7 @@
 	ld hl, $cb2a
 	add [hl]
 	ld [CurPartyMon], a ; $d109
-	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMonNicknames)
 	ld a, [CurPartyMon] ; $d109
 	call GetNick
 	ld a, $1
@@ -96817,14 +96814,14 @@
 	ld [CurPartyMon], a
 	ld a, $1
 	call GetSRAMBank
-	ld hl, BoxSpecies
+	ld hl, sBoxSpecies
 	call Functione3357
-	ld hl, BoxMon1Nickname
+	ld hl, sBoxMonNicknames
 	call Functione3363
-	ld hl, BoxMon1OT
+	ld hl, sBoxMonOT
 	call Functione3376
-	ld hl, BoxMon1Species
-	ld bc, $0020
+	ld hl, sBoxMons
+	ld bc, sBoxMon1End - sBoxMon1
 	call Functione3389
 	call CloseSRAM
 	callba Function5088b
@@ -96854,9 +96851,9 @@
 	ld [CurPartyMon], a
 	ld hl, PartySpecies
 	call Functione3357
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call Functione3363
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call Functione3376
 	ld hl, PartyMon1Species
 	ld bc, PartyMon2 - PartyMon1
@@ -97088,8 +97085,8 @@
 
 ; known jump sources: e36e7 (38:76e7), e375d (38:775d), e376e (38:776e)
 Functione3626: ; e3626 (38:7626)
-	ld bc, $9
-	ld hl, Box1Name ; $db75
+	ld bc, 9
+	ld hl, wBoxNames
 	call AddNTimes
 	ld d, h
 	ld e, l
@@ -97122,7 +97119,10 @@
 ; e3668
 
 String_e3668: ; e3668
-	db "/20@"
+	db "/"
+	db "0" + MONS_PER_BOX / 10
+	db "0" + MONS_PER_BOX % 10
+	db "@"
 ; e366c
 
 ; known jump sources: e3717 (38:7717)
@@ -101180,7 +101180,7 @@
 	ld [de], a
 	inc de
 	ld a, [CurPartyMon]
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call SkipNames
 	call CopyBytes
 	ld a, $3
@@ -101686,7 +101686,7 @@
 	call Functionfcde8
 	call Functionfcdf4
 
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld bc, $000b
 	call Functionfcdd7
 	ld de, $c6f2
@@ -101756,7 +101756,7 @@
 	ld de, $c70e
 	call Functionfcdf4
 
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, PKMN_NAME_LENGTH
 	call Functionfcdde
 	ld hl, $c70e
@@ -101771,7 +101771,7 @@
 	ld de, $c719
 	call Functionfcdf4
 
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld bc, $000b
 	call Functionfcdde
 	ld hl, $c724
@@ -104596,10 +104596,10 @@
 	bit 2, [hl]
 	jr nz, .asm_102110
 	call Function10218d
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	bit 4, [hl]
 	jr z, .asm_102110
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	bit 2, [hl]
 	jr nz, .asm_102110
 	call Function102112
@@ -104619,7 +104619,7 @@
 	ld c, $28
 .asm_10211c
 	push hl
-	ld de, PlayerMoveAnimation
+	ld de, $c60f
 	ld b, $1f
 .asm_102122
 	ld a, [de]
@@ -104678,7 +104678,7 @@
 ; 102180
 
 Function102180: ; 102180
-	ld hl, EnemyMoveEffect
+	ld hl, $c609
 	ld de, StringBuffer2
 	ld bc, $000b
 	call CopyBytes
@@ -104687,11 +104687,11 @@
 
 Function10218d: ; 10218d
 	ld hl, $dc00
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0026
 	ld a, $5
 	call FarCopyWRAM
-	ld de, EnemyMoveEffect
+	ld de, $c609
 	ret
 ; 10219f
 
@@ -104698,7 +104698,7 @@
 Function10219f: ; 10219f
 	call FadeToMenu
 	call Function10218d
-	ld de, EnemyMoveEffect
+	ld de, $c609
 	callba Function8ac4e
 	call Functiona36
 	call PlayClickSFX
@@ -104709,7 +104709,7 @@
 Function1021b8: ; 1021b8
 	call FadeToMenu
 	call Function10218d
-	ld de, PlayerMoveAnimation
+	ld de, $c60f
 	callba Function8ac70
 	ld a, c
 	ld [StringBuffer1], a
@@ -107635,45 +107635,37 @@
 
 
 UsedMoveText: ; 105db9
-
 ; this is a stream of text and asm from 105db9 to 105ef6
 
-; print actor name
 	text_jump _ActorNameText
 	start_asm
 
-; ????
 	ld a, [hBattleTurn]
 	and a
 	jr nz, .start
 	
-; append used move list
-	ld a, [PlayerMoveAnimation]
+	ld a, [wPlayerMoveStruct + MOVE_ANIM]
 	call UpdateUsedMoves
 	
 .start
-; get address for last move
-	ld a, $13 ; last move
+	ld a, BATTLE_VARS_LAST_MOVE
 	call _GetBattleVar
 	ld d, h
 	ld e, l
 	
-; get address for last counter move
-	ld a, $11
+	ld a, BATTLE_VARS_LAST_COUNTER_MOVE
 	call _GetBattleVar
 	
-; get move animation (id)
-	ld a, $c ; move animation
+	ld a, BATTLE_VARS_MOVE_ANIM
 	call GetBattleVar
 	ld [$d265], a
 	
-; check actor ????
 	push hl
 	callba Function34548
 	pop hl
 	jr nz, .grammar
 	
-; update last move
+	; update last move
 	ld a, [$d265]
 	ld [hl], a
 	ld [de], a
@@ -107685,13 +107677,13 @@
 	
 ; everything except 'instead' made redundant in localization
 
-; check obedience
+	; check obedience
 	ld a, [AlreadyDisobeyed]
 	and a
 	ld hl, UsedMove2Text
 	ret nz
 	
-; check move grammar
+	; check move grammar
 	ld a, [$d265]
 	cp $3
 	ld hl, UsedMove2Text
@@ -111529,25 +111521,25 @@
 Function119471: ; 119471 (46:5471)
 	push af
 	ld a, [hli]
-	ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct)
+	ld [$c608], a
 	ld a, [hli]
-	ld [EnemyMoveType], a ; $c60b
+	ld [$c60b], a
 	ld a, [hli]
-	ld [EnemyMoveEffect], a ; $c609
+	ld [$c609], a
 	ld a, [hli]
-	ld [EnemyMovePower], a ; $c60a
+	ld [$c60a], a
 	ld a, [hli]
-	ld [EnemyMoveAccuracy], a ; $c60c
+	ld [$c60c], a
 	ld a, [hli]
-	ld [EnemyMovePP], a ; $c60d
+	ld [$c60d], a ; $c60d
 	push hl
-	ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct)
+	ld a, [$c608]
 	cp $ff
 	jr z, .asm_1194a7
-	ld a, [EnemyMovePower] ; $c60a
+	ld a, [$c60a]
 	cp $ff
 	jr z, .asm_1194a7
-	ld a, [EnemyMoveEffect] ; $c609
+	ld a, [$c609]
 	cp $ff
 	jr nz, .asm_1194a7
 	call Function119584
@@ -111554,8 +111546,8 @@
 	jr c, .asm_11950c
 	jr .asm_1194f0
 .asm_1194a7
-	ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
-	ld de, EnemyMoveType ; $c60b
+	ld hl, $c608
+	ld de, $c60b
 	ld c, $3
 .asm_1194af
 	ld a, [de]
@@ -111571,7 +111563,7 @@
 .asm_1194bc
 	ld c, $3
 	ld hl, $cd49
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 .asm_1194c4
 	ld a, [de]
 	inc de
@@ -111588,7 +111580,7 @@
 .asm_1194d5
 	ld c, $3
 	ld hl, $cd49
-	ld de, EnemyMoveType ; $c60b
+	ld de, $c60b
 .asm_1194dd
 	ld a, [de]
 	inc de
@@ -111609,7 +111601,7 @@
 .asm_1194f3
 	ld c, $3
 	ld hl, $cd49
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 .asm_1194fb
 	ld a, [de]
 	inc de
@@ -111628,9 +111620,9 @@
 	ld a, $1
 	ld [$cd50], a
 	ld a, l
-	ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct)
+	ld [$c608], a
 	ld a, h
-	ld [EnemyMoveEffect], a ; $c609
+	ld [$c609], a
 	ld de, $cd69
 	ld c, $10
 	ld b, $0
@@ -111710,9 +111702,9 @@
 
 ; known jump sources: 1194a0 (46:54a0)
 Function119584: ; 119584 (46:5584)
-	ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct)
+	ld a, [$c608]
 	ld b, a
-	ld a, [EnemyMoveType] ; $c60b
+	ld a, [$c60b]
 	ld c, a
 	cp b
 	jr c, .asm_11959c
@@ -111729,9 +111721,9 @@
 	cp b
 	jr c, .asm_119595
 .asm_1195a2
-	ld a, [EnemyMovePower] ; $c60a
+	ld a, [$c60a]
 	ld b, a
-	ld a, [EnemyMovePP] ; $c60d
+	ld a, [$c60d] ; $c60d
 	ld c, a
 	cp b
 	jr c, .asm_1195ba
@@ -111776,9 +111768,9 @@
 	call CopyBytes
 	xor a
 	ld [de], a
-	ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct)
+	ld a, [$c608]
 	ld l, a
-	ld a, [EnemyMoveEffect] ; $c609
+	ld a, [$c609]
 	ld h, a
 	ld de, $cd69
 	ld bc, $10
@@ -111950,11 +111942,11 @@
 	ld a, $1
 	ld [rSVBK], a ; $ff00+$70
 	ld a, [$cd4f]
-	ld c, $a
+	ld c, 10
 	call SimpleMultiply
 	ld hl, $cd50
 	ld [hl], a
-	ld bc, $30
+	ld bc, PartyMon2 - PartyMon1
 	ld de, PartyMon1Level ; $dcfe
 	ld a, [PartyCount] ; $dcd7
 .asm_119daf
@@ -111992,28 +111984,28 @@
 	ld a, [rSVBK] ; $ff00+$70
 	push af
 	ld a, [$cd4f]
-	cp $7
+	cp 70 / 10
 	jr nc, .asm_119e08
 	ld a, $1
 	ld [rSVBK], a ; $ff00+$70
 	ld hl, PartyMon1Level ; $dcfe
-	ld bc, $30
+	ld bc, PartyMon2 - PartyMon1
 	ld de, PartySpecies ; $dcd8
 	ld a, [PartyCount] ; $dcd7
 .asm_119deb
 	push af
 	ld a, [de]
-	cp $96
+	cp MEWTWO
 	jr z, .asm_119dfd
-	cp $97
+	cp MEW
 	jr z, .asm_119dfd
-	cp $f9
+	cp LUGIA
 	jr c, .asm_119e02
-	cp $fc
+	cp NUM_POKEMON + 1
 	jr nc, .asm_119e02
 .asm_119dfd
 	ld a, [hl]
-	cp $46
+	cp 70
 	jr c, .asm_119e0d
 .asm_119e02
 	add hl, bc
@@ -112033,7 +112025,7 @@
 	call GetPokemonName
 	ld hl, StringBuffer1 ; $d073
 	ld de, $cd49
-	ld bc, $b
+	ld bc, PKMN_NAME_LENGTH
 	call CopyBytes
 	ld a, $a
 	ld [$cf66], a
@@ -112603,13 +112595,13 @@
 	ld a, $0
 	call GetSRAMBank
 	ld hl, $d4ba
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0004
 	call CopyBytes
 	call CloseSRAM
 	ld a, $5
 	call GetSRAMBank
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld de, $b08c
 	ld bc, $0004
 	call CopyBytes
@@ -112663,7 +112655,7 @@
 INCBIN "baserom.gbc",$11b669,$11b7e5 - $11b669
 
 Function11b7e5: ; 11b7e5
-	ld a, [EnemyMovePP]
+	ld a, [$c60d]
 	ld [PlayerLightScreenCount], a
 	ld [CurPartySpecies], a
 	ld a, [$cd81]
@@ -112674,9 +112666,9 @@
 	call CopyBytes
 	ld a, $50
 	ld [de], a
-	ld a, [PlayerMoveAccuracy]
+	ld a, [$c613]
 	ld [$c731], a
-	ld a, [PlayerMovePP]
+	ld a, [$c614]
 	ld [$c732], a
 	ld hl, $c622
 	ld a, [hli]
@@ -112683,7 +112675,7 @@
 	ld [$c72f], a
 	ld a, [hl]
 	ld [$c730], a
-	ld bc, EnemyMovePP
+	ld bc, $c60d
 	callba GetCaughtGender
 	ld a, c
 	ld [$c733], a
@@ -112833,7 +112825,7 @@
 	xor a
 	ld [$a800], a
 	ld hl, $a823
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $008f
 	call CopyBytes
 	call CloseSRAM
@@ -112902,7 +112894,7 @@
 	ld h, a
 	ld bc, PartyMon2 - PartyMon1
 	call CopyBytes
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	ld bc, $000b
 	ld a, [$cd2a]
 .asm_11b9d8
@@ -112920,7 +112912,7 @@
 	call CopyBytes
 	ld a, $50
 	ld [de], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	ld bc, $000b
 	ld a, [$cd2a]
 .asm_11b9f9
@@ -113199,7 +113191,7 @@
 .asm_11c123
 	sub e
 	ld [$cf64], a
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 .asm_11c12a
 	ld a, [de]
 	cp $50
@@ -113226,7 +113218,7 @@
 
 Function11c14a: ; 11c14a
 	ld c, $0
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 .asm_11c14f
 	ld a, [hli]
 	cp $50
@@ -113241,7 +113233,7 @@
 	ld a, $1
 	ld [rSVBK], a
 	ld a, $50
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld bc, $000b
 	call ByteFill
 	ld a, d
@@ -113270,9 +113262,9 @@
 	add hl, bc
 	ld bc, $0005
 .asm_11c18f
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call CopyBytes
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	pop af
 	ld [rSVBK], a
 	ret
@@ -116110,7 +116102,7 @@
 	ld a, $5
 	call GetSRAMBank
 	ld hl, $a948
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $00f6
 	call CopyBytes
 	call CloseSRAM
@@ -116629,21 +116621,21 @@
 Function17093c: ; 17093c (5c:493c)
 	xor a
 	ld [ScriptVar], a ; $c2dd
-	ld a, $81
+	ld a, EGG_TICKET
 	ld [CurItem], a ; $d106
 	ld hl, NumItems ; $d892 (aliases: TMsHMsEnd)
 	call CheckItem
 	ret nc
 	ld a, [PartyCount] ; $dcd7
-	ld b, $0
+	ld b, 0
 	ld c, a
 	ld hl, PartySpecies ; $dcd8
 .asm_170955
 	ld a, [hli]
-	cp $fd
+	cp EGG
 	jr nz, .asm_17099f
 	push hl
-	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMonOT)
 	ld de, $6
 	ld a, b
 	and a
@@ -116653,7 +116645,7 @@
 	dec a
 	jr nz, .asm_170965
 .asm_170969
-	ld de, $49a4
+	ld de, String_1709a4
 	ld a, $6
 .asm_17096e
 	push af
@@ -116673,7 +116665,7 @@
 	ld [hli], a
 	ld [hli], a
 	pop hl
-	ld a, $81
+	ld a, EGG_TICKET
 	ld [CurItem], a ; $d106
 	ld a, $1
 	ld [$d10c], a
@@ -116684,6 +116676,7 @@
 	ld a, $1
 	ld [ScriptVar], a ; $c2dd
 	ret
+
 .asm_17099d
 	pop af
 	pop hl
@@ -116694,7 +116687,8 @@
 	ret
 ; 1709a4 (5c:49a4)
 
-INCBIN "baserom.gbc",$1709a4,$1709aa - $1709a4
+String_1709a4: ; 1709a4
+	db "なぞナゾ@@"
 
 ; no known jump sources
 Function1709aa: ; 1709aa (5c:49aa)
@@ -116814,7 +116808,7 @@
 	call GetSRAMBank
 	ld a, [$b2fb]
 	call CloseSRAM
-	ld c, $a
+	ld c, 10
 	call SimpleDivide
 	ld a, b
 	ld [$cd4f], a
@@ -117040,10 +117034,10 @@
 ; no known jump sources
 Function171ad7: ; 171ad7 (5c:5ad7)
 	xor a
-	ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld hl, $c608
 	ld bc, $66
 	call ByteFill
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 	ld a, $c
 	call Function3e32
 	jp Function171c66
@@ -117073,7 +117067,7 @@
 	jr nz, .asm_171b01
 	hlcoord 2, 7
 	ld a, $3
-	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, $c608
 .asm_171b1b
 	push af
 	push hl
@@ -117675,7 +117669,7 @@
 	dec a
 	ld bc, PartyMon2 - PartyMon1
 	call AddNTimes
-	ld a, $2d
+	ld a, PREDEF_GET_UNOWN_LETTER
 	call Predef
 	callab Functionfba18
 	ld a, [$def4]
@@ -117855,7 +117849,7 @@
 	callba Function104061
 	call DisableLCD
 	ld hl, $8ee0
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0010
 	call CopyBytes
 	ld a, $1
@@ -117868,7 +117862,7 @@
 	ld hl, $97f0
 	ld bc, $0010
 	call ByteFill
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld de, $8ee0
 	ld bc, $0010
 	call CopyBytes
@@ -117931,7 +117925,7 @@
 	ld a, $5
 	call GetSRAMBank
 	ld hl, $b1d3
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0020
 	call CopyBytes
 	ld a, [$b1b1]
@@ -117966,7 +117960,7 @@
 	ld [$cd49], a
 	push hl
 	push de
-	ld hl, EnemyMoveAnimation
+	ld hl, $c608
 	ld e, b
 	ld d, $0
 	add hl, de
@@ -118210,7 +118204,7 @@
 	ld a, [$cd55]
 	ld d, a
 	add hl, de
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld a, [$cd56]
 	ld c, a
 	ld b, $0
@@ -118218,7 +118212,7 @@
 	ld a, $50
 	ld [de], a
 	pop hl
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call PlaceString
 	ld a, c
 	ld [$cd52], a
@@ -118310,10 +118304,10 @@
 	add hl, de
 	ld a, [hl]
 	ld c, a
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	callba Function48c63
 	pop hl
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call PlaceString
 	ld a, c
 	ld [$cd52], a
@@ -118545,13 +118539,13 @@
 	ld a, $1
 	ld [rSVBK], a
 	ld hl, PlayerName
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld bc, $0006
 	call CopyBytes
 	ld a, $4
 	ld [rSVBK], a
 	pop hl
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call PlaceString
 	ld a, c
 	ld [$cd52], a
@@ -118592,10 +118586,10 @@
 .asm_17f35d
 	ld c, a
 	call CloseSRAM
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	callba Function48c63
 	pop hl
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	call PlaceString
 	ld a, c
 	ld [$cd52], a
@@ -118809,7 +118803,7 @@
 	ld l, a
 	ld a, [$cd56]
 	ld h, a
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	ld a, [$cd57]
 	ld c, a
 	ld b, $0
@@ -118827,7 +118821,7 @@
 	call GetSRAMBank
 
 .asm_17f4b7
-	ld de, EnemyMoveAnimation
+	ld de, $c608
 	pop hl
 	push hl
 	ld a, [$cd57]
@@ -119457,7 +119451,7 @@
 	ld a, [CurPartySpecies]
 	ld [$d265], a
 	ld [CurSpecies], a
-	ld hl, PartyMon1Nickname
+	ld hl, PartyMonNicknames
 	call Function1dc50e
 	hlcoord 8, 4
 	call PlaceString
@@ -119477,7 +119471,7 @@
 	hlcoord 1, 9
 	ld de, String1dc550
 	call PlaceString
-	ld hl, PartyMon1OT
+	ld hl, PartyMonOT
 	call Function1dc50e
 	hlcoord 4, 9
 	call PlaceString
--- a/wram.asm
+++ b/wram.asm
@@ -1,51 +1,72 @@
 INCLUDE "includes.asm"
 
+flag_array: MACRO
+	ds ((\1) + 7) / 8
+ENDM
 
-party_struct: MACRO
-
-\1Species::  db
-\1Item::     db
-
-\1Moves::    ds NUM_MOVES
-
-\1ID::       dw
-\1Exp::      ds 3 ; Big endian
+box_struct_length EQU 32
+box_struct: MACRO
+\1Species::        db
+\1Item::           db
+\1Moves::          ds NUM_MOVES
+\1ID::             dw
+\1Exp::            ds 3
 \1StatExp::
-\1HPExp::    dw
-\1AtkExp::   dw
-\1DefExp::   dw
-\1SpdExp::   dw
-\1SpclExp::  dw
-
-\1DVs::
-\1AtkDefDV:: db
-\1SpdSpcDV:: db
-
-\1PP::       ds NUM_MOVES
-
-\1Happiness::     db
-\1PokerusStatus:: db
-
+\1HPExp::          dw
+\1AtkExp::         dw
+\1DefExp::         dw
+\1SpdExp::         dw
+\1SpcExp::         dw
+\1DVs::            ds 2
+\1PP::             ds NUM_MOVES
+\1Happiness::      db
+\1PokerusStatus::  db
 \1CaughtData::
 \1CaughtTime::
 \1CaughtLevel::    db
 \1CaughtGender::
 \1CaughtLocation:: db
+\1Level::          db
+\1End::
+ENDM
 
-\1Level:: db
+party_struct: MACRO
+	box_struct \1
+\1Status::         db
+\1Unused::         db
+\1HP::             dw
+\1MaxHP::          dw
+\1Stats:: ; big endian
+\1Attack::         dw
+\1Defense::        dw
+\1Speed::          dw
+\1SpclAtk::        dw
+\1SpclDef::        dw
+\1StatsEnd::
+ENDM
 
-\1Status::   db
-\1Unused::   db
-
-; Stats are big endian.
-\1HP::       dw
-\1MaxHP::    dw
-\1Attack::   dw
-\1Defense::  dw
-\1Speed::    dw
-\1SpclAtk::  dw
-\1SpclDef::  dw
-
+battle_struct: MACRO
+\1Species::   db
+\1Item::      db
+\1Moves::     ds NUM_MOVES
+\1MovesEnd::
+\1DVs::       ds 2
+\1PP::        ds NUM_MOVES
+\1Happiness:: db
+\1Level::     db
+\1Status::    ds 2
+\1HP::        dw
+\1MaxHP::     dw
+\1Stats:: ; big endian
+\1Attack::    dw
+\1Defense::   dw
+\1Speed::     dw
+\1SpclAtk::   dw
+\1SpclDef::   dw
+\1StatsEnd::
+\1Type::
+\1Type1::     db
+\1Type2::     db
 ENDM
 
 
@@ -422,100 +443,24 @@
 ;		bit 4: pal # (non-cgb)
 ;		bit 3: vram bank (cgb only)
 ;		bit 2-0: pal # (cgb only)
-	ds 160
+	ds 4 * 40
 SpritesEnd::
 
 TileMap:: ; c4a0
 ; 20x18 grid of 8x8 tiles
-	ds 360
+	ds SCREEN_WIDTH * SCREEN_HEIGHT
 TileMapEnd::
 
-SECTION "BattleMons",WRAM0[$c608]
 
-EnemyMoveStruct::
-EnemyMoveAnimation:: ; c608
-	ds 1
-EnemyMoveEffect:: ; c609
-	ds 1
-EnemyMovePower:: ; c60a
-	ds 1
-EnemyMoveType:: ; c60b
-	ds 1
-EnemyMoveAccuracy:: ; c60c
-	ds 1
-EnemyMovePP:: ; c60d
-	ds 1
-EnemyMoveEffectChance:: ; c60e
-	ds 1
+wBattle::
 
-PlayerMoveStruct::
-PlayerMoveAnimation:: ; c60f
-	ds 1
-PlayerMoveEffect:: ; c610
-	ds 1
-PlayerMovePower:: ; c611
-	ds 1
-PlayerMoveType:: ; c612
-	ds 1
-PlayerMoveAccuracy:: ; c613
-	ds 1
-PlayerMovePP:: ; c614
-	ds 1
-PlayerMoveEffectChance:: ; c615
-	ds 1
+wEnemyMoveStruct::  ds MOVE_LENGTH ; c608
+wPlayerMoveStruct:: ds MOVE_LENGTH ; c60f
 
-EnemyMonNick:: ; c616
-	ds 11
-BattleMonNick:: ; c621
-	ds 11
+EnemyMonNick::  ds 11 ; c616
+BattleMonNick:: ds 11 ; c621
 
-
-BattleMonSpecies:: ; c62c
-	ds 1
-BattleMonItem:: ; c62d
-	ds 1
-
-BattleMonMoves:: ; c62e
-	ds NUM_MOVES
-
-BattleMonDVs::
-BattleMonAtkDefDV:: ; c632
-	ds 1
-BattleMonSpdSpclDV:: ; c633
-	ds 1
-
-BattleMonPP:: ; c634
-	ds NUM_MOVES
-
-BattleMonHappiness:: ; c638
-	ds 1
-BattleMonLevel:: ; c639
-	ds 1
-
-BattleMonStatus:: ; c63a
-	ds 2
-
-BattleMonHP:: ; c63c
-	ds 2
-BattleMonMaxHP:: ; c63e
-	ds 2
-
-BattleMonAtk:: ; c640
-	ds 2
-BattleMonDef:: ; c642
-	ds 2
-BattleMonSpd:: ; c644
-	ds 2
-BattleMonSpclAtk:: ; c646
-	ds 2
-BattleMonSpclDef:: ; c648
-	ds 2
-
-BattleMonType1:: ; c64a
-	ds 1
-BattleMonType2:: ; c64b
-	ds 1
-
+BattleMon:: battle_struct BattleMon ; c62c
 	ds 10
 
 OTName:: ; c656
@@ -812,8 +757,11 @@
 FailedMessage:: ; c70e
 	ds 1
 
-	ds 3
+	ds 1
 
+wPlayerIsSwitching:: ds 1 ; c710
+wEnemyIsSwitching::  ds 1 ; c711
+
 PlayerUsedMoves:: ; c712
 ; add a move that has been used once by the player
 ; added in order of use
@@ -826,11 +774,14 @@
 LastEnemyMove:: ; c71c
 	ds 1
 
+	ds 23
 
-SECTION "battle",WRAM0[$c734]
 BattleEnded:: ; c734
 	ds 1
 
+	ds 12
+wBattleEnd::
+; c741
 
 SECTION "overworldmap",WRAM0[$c800]
 OverworldMap:: ; c800
@@ -868,7 +819,7 @@
 ; read horizontally from the top row
 ; bit 3: vram bank
 ; bit 0-2: palette id
-	ds 360
+	ds SCREEN_WIDTH * SCREEN_HEIGHT
 
 	ds 30
 	
@@ -1071,7 +1022,6 @@
 
 TempMon::
 	party_struct TempMon
-TempMonEnd:: ; d13e
 
 	ds 3
 
@@ -1214,7 +1164,7 @@
 	ds 2
 
 EvolvableFlags:: ; d1e8
-	ds 1
+	flag_array PARTY_LENGTH
 
 	ds 1
 
@@ -1229,76 +1179,13 @@
 LinkBattleRNs:: ; d1fa
 	ds 10
 
-TempEnemyMonSpecies:: ; d204
-	ds 1
-TempBattleMonSpecies:: ; d205
-	ds 1
+TempEnemyMonSpecies::  ds 1 ; d204
+TempBattleMonSpecies:: ds 1 ; d205
 
-EnemyMon::
-EnemyMonSpecies:: ; d206
-	ds 1
-EnemyMonItem:: ; d207
-	ds 1
-
-EnemyMonMoves:: ; d208
-	ds NUM_MOVES
-EnemyMonMovesEnd::
-
-EnemyMonDVs::
-EnemyMonAtkDefDV:: ; d20c
-	ds 1
-EnemyMonSpdSpclDV:: ; d20d
-	ds 1
-	
-EnemyMonPP:: ; d20e
-	ds NUM_MOVES
-
-EnemyMonHappiness:: ; d212
-	ds 1
-EnemyMonLevel:: ; d213
-	ds 1
-	
-EnemyMonStatus:: ; d214
-	ds 2
-
-EnemyMonHP::
-EnemyMonHPHi:: ; d216
-	ds 1
-EnemyMonHPLo:: ; d217
-	ds 1
-
-EnemyMonMaxHP::
-EnemyMonMaxHPHi:: ; d218
-	ds 1
-EnemyMonMaxHPLo:: ; d219
-	ds 1
-
-EnemyMonStats::
-EnemyMonAtk:: ; d21a
-	ds 2
-EnemyMonDef:: ; d21c
-	ds 2
-EnemyMonSpd:: ; d21e
-	ds 2
-EnemyMonSpclAtk:: ; d220
-	ds 2
-EnemyMonSpclDef:: ; d222
-	ds 2
-EnemyMonStatsEnd::
-
-EnemyMonType1:: ; d224
-	ds 1
-EnemyMonType2:: ; d225
-	ds 1
-
-EnemyMonBaseStats:: ; d226
-	ds 5
-
-EnemyMonCatchRate:: ; d22b
-	ds 1
-EnemyMonBaseExp:: ; d22c
-	ds 1
-
+EnemyMon:: battle_struct EnemyMon ; d206
+EnemyMonBaseStats:: ds 5 ; d226
+EnemyMonCatchRate:: db ; d22b
+EnemyMonBaseExp::   db ; d22c
 EnemyMonEnd::
 
 
@@ -1402,58 +1289,24 @@
 TimeOfDay:: ; d269
 	ds 1
 
+
 SECTION "OTParty",WRAMX[$d280],BANK[1]
 
-OTPartyCount:: ; d280
-	ds 1 ; number of Pokémon in party
-OTPartySpecies:: ; d281
-	ds 6 ; species of each Pokémon in party
-; d287
-	ds 1 ; any empty slots including the 7th must be FF
-	     ; or the routine will keep going
+OTPartyCount::   ds 1 ; d280
+OTPartySpecies:: ds 6 ; d281
+OTPartyEnd::     ds 1
 
-OTPartyMon1:: ; d288
-	party_struct OTPartyMon1
-OTPartyMon2:: ; d2b8
-	party_struct OTPartyMon2
-OTPartyMon3:: ; d2e8
-	party_struct OTPartyMon3
-OTPartyMon4:: ; d318
-	party_struct OTPartyMon4
-OTPartyMon5:: ; d348
-	party_struct OTPartyMon5
-OTPartyMon6:: ; d378
-	party_struct OTPartyMon6
+OTPartyMon1:: party_struct OTPartyMon1 ; d288
+OTPartyMon2:: party_struct OTPartyMon2 ; d2b8
+OTPartyMon3:: party_struct OTPartyMon3 ; d2e8
+OTPartyMon4:: party_struct OTPartyMon4 ; d318
+OTPartyMon5:: party_struct OTPartyMon5 ; d348
+OTPartyMon6:: party_struct OTPartyMon6 ; d378
 
+OTPartyMonOT:: ds 11 * 6 ; d3a8
+OTPartyMonNicknames:: ds 11 * 6 ; d3ea
 
-OTPartyMonOT::
-OTPartyMon1OT:: ; d3a8
-	ds 11
-OTPartyMon2OT:: ; d3b3
-	ds 11
-OTPartyMon3OT:: ; d3be
-	ds 11
-OTPartyMon4OT:: ; d3c9
-	ds 11
-OTPartyMon5OT:: ; d3d4
-	ds 11
-OTPartyMon6OT:: ; d3df
-	ds 11
 
-OTPartyMonNicknames::
-OTPartyMon1Nickname:: ; d3ea
-	ds 11
-OTPartyMon2Nickname:: ; d3f5
-	ds 11
-OTPartyMon3Nickname:: ; d400
-	ds 11
-OTPartyMon4Nickname:: ; d40b
-	ds 11
-OTPartyMon5Nickname:: ; d416
-	ds 11
-OTPartyMon6Nickname:: ; d421
-	ds 11
-
 SECTION "Map Events", WRAMX[$d432], BANK[1]
 MapStatus:: ; d432
 	ds 1
@@ -1789,7 +1642,7 @@
 ;PoliceAtElmsLabEvent:: ; db52
 ;SalesmanMahoganyTownEvent:: ; db5c
 ;RedGyaradosEvent:: ; db5c
-	ds 250
+	flag_array 2000
 ; db6c
 
 SECTION "Boxes",WRAMX[$db72],BANK[1]
@@ -1800,35 +1653,7 @@
 	ds 2
 
 ; 8 chars + $50
-wBoxNames::
-Box1Name:: ; db75
-	ds 9
-Box2Name:: ; db7e
-	ds 9
-Box3Name:: ; db87
-	ds 9
-Box4Name:: ; db90
-	ds 9
-Box5Name:: ; db99
-	ds 9
-Box6Name:: ; dba2
-	ds 9
-Box7Name:: ; dbab
-	ds 9
-Box8Name:: ; dbb4
-	ds 9
-Box9Name:: ; dbbd
-	ds 9
-Box10Name:: ; dbc6
-	ds 9
-Box11Name:: ; dbcf
-	ds 9
-Box12Name:: ; dbd8
-	ds 9
-Box13Name:: ; dbe1
-	ds 9
-Box14Name:: ; dbea
-	ds 9
+wBoxNames:: ds 9 * NUM_BOXES ; db75
 
 SECTION "bike", WRAMX[$dbf5],BANK[1]
 BikeFlags:: ; dbf5
@@ -1867,7 +1692,7 @@
 
 SECTION "Visited Spawn Points", WRAMX[$dca5],BANK[1]
 VisitedSpawns:: ; dca5
-	ds 4
+	flag_array 27
 
 SECTION "BackupMapInfo", WRAMX[$dcad],BANK[1]
 
@@ -1901,62 +1726,37 @@
 	ds 1 ; legacy functions don't check PartyCount
 		 
 PartyMons::
-PartyMon1:: ; dcdf
-	party_struct PartyMon1
-PartyMon2:: ; dd0f
-	party_struct PartyMon2
-PartyMon3:: ; dd3f
-	party_struct PartyMon3
-PartyMon4:: ; dd6f
-	party_struct PartyMon4
-PartyMon5:: ; dd9f
-	party_struct PartyMon5
-PartyMon6:: ; ddcf
-	party_struct PartyMon6
+PartyMon1:: party_struct PartyMon1 ; dcdf
+PartyMon2:: party_struct PartyMon2 ; dd0f
+PartyMon3:: party_struct PartyMon3 ; dd3f
+PartyMon4:: party_struct PartyMon4 ; dd6f
+PartyMon5:: party_struct PartyMon5 ; dd9f
+PartyMon6:: party_struct PartyMon6 ; ddcf
 
-PartyMonOT::
-PartyMon1OT:: ; ddff
-	ds 11
-PartyMon2OT:: ; de0a
-	ds 11
-PartyMon3OT:: ; de15
-	ds 11
-PartyMon4OT:: ; de20
-	ds 11
-PartyMon5OT:: ; de2b
-	ds 11
-PartyMon6OT:: ; de36
-	ds 11
+PartyMonOT:: ds 11 * 6 ; ddff
 
-PartyMonNicknames::
-PartyMon1Nickname:: ; de41
-	ds 11
-PartyMon2Nickname:: ; de4c
-	ds 11
-PartyMon3Nickname:: ; de57
-	ds 11
-PartyMon4Nickname:: ; de62
-	ds 11
-PartyMon5Nickname:: ; de6d
-	ds 11
-PartyMon6Nickname:: ; de78
-	ds 11
+PartyMonNicknames:: ds 11 * 6 ; de41
 PartyMonNicknamesEnd::
 
-SECTION "Pokedex",WRAMX[$de99],BANK[1]
+
+SECTION "Pokedex", WRAMX[$de99], BANK[1]
+
 PokedexCaught:: ; de99
-	ds 32
+	flag_array 251
 EndPokedexCaught::
+
 PokedexSeen:: ; deb9
-	ds 32
+	flag_array 251
 EndPokedexSeen::
+
 UnownDex:: ; ded9
 	ds 26
 UnlockedUnowns:: ; def3
 	ds 1
 
-SECTION "Breeding",WRAMX[$def5],BANK[1]
-DaycareMan:: ; def5
+	ds 1
+
+wDaycareMan:: ; def5
 ; bit 7: active
 ; bit 6: monsters are compatible
 ; bit 5: egg ready
@@ -1963,96 +1763,53 @@
 ; bit 0: monster 1 in daycare
 	ds 1
 
-BreedMon1::
-BreedMon1Nick:: ; def6
-	ds 11
-BreedMon1OT:: ; df01
-	ds 11
-BreedMon1Stats::
-BreedMon1Species:: ; df0c
-	ds 1
-	ds 31
+wBreedMon1::
+wBreedMon1Nick:: ds PKMN_NAME_LENGTH ; def6
+wBreedMon1OT::   ds NAME_LENGTH ; df01
+wBreedMon1Stats:: box_struct wBreedMon1 ; df0c
 
-DaycareLady:: ; df2c
+wDaycareLady:: ; df2c
 ; bit 7: active
 ; bit 0: monster 2 in daycare
 	ds 1
 
-StepsToEgg:: ; df2d
+wStepsToEgg:: ; df2d
 	ds 1
-DittoInDaycare:: ; df2e
+wDittoInDaycare:: ; df2e
 ;  z: yes
 ; nz: no
 	ds 1
 
-BreedMon2::
-BreedMon2Nick:: ; df2f
-	ds 11
-BreedMon2OT:: ; df3a
-	ds 11
-BreedMon2Stats::
-BreedMon2Species:: ; df45
-	ds 1
-	ds 31
+wBreedMon2::
+wBreedMon2Nick:: ds PKMN_NAME_LENGTH ; df2f
+wBreedMon2OT::   ds NAME_LENGTH ; df3a
+wBreedMon2Stats:: box_struct wBreedMon2 ; df45
 
-EggNick:: ; df65
-; EGG@
-	ds 11
-EggOT:: ; df70
-	ds 11
-EggMon::
-EggSpecies:: ; df7b
-	ds 1
-	ds 31
+wEggNick:: ds PKMN_NAME_LENGTH ; df65
+wEggOT::   ds NAME_LENGTH ; df70
+wEggMon:: box_struct wEggMon ; df7b
 
 	ds 1
 
-wContestMon:: ; df9c
-	party_struct wContestMon
+wContestMon:: party_struct wContestMon ; df9c
 
 	ds 3
 
-RoamMon1Species:: ; dfcf
-	ds 1
-RoamMon1Level:: ; dfd0
-	ds 1
-RoamMon1MapGroup:: ; dfd1
-	ds 1
-RoamMon1MapNumber:: ; dfd2
-	ds 1
-RoamMon1HP:: ; dfd3
-	ds 1
-RoamMon1DVs:: ; dfd4
-	ds 2
+roam_struct: MACRO
+\1Species::   db
+\1Level::     db
+\1MapGroup::  db
+\1MapNumber:: db
+\1HP::        ds 1
+\1DVs::       ds 2
+ENDM
 
-RoamMon2Species:: ; dfd6
-	ds 1
-RoamMon2Level:: ; dfd7
-	ds 1
-RoamMon2MapGroup:: ; dfd8
-	ds 1
-RoamMon2MapNumber:: ; dfd9
-	ds 1
-RoamMon2HP:: ; dfda
-	ds 1
-RoamMon2DVs:: ; dfdb
-	ds 2
+wRoamMon1:: roam_struct wRoamMon1 ; dfcf
+wRoamMon2:: roam_struct wRoamMon2 ; dfd6
+wRoamMon3:: roam_struct wRoamMon3 ; dfdd
 
-RoamMon3Species:: ; dfdd
-	ds 1
-RoamMon3Level:: ; dfde
-	ds 1
-RoamMon3MapGroup:: ; dfdf
-	ds 1
-RoamMon3MapNumber:: ; dfe0
-	ds 1
-RoamMon3HP:: ; dfe1
-	ds 1
-RoamMon3DVs:: ; dfe2
-	ds 2
 
 
-
 SECTION "WRAMBank5",WRAMX[$d000],BANK[5]
 
 ; 8 4-color palettes
@@ -2107,175 +1864,24 @@
 	ds 8
 
 
-SECTION "SRAMBank1",SRAM,BANK[1]
+SECTION "Scratch", SRAM, BANK[0]
 
-SECTION "BoxMons",SRAM[$ad10],BANK[1]
-BoxCount:: ; ad10
-	ds 1
-BoxSpecies:: ; ad11
-	ds 20
-	ds 1
-BoxMons::
-BoxMon1::
-BoxMon1Species:: ; ad26
-	ds 1
-BoxMon1Item:: ; ad27
-	ds 1
-BoxMon1Moves:: ; ad28
-	ds 4
-BoxMon1ID:: ; ad2c
-	ds 2
-BoxMon1Exp:: ; ad2e
-	ds 3
-BoxMon1HPExp:: ; ad31
-	ds 2
-BoxMon1AtkExp:: ; ad33
-	ds 2
-BoxMon1DefExp:: ; ad35
-	ds 2
-BoxMon1SpdExp:: ; ad37
-	ds 2
-BoxMon1SpcExp:: ; ad39
-	ds 2
-BoxMon1DVs:: ; ad3b
-	ds 2
-BoxMon1PP:: ; ad3d
-	ds 4
-BoxMon1Happiness:: ; ad41
-	ds 1
-BoxMon1PokerusStatus:: ; ad42
-	ds 1
-BoxMon1CaughtData::
-BoxMon1CaughtTime::
-BoxMon1CaughtLevel:: ; ad43
-	ds 1
-BoxMon1CaughtGender::
-BoxMon1CaughtLocation:: ; ad44
-	ds 1
-BoxMon1Level:: ; ad45
-	ds 1
 
-BoxMon2:: ; ad46
-	ds 32
-BoxMon3:: ; ad66
-	ds 32
-BoxMon4:: ; ad86
-	ds 32
-BoxMon5:: ; ada6
-	ds 32
-BoxMon6:: ; adc6
-	ds 32
-BoxMon7:: ; ade6
-	ds 32
-BoxMon8:: ; ae06
-	ds 32
-BoxMon9:: ; ae26
-	ds 32
-BoxMon10:: ; ae46
-	ds 32
-BoxMon11:: ; ae66
-	ds 32
-BoxMon12:: ; ae86
-	ds 32
-BoxMon13:: ; aea6
-	ds 32
-BoxMon14:: ; aec6
-	ds 32
-BoxMon15:: ; aee6
-	ds 32
-BoxMon16:: ; af06
-	ds 32
-BoxMon17:: ; af26
-	ds 32
-BoxMon18:: ; af46
-	ds 32
-BoxMon19:: ; af66
-	ds 32
-BoxMon20:: ; af86
-	ds 32
+SECTION "SRAM Bank 1", SRAM, BANK[1]
 
-BoxMonOT::
-BoxMon1OT:: ; afa6
-	ds 11
-BoxMon2OT:: ; afb1
-	ds 11
-BoxMon3OT:: ; afbc
-	ds 11
-BoxMon4OT:: ; afc7
-	ds 11
-BoxMon5OT:: ; afd2
-	ds 11
-BoxMon6OT:: ; afdd
-	ds 11
-BoxMon7OT:: ; afe8
-	ds 11
-BoxMon8OT:: ; aff3
-	ds 11
-BoxMon9OT:: ; affe
-	ds 11
-BoxMon10OT:: ; b009
-	ds 11
-BoxMon11OT:: ; b014
-	ds 11
-BoxMon12OT:: ; b01f
-	ds 11
-BoxMon13OT:: ; b02a
-	ds 11
-BoxMon14OT:: ; b035
-	ds 11
-BoxMon15OT:: ; b040
-	ds 11
-BoxMon16OT:: ; b04b
-	ds 11
-BoxMon17OT:: ; b056
-	ds 11
-BoxMon18OT:: ; b061
-	ds 11
-BoxMon19OT:: ; b06c
-	ds 11
-BoxMon20OT:: ; b077
-	ds 11
+SECTION "BoxMons", SRAM[$ad10], BANK[1]
 
-BoxMonNicknames::
-BoxMon1Nickname:: ; b082
-	ds 11
-BoxMon2Nickname:: ; b08d
-	ds 11
-BoxMon3Nickname:: ; b098
-	ds 11
-BoxMon4Nickname:: ; b0a3
-	ds 11
-BoxMon5Nickname:: ; b0ae
-	ds 11
-BoxMon6Nickname:: ; b0b9
-	ds 11
-BoxMon7Nickname:: ; b0c4
-	ds 11
-BoxMon8Nickname:: ; b0cf
-	ds 11
-BoxMon9Nickname:: ; b0da
-	ds 11
-BoxMon10Nickname:: ; b0e5
-	ds 11
-BoxMon11Nickname:: ; b0f0
-	ds 11
-BoxMon12Nickname:: ; b0fb
-	ds 11
-BoxMon13Nickname:: ; b106
-	ds 11
-BoxMon14Nickname:: ; b111
-	ds 11
-BoxMon15Nickname:: ; b11c
-	ds 11
-BoxMon16Nickname:: ; b127
-	ds 11
-BoxMon17Nickname:: ; b132
-	ds 11
-BoxMon18Nickname:: ; b13d
-	ds 11
-BoxMon19Nickname:: ; b148
-	ds 11
-BoxMon20Nickname:: ; b153
-	ds 11
-BoxMonNicknamesEnd::
+sBoxCount::   ds 1 ; ad10
+sBoxSpecies:: ds MONS_PER_BOX ; ad11
+	ds 1
 
+sBoxMons:: ; ad26
+sBoxMon1:: box_struct sBoxMon1
+sBoxMon2::
+	ds box_struct_length * (MONS_PER_BOX +- 1)
+
+sBoxMonOT:: ds 11 * 20 ; afa6
+
+sBoxMonNicknames:: ds 11 * 20 ; b082
+sBoxMonNicknamesEnd::
+; b15e