shithub: pokered

Download patch

ref: 66ebe56adc7a6a742a413eb2adbdc369b86183d5
parent: c57c93d2b2fb06cadafefda37c0974ba1ec9e6c0
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sun Jul 5 17:59:32 EDT 2020

Port pokecrystal's base data and tmhm structure

To do: TM/HM constants named after moves

--- a/data/pokemon/base_stats/abra.asm
+++ b/data/pokemon/base_stats/abra.asm
@@ -1,28 +1,20 @@
-db DEX_ABRA ; pokedex id
-db 25 ; base hp
-db 20 ; base attack
-db 15 ; base defense
-db 90 ; base speed
-db 105 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 200 ; catch rate
-db 73 ; base exp yield
-INCBIN "gfx/pokemon/front/abra.pic",0,1 ; 55, sprite dimensions
-dw AbraPicFront
-dw AbraPicBack
-; attacks known at lvl 0
-db TELEPORT
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 44,45,46
-	tmlearn 49,50,55
-db 0 ; padding
+	db DEX_ABRA ; pokedex id
+
+	db  25,  20,  15,  90, 105
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 200 ; catch rate
+	db 73 ; base exp
+
+	INCBIN "gfx/pokemon/front/abra.pic", 0, 1 ; sprite dimensions
+	dw AbraPicFront, AbraPicBack
+
+	db TELEPORT, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 40, 44, 45, 46, 49, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/aerodactyl.asm
+++ b/data/pokemon/base_stats/aerodactyl.asm
@@ -1,28 +1,20 @@
-db DEX_AERODACTYL ; pokedex id
-db 80 ; base hp
-db 105 ; base attack
-db 65 ; base defense
-db 130 ; base speed
-db 60 ; base special
-db ROCK ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 202 ; base exp yield
-INCBIN "gfx/pokemon/front/aerodactyl.pic",0,1 ; 77, sprite dimensions
-dw AerodactylPicFront
-dw AerodactylPicBack
-; attacks known at lvl 0
-db WING_ATTACK
-db AGILITY
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20,23
-	tmlearn 31,32
-	tmlearn 33,34,38,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_AERODACTYL ; pokedex id
+
+	db  80, 105,  65, 130,  60
+	;   hp  atk  def  spd  spc
+
+	db ROCK, FLYING ; type
+	db 45 ; catch rate
+	db 202 ; base exp
+
+	INCBIN "gfx/pokemon/front/aerodactyl.pic", 0, 1 ; sprite dimensions
+	dw AerodactylPicFront, AerodactylPicBack
+
+	db WING_ATTACK, AGILITY, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 23, 31, 32, 33, 34, 38, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/alakazam.asm
+++ b/data/pokemon/base_stats/alakazam.asm
@@ -1,28 +1,20 @@
-db DEX_ALAKAZAM ; pokedex id
-db 55 ; base hp
-db 50 ; base attack
-db 45 ; base defense
-db 120 ; base speed
-db 135 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 50 ; catch rate
-db 186 ; base exp yield
-INCBIN "gfx/pokemon/front/alakazam.pic",0,1 ; 77, sprite dimensions
-dw AlakazamPicFront
-dw AlakazamPicBack
-; attacks known at lvl 0
-db TELEPORT
-db CONFUSION
-db DISABLE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20
-	tmlearn 28,29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 44,45,46
-	tmlearn 49,50,55
-db 0 ; padding
+	db DEX_ALAKAZAM ; pokedex id
+
+	db  55,  50,  45, 120, 135
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 50 ; catch rate
+	db 186 ; base exp
+
+	INCBIN "gfx/pokemon/front/alakazam.pic", 0, 1 ; sprite dimensions
+	dw AlakazamPicFront, AlakazamPicBack
+
+	db TELEPORT, CONFUSION, DISABLE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 28, 29, 30, 31, 32, 33, 34, 35, 40, 44, 45, 46, 49, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/arbok.asm
+++ b/data/pokemon/base_stats/arbok.asm
@@ -1,28 +1,20 @@
-db DEX_ARBOK ; pokedex id
-db 60 ; base hp
-db 85 ; base attack
-db 69 ; base defense
-db 80 ; base speed
-db 65 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 90 ; catch rate
-db 147 ; base exp yield
-INCBIN "gfx/pokemon/front/arbok.pic",0,1 ; 77, sprite dimensions
-dw ArbokPicFront
-dw ArbokPicBack
-; attacks known at lvl 0
-db WRAP
-db LEER
-db POISON_STING
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,15
-	tmlearn 20,21
-	tmlearn 26,27,28,31,32
-	tmlearn 34,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_ARBOK ; pokedex id
+
+	db  60,  85,  69,  80,  65
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 90 ; catch rate
+	db 147 ; base exp
+
+	INCBIN "gfx/pokemon/front/arbok.pic", 0, 1 ; sprite dimensions
+	dw ArbokPicFront, ArbokPicBack
+
+	db WRAP, LEER, POISON_STING, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 15, 20, 21, 26, 27, 28, 31, 32, 34, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/arcanine.asm
+++ b/data/pokemon/base_stats/arcanine.asm
@@ -1,28 +1,20 @@
-db DEX_ARCANINE ; pokedex id
-db 90 ; base hp
-db 110 ; base attack
-db 80 ; base defense
-db 95 ; base speed
-db 80 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 75 ; catch rate
-db 213 ; base exp yield
-INCBIN "gfx/pokemon/front/arcanine.pic",0,1 ; 77, sprite dimensions
-dw ArcaninePicFront
-dw ArcaninePicBack
-; attacks known at lvl 0
-db ROAR
-db EMBER
-db LEER
-db TAKE_DOWN
-db 5 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,15
-	tmlearn 20,23
-	tmlearn 28,30,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_ARCANINE ; pokedex id
+
+	db  90, 110,  80,  95,  80
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 75 ; catch rate
+	db 213 ; base exp
+
+	INCBIN "gfx/pokemon/front/arcanine.pic", 0, 1 ; sprite dimensions
+	dw ArcaninePicFront, ArcaninePicBack
+
+	db ROAR, EMBER, LEER, TAKE_DOWN ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 15, 20, 23, 28, 30, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/articuno.asm
+++ b/data/pokemon/base_stats/articuno.asm
@@ -1,28 +1,20 @@
-db DEX_ARTICUNO ; pokedex id
-db 90 ; base hp
-db 85 ; base attack
-db 100 ; base defense
-db 85 ; base speed
-db 125 ; base special
-db ICE ; species type 1
-db FLYING ; species type 2
-db 3 ; catch rate
-db 215 ; base exp yield
-INCBIN "gfx/pokemon/front/articuno.pic",0,1 ; 77, sprite dimensions
-dw ArticunoPicFront
-dw ArticunoPicBack
-; attacks known at lvl 0
-db PECK
-db ICE_BEAM
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_ARTICUNO ; pokedex id
+
+	db  90,  85, 100,  85, 125
+	;   hp  atk  def  spd  spc
+
+	db ICE, FLYING ; type
+	db 3 ; catch rate
+	db 215 ; base exp
+
+	INCBIN "gfx/pokemon/front/articuno.pic", 0, 1 ; sprite dimensions
+	dw ArticunoPicFront, ArticunoPicBack
+
+	db PECK, ICE_BEAM, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 11, 12, 13, 14, 15, 20, 31, 32, 33, 34, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/beedrill.asm
+++ b/data/pokemon/base_stats/beedrill.asm
@@ -1,28 +1,20 @@
-db DEX_BEEDRILL ; pokedex id
-db 65 ; base hp
-db 80 ; base attack
-db 40 ; base defense
-db 75 ; base speed
-db 45 ; base special
-db BUG ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 159 ; base exp yield
-INCBIN "gfx/pokemon/front/beedrill.pic",0,1 ; 77, sprite dimensions
-dw BeedrillPicFront
-dw BeedrillPicBack
-; attacks known at lvl 0
-db FURY_ATTACK
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10,15
-	tmlearn 20,21
-	tmlearn 31,32
-	tmlearn 33,34,39,40
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_BEEDRILL ; pokedex id
+
+	db  65,  80,  40,  75,  45
+	;   hp  atk  def  spd  spc
+
+	db BUG, POISON ; type
+	db 45 ; catch rate
+	db 159 ; base exp
+
+	INCBIN "gfx/pokemon/front/beedrill.pic", 0, 1 ; sprite dimensions
+	dw BeedrillPicFront, BeedrillPicBack
+
+	db FURY_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 15, 20, 21, 31, 32, 33, 34, 39, 40, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/bellsprout.asm
+++ b/data/pokemon/base_stats/bellsprout.asm
@@ -1,28 +1,20 @@
-db DEX_BELLSPROUT ; pokedex id
-db 50 ; base hp
-db 75 ; base attack
-db 35 ; base defense
-db 40 ; base speed
-db 70 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 255 ; catch rate
-db 84 ; base exp yield
-INCBIN "gfx/pokemon/front/bellsprout.pic",0,1 ; 55, sprite dimensions
-dw BellsproutPicFront
-dw BellsproutPicBack
-; attacks known at lvl 0
-db VINE_WHIP
-db GROWTH
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_BELLSPROUT ; pokedex id
+
+	db  50,  75,  35,  40,  70
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 255 ; catch rate
+	db 84 ; base exp
+
+	INCBIN "gfx/pokemon/front/bellsprout.pic", 0, 1 ; sprite dimensions
+	dw BellsproutPicFront, BellsproutPicBack
+
+	db VINE_WHIP, GROWTH, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/blastoise.asm
+++ b/data/pokemon/base_stats/blastoise.asm
@@ -1,28 +1,20 @@
-db DEX_BLASTOISE ; pokedex id
-db 79 ; base hp
-db 83 ; base attack
-db 100 ; base defense
-db 78 ; base speed
-db 85 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 210 ; base exp yield
-INCBIN "gfx/pokemon/front/blastoise.pic",0,1 ; 77, sprite dimensions
-dw BlastoisePicFront
-dw BlastoisePicBack
-; attacks known at lvl 0
-db TACKLE
-db TAIL_WHIP
-db BUBBLE
-db WATER_GUN
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_BLASTOISE ; pokedex id
+
+	db  79,  83, 100,  78,  85
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 45 ; catch rate
+	db 210 ; base exp
+
+	INCBIN "gfx/pokemon/front/blastoise.pic", 0, 1 ; sprite dimensions
+	dw BlastoisePicFront, BlastoisePicBack
+
+	db TACKLE, TAIL_WHIP, BUBBLE, WATER_GUN ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 26, 27, 28, 31, 32, 33, 34, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/bulbasaur.asm
+++ b/data/pokemon/base_stats/bulbasaur.asm
@@ -1,28 +1,20 @@
-db DEX_BULBASAUR ; pokedex id
-db 45 ; base hp
-db 49 ; base attack
-db 49 ; base defense
-db 45 ; base speed
-db 65 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 64 ; base exp yield
-INCBIN "gfx/pokemon/front/bulbasaur.pic",0,1 ; 55, sprite dimensions
-dw BulbasaurPicFront
-dw BulbasaurPicBack
-; attacks known at lvl 0
-db TACKLE
-db GROWL
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_BULBASAUR ; pokedex id
+
+	db  45,  49,  49,  45,  65
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 45 ; catch rate
+	db 64 ; base exp
+
+	INCBIN "gfx/pokemon/front/bulbasaur.pic", 0, 1 ; sprite dimensions
+	dw BulbasaurPicFront, BulbasaurPicBack
+
+	db TACKLE, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/butterfree.asm
+++ b/data/pokemon/base_stats/butterfree.asm
@@ -1,28 +1,20 @@
-db DEX_BUTTERFREE ; pokedex id
-db 60 ; base hp
-db 45 ; base attack
-db 50 ; base defense
-db 70 ; base speed
-db 80 ; base special
-db BUG ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 160 ; base exp yield
-INCBIN "gfx/pokemon/front/butterfree.pic",0,1 ; 77, sprite dimensions
-dw ButterfreePicFront
-dw ButterfreePicBack
-; attacks known at lvl 0
-db CONFUSION
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 29,30,31,32
-	tmlearn 33,34,39
-	tmlearn 44,46
-	tmlearn 50
-db 0 ; padding
+	db DEX_BUTTERFREE ; pokedex id
+
+	db  60,  45,  50,  70,  80
+	;   hp  atk  def  spd  spc
+
+	db BUG, FLYING ; type
+	db 45 ; catch rate
+	db 160 ; base exp
+
+	INCBIN "gfx/pokemon/front/butterfree.pic", 0, 1 ; sprite dimensions
+	dw ButterfreePicFront, ButterfreePicBack
+
+	db CONFUSION, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 21, 22, 29, 30, 31, 32, 33, 34, 39, 44, 46, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/caterpie.asm
+++ b/data/pokemon/base_stats/caterpie.asm
@@ -1,28 +1,20 @@
-db DEX_CATERPIE ; pokedex id
-db 45 ; base hp
-db 30 ; base attack
-db 35 ; base defense
-db 45 ; base speed
-db 20 ; base special
-db BUG ; species type 1
-db BUG ; species type 2
-db 255 ; catch rate
-db 53 ; base exp yield
-INCBIN "gfx/pokemon/front/caterpie.pic",0,1 ; 55, sprite dimensions
-dw CaterpiePicFront
-dw CaterpiePicBack
-; attacks known at lvl 0
-db TACKLE
-db STRING_SHOT
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-db 0 ; padding
+	db DEX_CATERPIE ; pokedex id
+
+	db  45,  30,  35,  45,  20
+	;   hp  atk  def  spd  spc
+
+	db BUG, BUG ; type
+	db 255 ; catch rate
+	db 53 ; base exp
+
+	INCBIN "gfx/pokemon/front/caterpie.pic", 0, 1 ; sprite dimensions
+	dw CaterpiePicFront, CaterpiePicBack
+
+	db TACKLE, STRING_SHOT, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/chansey.asm
+++ b/data/pokemon/base_stats/chansey.asm
@@ -1,28 +1,20 @@
-db DEX_CHANSEY ; pokedex id
-db 250 ; base hp
-db 5 ; base attack
-db 5 ; base defense
-db 50 ; base speed
-db 105 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 30 ; catch rate
-db 255 ; base exp yield
-INCBIN "gfx/pokemon/front/chansey.pic",0,1 ; 66, sprite dimensions
-dw ChanseyPicFront
-dw ChanseyPicBack
-; attacks known at lvl 0
-db POUND
-db DOUBLESLAP
-db 0
-db 0
-db 4 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,35,37,38,40
-	tmlearn 41,44,45,46
-	tmlearn 49,50,54,55
-db 0 ; padding
+	db DEX_CHANSEY ; pokedex id
+
+	db 250,   5,   5,  50, 105
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 30 ; catch rate
+	db 255 ; base exp
+
+	INCBIN "gfx/pokemon/front/chansey.pic", 0, 1 ; sprite dimensions
+	dw ChanseyPicFront, ChanseyPicBack
+
+	db POUND, DOUBLESLAP, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 4 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 44, 45, 46, 49, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/charizard.asm
+++ b/data/pokemon/base_stats/charizard.asm
@@ -1,28 +1,20 @@
-db DEX_CHARIZARD ; pokedex id
-db 78 ; base hp
-db 84 ; base attack
-db 78 ; base defense
-db 100 ; base speed
-db 85 ; base special
-db FIRE ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 209 ; base exp yield
-INCBIN "gfx/pokemon/front/charizard.pic",0,1 ; 77, sprite dimensions
-dw CharizardPicFront
-dw CharizardPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db EMBER
-db LEER
-db 3 ; growth rate
-; learnset
-	tmlearn 1,3,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20,23
-	tmlearn 26,27,28,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50,51,54
-db 0 ; padding
+	db DEX_CHARIZARD ; pokedex id
+
+	db  78,  84,  78, 100,  85
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FLYING ; type
+	db 45 ; catch rate
+	db 209 ; base exp
+
+	INCBIN "gfx/pokemon/front/charizard.pic", 0, 1 ; sprite dimensions
+	dw CharizardPicFront, CharizardPicBack
+
+	db SCRATCH, GROWL, EMBER, LEER ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 3, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 23, 26, 27, 28, 31, 32, 33, 34, 38, 39, 40, 44, 50, 51, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/charmander.asm
+++ b/data/pokemon/base_stats/charmander.asm
@@ -1,28 +1,20 @@
-db DEX_CHARMANDER ; pokedex id
-db 39 ; base hp
-db 52 ; base attack
-db 43 ; base defense
-db 65 ; base speed
-db 50 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 45 ; catch rate
-db 65 ; base exp yield
-INCBIN "gfx/pokemon/front/charmander.pic",0,1 ; 55, sprite dimensions
-dw CharmanderPicFront
-dw CharmanderPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,3,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20,23
-	tmlearn 28,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50,51,54
-db 0 ; padding
+	db DEX_CHARMANDER ; pokedex id
+
+	db  39,  52,  43,  65,  50
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 45 ; catch rate
+	db 65 ; base exp
+
+	INCBIN "gfx/pokemon/front/charmander.pic", 0, 1 ; sprite dimensions
+	dw CharmanderPicFront, CharmanderPicBack
+
+	db SCRATCH, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 3, 5, 6, 8, 9, 10, 17, 18, 19, 20, 23, 28, 31, 32, 33, 34, 38, 39, 40, 44, 50, 51, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/charmeleon.asm
+++ b/data/pokemon/base_stats/charmeleon.asm
@@ -1,28 +1,20 @@
-db DEX_CHARMELEON ; pokedex id
-db 58 ; base hp
-db 64 ; base attack
-db 58 ; base defense
-db 80 ; base speed
-db 65 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 45 ; catch rate
-db 142 ; base exp yield
-INCBIN "gfx/pokemon/front/charmeleon.pic",0,1 ; 66, sprite dimensions
-dw CharmeleonPicFront
-dw CharmeleonPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db EMBER
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,3,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20,23
-	tmlearn 28,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50,51,54
-db 0 ; padding
+	db DEX_CHARMELEON ; pokedex id
+
+	db  58,  64,  58,  80,  65
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 45 ; catch rate
+	db 142 ; base exp
+
+	INCBIN "gfx/pokemon/front/charmeleon.pic", 0, 1 ; sprite dimensions
+	dw CharmeleonPicFront, CharmeleonPicBack
+
+	db SCRATCH, GROWL, EMBER, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 3, 5, 6, 8, 9, 10, 17, 18, 19, 20, 23, 28, 31, 32, 33, 34, 38, 39, 40, 44, 50, 51, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/clefable.asm
+++ b/data/pokemon/base_stats/clefable.asm
@@ -1,28 +1,20 @@
-db DEX_CLEFABLE ; pokedex id
-db 95 ; base hp
-db 70 ; base attack
-db 73 ; base defense
-db 60 ; base speed
-db 85 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 25 ; catch rate
-db 129 ; base exp yield
-INCBIN "gfx/pokemon/front/clefable.pic",0,1 ; 66, sprite dimensions
-dw ClefablePicFront
-dw ClefablePicBack
-; attacks known at lvl 0
-db SING
-db DOUBLESLAP
-db MINIMIZE
-db METRONOME
-db 4 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,35,38,40
-	tmlearn 44,45,46
-	tmlearn 49,50,54,55
-db 0 ; padding
+	db DEX_CLEFABLE ; pokedex id
+
+	db  95,  70,  73,  60,  85
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 25 ; catch rate
+	db 129 ; base exp
+
+	INCBIN "gfx/pokemon/front/clefable.pic", 0, 1 ; sprite dimensions
+	dw ClefablePicFront, ClefablePicBack
+
+	db SING, DOUBLESLAP, MINIMIZE, METRONOME ; level 1 learnset
+	db 4 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 35, 38, 40, 44, 45, 46, 49, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/clefairy.asm
+++ b/data/pokemon/base_stats/clefairy.asm
@@ -1,28 +1,20 @@
-db DEX_CLEFAIRY ; pokedex id
-db 70 ; base hp
-db 45 ; base attack
-db 48 ; base defense
-db 35 ; base speed
-db 60 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 150 ; catch rate
-db 68 ; base exp yield
-INCBIN "gfx/pokemon/front/clefairy.pic",0,1 ; 55, sprite dimensions
-dw ClefairyPicFront
-dw ClefairyPicBack
-; attacks known at lvl 0
-db POUND
-db GROWL
-db 0
-db 0
-db 4 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,35,38,40
-	tmlearn 44,45,46
-	tmlearn 49,50,54,55
-db 0 ; padding
+	db DEX_CLEFAIRY ; pokedex id
+
+	db  70,  45,  48,  35,  60
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 150 ; catch rate
+	db 68 ; base exp
+
+	INCBIN "gfx/pokemon/front/clefairy.pic", 0, 1 ; sprite dimensions
+	dw ClefairyPicFront, ClefairyPicBack
+
+	db POUND, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 4 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 35, 38, 40, 44, 45, 46, 49, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/cloyster.asm
+++ b/data/pokemon/base_stats/cloyster.asm
@@ -1,28 +1,20 @@
-db DEX_CLOYSTER ; pokedex id
-db 50 ; base hp
-db 95 ; base attack
-db 180 ; base defense
-db 70 ; base speed
-db 85 ; base special
-db WATER ; species type 1
-db ICE ; species type 2
-db 60 ; catch rate
-db 203 ; base exp yield
-INCBIN "gfx/pokemon/front/cloyster.pic",0,1 ; 77, sprite dimensions
-dw CloysterPicFront
-dw CloysterPicBack
-; attacks known at lvl 0
-db WITHDRAW
-db SUPERSONIC
-db CLAMP
-db AURORA_BEAM
-db 5 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20
-	tmlearn 30,31,32
-	tmlearn 33,34,36,39
-	tmlearn 44,47
-	tmlearn 49,50,53
-db 0 ; padding
+	db DEX_CLOYSTER ; pokedex id
+
+	db  50,  95, 180,  70,  85
+	;   hp  atk  def  spd  spc
+
+	db WATER, ICE ; type
+	db 60 ; catch rate
+	db 203 ; base exp
+
+	INCBIN "gfx/pokemon/front/cloyster.pic", 0, 1 ; sprite dimensions
+	dw CloysterPicFront, CloysterPicBack
+
+	db WITHDRAW, SUPERSONIC, CLAMP, AURORA_BEAM ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 11, 12, 13, 14, 15, 20, 30, 31, 32, 33, 34, 36, 39, 44, 47, 49, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/cubone.asm
+++ b/data/pokemon/base_stats/cubone.asm
@@ -1,28 +1,20 @@
-db DEX_CUBONE ; pokedex id
-db 50 ; base hp
-db 50 ; base attack
-db 95 ; base defense
-db 35 ; base speed
-db 40 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 190 ; catch rate
-db 87 ; base exp yield
-INCBIN "gfx/pokemon/front/cubone.pic",0,1 ; 55, sprite dimensions
-dw CubonePicFront
-dw CubonePicBack
-; attacks known at lvl 0
-db BONE_CLUB
-db GROWL
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,38,40
-	tmlearn 44
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_CUBONE ; pokedex id
+
+	db  50,  50,  95,  35,  40
+	;   hp  atk  def  spd  spc
+
+	db GROUND, GROUND ; type
+	db 190 ; catch rate
+	db 87 ; base exp
+
+	INCBIN "gfx/pokemon/front/cubone.pic", 0, 1 ; sprite dimensions
+	dw CubonePicFront, CubonePicBack
+
+	db BONE_CLUB, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 38, 40, 44, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/dewgong.asm
+++ b/data/pokemon/base_stats/dewgong.asm
@@ -1,28 +1,20 @@
-db DEX_DEWGONG ; pokedex id
-db 90 ; base hp
-db 70 ; base attack
-db 80 ; base defense
-db 70 ; base speed
-db 95 ; base special
-db WATER ; species type 1
-db ICE ; species type 2
-db 75 ; catch rate
-db 176 ; base exp yield
-INCBIN "gfx/pokemon/front/dewgong.pic",0,1 ; 66, sprite dimensions
-dw DewgongPicFront
-dw DewgongPicBack
-; attacks known at lvl 0
-db HEADBUTT
-db GROWL
-db AURORA_BEAM
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_DEWGONG ; pokedex id
+
+	db  90,  70,  80,  70,  95
+	;   hp  atk  def  spd  spc
+
+	db WATER, ICE ; type
+	db 75 ; catch rate
+	db 176 ; base exp
+
+	INCBIN "gfx/pokemon/front/dewgong.pic", 0, 1 ; sprite dimensions
+	dw DewgongPicFront, DewgongPicBack
+
+	db HEADBUTT, GROWL, AURORA_BEAM, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 31, 32, 34, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/diglett.asm
+++ b/data/pokemon/base_stats/diglett.asm
@@ -1,28 +1,20 @@
-db DEX_DIGLETT ; pokedex id
-db 10 ; base hp
-db 55 ; base attack
-db 25 ; base defense
-db 95 ; base speed
-db 45 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 255 ; catch rate
-db 81 ; base exp yield
-INCBIN "gfx/pokemon/front/diglett.pic",0,1 ; 55, sprite dimensions
-dw DiglettPicFront
-dw DiglettPicBack
-; attacks known at lvl 0
-db SCRATCH
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 26,27,28,31,32
-	tmlearn 34
-	tmlearn 44,48
-	tmlearn 50
-db 0 ; padding
+	db DEX_DIGLETT ; pokedex id
+
+	db  10,  55,  25,  95,  45
+	;   hp  atk  def  spd  spc
+
+	db GROUND, GROUND ; type
+	db 255 ; catch rate
+	db 81 ; base exp
+
+	INCBIN "gfx/pokemon/front/diglett.pic", 0, 1 ; sprite dimensions
+	dw DiglettPicFront, DiglettPicBack
+
+	db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 20, 26, 27, 28, 31, 32, 34, 44, 48, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/ditto.asm
+++ b/data/pokemon/base_stats/ditto.asm
@@ -1,28 +1,20 @@
-db DEX_DITTO ; pokedex id
-db 48 ; base hp
-db 48 ; base attack
-db 48 ; base defense
-db 48 ; base speed
-db 48 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 35 ; catch rate
-db 61 ; base exp yield
-INCBIN "gfx/pokemon/front/ditto.pic",0,1 ; 55, sprite dimensions
-dw DittoPicFront
-dw DittoPicBack
-; attacks known at lvl 0
-db TRANSFORM
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-db 0 ; padding
+	db DEX_DITTO ; pokedex id
+
+	db  48,  48,  48,  48,  48
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 35 ; catch rate
+	db 61 ; base exp
+
+	INCBIN "gfx/pokemon/front/ditto.pic", 0, 1 ; sprite dimensions
+	dw DittoPicFront, DittoPicBack
+
+	db TRANSFORM, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/dodrio.asm
+++ b/data/pokemon/base_stats/dodrio.asm
@@ -1,28 +1,20 @@
-db DEX_DODRIO ; pokedex id
-db 60 ; base hp
-db 110 ; base attack
-db 70 ; base defense
-db 100 ; base speed
-db 60 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 158 ; base exp yield
-INCBIN "gfx/pokemon/front/dodrio.pic",0,1 ; 77, sprite dimensions
-dw DodrioPicFront
-dw DodrioPicBack
-; attacks known at lvl 0
-db PECK
-db GROWL
-db FURY_ATTACK
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 4,6,8
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,40
-	tmlearn 43,44
-	tmlearn 49,50,52
-db 0 ; padding
+	db DEX_DODRIO ; pokedex id
+
+	db  60, 110,  70, 100,  60
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 45 ; catch rate
+	db 158 ; base exp
+
+	INCBIN "gfx/pokemon/front/dodrio.pic", 0, 1 ; sprite dimensions
+	dw DodrioPicFront, DodrioPicBack
+
+	db PECK, GROWL, FURY_ATTACK, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 4, 6, 8, 9, 10, 15, 20, 31, 32, 33, 34, 40, 43, 44, 49, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/doduo.asm
+++ b/data/pokemon/base_stats/doduo.asm
@@ -1,28 +1,20 @@
-db DEX_DODUO ; pokedex id
-db 35 ; base hp
-db 85 ; base attack
-db 45 ; base defense
-db 75 ; base speed
-db 35 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 190 ; catch rate
-db 96 ; base exp yield
-INCBIN "gfx/pokemon/front/doduo.pic",0,1 ; 55, sprite dimensions
-dw DoduoPicFront
-dw DoduoPicBack
-; attacks known at lvl 0
-db PECK
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 4,6,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,40
-	tmlearn 43,44
-	tmlearn 49,50,52
-db 0 ; padding
+	db DEX_DODUO ; pokedex id
+
+	db  35,  85,  45,  75,  35
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 190 ; catch rate
+	db 96 ; base exp
+
+	INCBIN "gfx/pokemon/front/doduo.pic", 0, 1 ; sprite dimensions
+	dw DoduoPicFront, DoduoPicBack
+
+	db PECK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 4, 6, 8, 9, 10, 20, 31, 32, 33, 34, 40, 43, 44, 49, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/dragonair.asm
+++ b/data/pokemon/base_stats/dragonair.asm
@@ -1,28 +1,20 @@
-db DEX_DRAGONAIR ; pokedex id
-db 61 ; base hp
-db 84 ; base attack
-db 65 ; base defense
-db 70 ; base speed
-db 70 ; base special
-db DRAGON ; species type 1
-db DRAGON ; species type 2
-db 45 ; catch rate
-db 144 ; base exp yield
-INCBIN "gfx/pokemon/front/dragonair.pic",0,1 ; 66, sprite dimensions
-dw DragonairPicFront
-dw DragonairPicBack
-; attacks known at lvl 0
-db WRAP
-db LEER
-db THUNDER_WAVE
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20,23,24
-	tmlearn 25,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44,45
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_DRAGONAIR ; pokedex id
+
+	db  61,  84,  65,  70,  70
+	;   hp  atk  def  spd  spc
+
+	db DRAGON, DRAGON ; type
+	db 45 ; catch rate
+	db 144 ; base exp
+
+	INCBIN "gfx/pokemon/front/dragonair.pic", 0, 1 ; sprite dimensions
+	dw DragonairPicFront, DragonairPicBack
+
+	db WRAP, LEER, THUNDER_WAVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 20, 23, 24, 25, 31, 32, 33, 34, 38, 39, 40, 44, 45, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/dragonite.asm
+++ b/data/pokemon/base_stats/dragonite.asm
@@ -1,28 +1,20 @@
-db DEX_DRAGONITE ; pokedex id
-db 91 ; base hp
-db 134 ; base attack
-db 95 ; base defense
-db 80 ; base speed
-db 100 ; base special
-db DRAGON ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 218 ; base exp yield
-INCBIN "gfx/pokemon/front/dragonite.pic",0,1 ; 77, sprite dimensions
-dw DragonitePicFront
-dw DragonitePicBack
-; attacks known at lvl 0
-db WRAP
-db LEER
-db THUNDER_WAVE
-db AGILITY
-db 5 ; growth rate
-; learnset
-	tmlearn 2,6,7,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20,23,24
-	tmlearn 25,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44,45
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_DRAGONITE ; pokedex id
+
+	db  91, 134,  95,  80, 100
+	;   hp  atk  def  spd  spc
+
+	db DRAGON, FLYING ; type
+	db 45 ; catch rate
+	db 218 ; base exp
+
+	INCBIN "gfx/pokemon/front/dragonite.pic", 0, 1 ; sprite dimensions
+	dw DragonitePicFront, DragonitePicBack
+
+	db WRAP, LEER, THUNDER_WAVE, AGILITY ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 23, 24, 25, 31, 32, 33, 34, 38, 39, 40, 44, 45, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/dratini.asm
+++ b/data/pokemon/base_stats/dratini.asm
@@ -1,28 +1,20 @@
-db DEX_DRATINI ; pokedex id
-db 41 ; base hp
-db 64 ; base attack
-db 45 ; base defense
-db 50 ; base speed
-db 50 ; base special
-db DRAGON ; species type 1
-db DRAGON ; species type 2
-db 45 ; catch rate
-db 67 ; base exp yield
-INCBIN "gfx/pokemon/front/dratini.pic",0,1 ; 55, sprite dimensions
-dw DratiniPicFront
-dw DratiniPicBack
-; attacks known at lvl 0
-db WRAP
-db LEER
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20,23,24
-	tmlearn 25,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44,45
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_DRATINI ; pokedex id
+
+	db  41,  64,  45,  50,  50
+	;   hp  atk  def  spd  spc
+
+	db DRAGON, DRAGON ; type
+	db 45 ; catch rate
+	db 67 ; base exp
+
+	INCBIN "gfx/pokemon/front/dratini.pic", 0, 1 ; sprite dimensions
+	dw DratiniPicFront, DratiniPicBack
+
+	db WRAP, LEER, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 20, 23, 24, 25, 31, 32, 33, 34, 38, 39, 40, 44, 45, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/drowzee.asm
+++ b/data/pokemon/base_stats/drowzee.asm
@@ -1,28 +1,20 @@
-db DEX_DROWZEE ; pokedex id
-db 60 ; base hp
-db 48 ; base attack
-db 45 ; base defense
-db 42 ; base speed
-db 90 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 190 ; catch rate
-db 102 ; base exp yield
-INCBIN "gfx/pokemon/front/drowzee.pic",0,1 ; 66, sprite dimensions
-dw DrowzeePicFront
-dw DrowzeePicBack
-; attacks known at lvl 0
-db POUND
-db HYPNOSIS
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 42,44,45,46
-	tmlearn 49,50,55
-db 0 ; padding
+	db DEX_DROWZEE ; pokedex id
+
+	db  60,  48,  45,  42,  90
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 190 ; catch rate
+	db 102 ; base exp
+
+	INCBIN "gfx/pokemon/front/drowzee.pic", 0, 1 ; sprite dimensions
+	dw DrowzeePicFront, DrowzeePicBack
+
+	db POUND, HYPNOSIS, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 40, 42, 44, 45, 46, 49, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/dugtrio.asm
+++ b/data/pokemon/base_stats/dugtrio.asm
@@ -1,28 +1,20 @@
-db DEX_DUGTRIO ; pokedex id
-db 35 ; base hp
-db 80 ; base attack
-db 50 ; base defense
-db 120 ; base speed
-db 70 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 50 ; catch rate
-db 153 ; base exp yield
-INCBIN "gfx/pokemon/front/dugtrio.pic",0,1 ; 66, sprite dimensions
-dw DugtrioPicFront
-dw DugtrioPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db DIG
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 26,27,28,31,32
-	tmlearn 34
-	tmlearn 44,48
-	tmlearn 50
-db 0 ; padding
+	db DEX_DUGTRIO ; pokedex id
+
+	db  35,  80,  50, 120,  70
+	;   hp  atk  def  spd  spc
+
+	db GROUND, GROUND ; type
+	db 50 ; catch rate
+	db 153 ; base exp
+
+	INCBIN "gfx/pokemon/front/dugtrio.pic", 0, 1 ; sprite dimensions
+	dw DugtrioPicFront, DugtrioPicBack
+
+	db SCRATCH, GROWL, DIG, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 15, 20, 26, 27, 28, 31, 32, 34, 44, 48, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/eevee.asm
+++ b/data/pokemon/base_stats/eevee.asm
@@ -1,28 +1,20 @@
-db DEX_EEVEE ; pokedex id
-db 55 ; base hp
-db 55 ; base attack
-db 50 ; base defense
-db 55 ; base speed
-db 65 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 45 ; catch rate
-db 92 ; base exp yield
-INCBIN "gfx/pokemon/front/eevee.pic",0,1 ; 55, sprite dimensions
-dw EeveePicFront
-dw EeveePicBack
-; attacks known at lvl 0
-db TACKLE
-db SAND_ATTACK
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_EEVEE ; pokedex id
+
+	db  55,  55,  50,  55,  65
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 45 ; catch rate
+	db 92 ; base exp
+
+	INCBIN "gfx/pokemon/front/eevee.pic", 0, 1 ; sprite dimensions
+	dw EeveePicFront, EeveePicBack
+
+	db TACKLE, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 20, 31, 32, 33, 34, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/ekans.asm
+++ b/data/pokemon/base_stats/ekans.asm
@@ -1,28 +1,20 @@
-db DEX_EKANS ; pokedex id
-db 35 ; base hp
-db 60 ; base attack
-db 44 ; base defense
-db 55 ; base speed
-db 40 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 255 ; catch rate
-db 62 ; base exp yield
-INCBIN "gfx/pokemon/front/ekans.pic",0,1 ; 55, sprite dimensions
-dw EkansPicFront
-dw EkansPicBack
-; attacks known at lvl 0
-db WRAP
-db LEER
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10
-	tmlearn 20,21
-	tmlearn 26,27,28,31,32
-	tmlearn 34,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_EKANS ; pokedex id
+
+	db  35,  60,  44,  55,  40
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 255 ; catch rate
+	db 62 ; base exp
+
+	INCBIN "gfx/pokemon/front/ekans.pic", 0, 1 ; sprite dimensions
+	dw EkansPicFront, EkansPicBack
+
+	db WRAP, LEER, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 20, 21, 26, 27, 28, 31, 32, 34, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/electabuzz.asm
+++ b/data/pokemon/base_stats/electabuzz.asm
@@ -1,28 +1,20 @@
-db DEX_ELECTABUZZ ; pokedex id
-db 65 ; base hp
-db 83 ; base attack
-db 57 ; base defense
-db 105 ; base speed
-db 85 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 45 ; catch rate
-db 156 ; base exp yield
-INCBIN "gfx/pokemon/front/electabuzz.pic",0,1 ; 66, sprite dimensions
-dw ElectabuzzPicFront
-dw ElectabuzzPicBack
-; attacks known at lvl 0
-db QUICK_ATTACK
-db LEER
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,35,39,40
-	tmlearn 44,45,46
-	tmlearn 50,54,55
-db 0 ; padding
+	db DEX_ELECTABUZZ ; pokedex id
+
+	db  65,  83,  57, 105,  85
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 45 ; catch rate
+	db 156 ; base exp
+
+	INCBIN "gfx/pokemon/front/electabuzz.pic", 0, 1 ; sprite dimensions
+	dw ElectabuzzPicFront, ElectabuzzPicBack
+
+	db QUICK_ATTACK, LEER, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 24, 25, 29, 30, 31, 32, 33, 34, 35, 39, 40, 44, 45, 46, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/electrode.asm
+++ b/data/pokemon/base_stats/electrode.asm
@@ -1,28 +1,20 @@
-db DEX_ELECTRODE ; pokedex id
-db 60 ; base hp
-db 50 ; base attack
-db 70 ; base defense
-db 140 ; base speed
-db 80 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 60 ; catch rate
-db 150 ; base exp yield
-INCBIN "gfx/pokemon/front/electrode.pic",0,1 ; 55, sprite dimensions
-dw ElectrodePicFront
-dw ElectrodePicBack
-; attacks known at lvl 0
-db TACKLE
-db SCREECH
-db SONICBOOM
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,15
-	tmlearn 20,24
-	tmlearn 25,30,31,32
-	tmlearn 33,34,36,39,40
-	tmlearn 44,45,47
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_ELECTRODE ; pokedex id
+
+	db  60,  50,  70, 140,  80
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 60 ; catch rate
+	db 150 ; base exp
+
+	INCBIN "gfx/pokemon/front/electrode.pic", 0, 1 ; sprite dimensions
+	dw ElectrodePicFront, ElectrodePicBack
+
+	db TACKLE, SCREECH, SONICBOOM, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 15, 20, 24, 25, 30, 31, 32, 33, 34, 36, 39, 40, 44, 45, 47, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/exeggcute.asm
+++ b/data/pokemon/base_stats/exeggcute.asm
@@ -1,28 +1,20 @@
-db DEX_EXEGGCUTE ; pokedex id
-db 60 ; base hp
-db 40 ; base attack
-db 80 ; base defense
-db 40 ; base speed
-db 60 ; base special
-db GRASS ; species type 1
-db PSYCHIC ; species type 2
-db 90 ; catch rate
-db 98 ; base exp yield
-INCBIN "gfx/pokemon/front/exeggcute.pic",0,1 ; 77, sprite dimensions
-dw ExeggcutePicFront
-dw ExeggcutePicBack
-; attacks known at lvl 0
-db BARRAGE
-db HYPNOSIS
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 29,30,31,32
-	tmlearn 33,34,36,37
-	tmlearn 44,46,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_EXEGGCUTE ; pokedex id
+
+	db  60,  40,  80,  40,  60
+	;   hp  atk  def  spd  spc
+
+	db GRASS, PSYCHIC ; type
+	db 90 ; catch rate
+	db 98 ; base exp
+
+	INCBIN "gfx/pokemon/front/exeggcute.pic", 0, 1 ; sprite dimensions
+	dw ExeggcutePicFront, ExeggcutePicBack
+
+	db BARRAGE, HYPNOSIS, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 20, 29, 30, 31, 32, 33, 34, 36, 37, 44, 46, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/exeggutor.asm
+++ b/data/pokemon/base_stats/exeggutor.asm
@@ -1,28 +1,20 @@
-db DEX_EXEGGUTOR ; pokedex id
-db 95 ; base hp
-db 95 ; base attack
-db 85 ; base defense
-db 55 ; base speed
-db 125 ; base special
-db GRASS ; species type 1
-db PSYCHIC ; species type 2
-db 45 ; catch rate
-db 212 ; base exp yield
-INCBIN "gfx/pokemon/front/exeggutor.pic",0,1 ; 77, sprite dimensions
-dw ExeggutorPicFront
-dw ExeggutorPicBack
-; attacks known at lvl 0
-db BARRAGE
-db HYPNOSIS
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 29,30,31,32
-	tmlearn 33,34,36,37
-	tmlearn 44,46,47
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_EXEGGUTOR ; pokedex id
+
+	db  95,  95,  85,  55, 125
+	;   hp  atk  def  spd  spc
+
+	db GRASS, PSYCHIC ; type
+	db 45 ; catch rate
+	db 212 ; base exp
+
+	INCBIN "gfx/pokemon/front/exeggutor.pic", 0, 1 ; sprite dimensions
+	dw ExeggutorPicFront, ExeggutorPicBack
+
+	db BARRAGE, HYPNOSIS, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 15, 20, 21, 22, 29, 30, 31, 32, 33, 34, 36, 37, 44, 46, 47, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/farfetchd.asm
+++ b/data/pokemon/base_stats/farfetchd.asm
@@ -1,28 +1,20 @@
-db DEX_FARFETCHD ; pokedex id
-db 52 ; base hp
-db 65 ; base attack
-db 55 ; base defense
-db 60 ; base speed
-db 58 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 94 ; base exp yield
-INCBIN "gfx/pokemon/front/farfetchd.pic",0,1 ; 66, sprite dimensions
-dw FarfetchdPicFront
-dw FarfetchdPicBack
-; attacks known at lvl 0
-db PECK
-db SAND_ATTACK
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,3,4,6,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39,40
-	tmlearn 44
-	tmlearn 50,51,52
-db 0 ; padding
+	db DEX_FARFETCHD ; pokedex id
+
+	db  52,  65,  55,  60,  58
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 45 ; catch rate
+	db 94 ; base exp
+
+	INCBIN "gfx/pokemon/front/farfetchd.pic", 0, 1 ; sprite dimensions
+	dw FarfetchdPicFront, FarfetchdPicBack
+
+	db PECK, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 3, 4, 6, 8, 9, 10, 20, 31, 32, 33, 34, 39, 40, 44, 50, 51, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/fearow.asm
+++ b/data/pokemon/base_stats/fearow.asm
@@ -1,28 +1,20 @@
-db DEX_FEAROW ; pokedex id
-db 65 ; base hp
-db 90 ; base attack
-db 65 ; base defense
-db 100 ; base speed
-db 61 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 90 ; catch rate
-db 162 ; base exp yield
-INCBIN "gfx/pokemon/front/fearow.pic",0,1 ; 77, sprite dimensions
-dw FearowPicFront
-dw FearowPicBack
-; attacks known at lvl 0
-db PECK
-db GROWL
-db LEER
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_FEAROW ; pokedex id
+
+	db  65,  90,  65, 100,  61
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 90 ; catch rate
+	db 162 ; base exp
+
+	INCBIN "gfx/pokemon/front/fearow.pic", 0, 1 ; sprite dimensions
+	dw FearowPicFront, FearowPicBack
+
+	db PECK, GROWL, LEER, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 31, 32, 34, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/flareon.asm
+++ b/data/pokemon/base_stats/flareon.asm
@@ -1,28 +1,20 @@
-db DEX_FLAREON ; pokedex id
-db 65 ; base hp
-db 130 ; base attack
-db 60 ; base defense
-db 65 ; base speed
-db 110 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 45 ; catch rate
-db 198 ; base exp yield
-INCBIN "gfx/pokemon/front/flareon.pic",0,1 ; 66, sprite dimensions
-dw FlareonPicFront
-dw FlareonPicBack
-; attacks known at lvl 0
-db TACKLE
-db SAND_ATTACK
-db QUICK_ATTACK
-db EMBER
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_FLAREON ; pokedex id
+
+	db  65, 130,  60,  65, 110
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 45 ; catch rate
+	db 198 ; base exp
+
+	INCBIN "gfx/pokemon/front/flareon.pic", 0, 1 ; sprite dimensions
+	dw FlareonPicFront, FlareonPicBack
+
+	db TACKLE, SAND_ATTACK, QUICK_ATTACK, EMBER ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 15, 20, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/gastly.asm
+++ b/data/pokemon/base_stats/gastly.asm
@@ -1,28 +1,20 @@
-db DEX_GASTLY ; pokedex id
-db 30 ; base hp
-db 35 ; base attack
-db 30 ; base defense
-db 80 ; base speed
-db 100 ; base special
-db GHOST ; species type 1
-db POISON ; species type 2
-db 190 ; catch rate
-db 95 ; base exp yield
-INCBIN "gfx/pokemon/front/gastly.pic",0,1 ; 77, sprite dimensions
-dw GastlyPicFront
-dw GastlyPicBack
-; attacks known at lvl 0
-db LICK
-db CONFUSE_RAY
-db NIGHT_SHADE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 0
-	tmlearn 20,21,24
-	tmlearn 25,29,31,32
-	tmlearn 34,36
-	tmlearn 42,44,46,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_GASTLY ; pokedex id
+
+	db  30,  35,  30,  80, 100
+	;   hp  atk  def  spd  spc
+
+	db GHOST, POISON ; type
+	db 190 ; catch rate
+	db 95 ; base exp
+
+	INCBIN "gfx/pokemon/front/gastly.pic", 0, 1 ; sprite dimensions
+	dw GastlyPicFront, GastlyPicBack
+
+	db LICK, CONFUSE_RAY, NIGHT_SHADE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 20, 21, 24, 25, 29, 31, 32, 34, 36, 42, 44, 46, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/gengar.asm
+++ b/data/pokemon/base_stats/gengar.asm
@@ -1,28 +1,20 @@
-db DEX_GENGAR ; pokedex id
-db 60 ; base hp
-db 65 ; base attack
-db 60 ; base defense
-db 110 ; base speed
-db 130 ; base special
-db GHOST ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 190 ; base exp yield
-INCBIN "gfx/pokemon/front/gengar.pic",0,1 ; 66, sprite dimensions
-dw GengarPicFront
-dw GengarPicBack
-; attacks known at lvl 0
-db LICK
-db CONFUSE_RAY
-db NIGHT_SHADE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20,21,24
-	tmlearn 25,29,31,32
-	tmlearn 34,35,36,40
-	tmlearn 42,44,46,47
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_GENGAR ; pokedex id
+
+	db  60,  65,  60, 110, 130
+	;   hp  atk  def  spd  spc
+
+	db GHOST, POISON ; type
+	db 45 ; catch rate
+	db 190 ; base exp
+
+	INCBIN "gfx/pokemon/front/gengar.pic", 0, 1 ; sprite dimensions
+	dw GengarPicFront, GengarPicBack
+
+	db LICK, CONFUSE_RAY, NIGHT_SHADE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 21, 24, 25, 29, 31, 32, 34, 35, 36, 40, 42, 44, 46, 47, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/geodude.asm
+++ b/data/pokemon/base_stats/geodude.asm
@@ -1,28 +1,20 @@
-db DEX_GEODUDE ; pokedex id
-db 40 ; base hp
-db 80 ; base attack
-db 100 ; base defense
-db 20 ; base speed
-db 30 ; base special
-db ROCK ; species type 1
-db GROUND ; species type 2
-db 255 ; catch rate
-db 86 ; base exp yield
-INCBIN "gfx/pokemon/front/geodude.pic",0,1 ; 55, sprite dimensions
-dw GeodudePicFront
-dw GeodudePicBack
-; attacks known at lvl 0
-db TACKLE
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,35,36,38
-	tmlearn 44,47,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_GEODUDE ; pokedex id
+
+	db  40,  80, 100,  20,  30
+	;   hp  atk  def  spd  spc
+
+	db ROCK, GROUND ; type
+	db 255 ; catch rate
+	db 86 ; base exp
+
+	INCBIN "gfx/pokemon/front/geodude.pic", 0, 1 ; sprite dimensions
+	dw GeodudePicFront, GeodudePicBack
+
+	db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 6, 8, 9, 10, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 35, 36, 38, 44, 47, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/gloom.asm
+++ b/data/pokemon/base_stats/gloom.asm
@@ -1,28 +1,20 @@
-db DEX_GLOOM ; pokedex id
-db 60 ; base hp
-db 65 ; base attack
-db 70 ; base defense
-db 40 ; base speed
-db 85 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 120 ; catch rate
-db 132 ; base exp yield
-INCBIN "gfx/pokemon/front/gloom.pic",0,1 ; 66, sprite dimensions
-dw GloomPicFront
-dw GloomPicBack
-; attacks known at lvl 0
-db ABSORB
-db POISONPOWDER
-db STUN_SPORE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_GLOOM ; pokedex id
+
+	db  60,  65,  70,  40,  85
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 120 ; catch rate
+	db 132 ; base exp
+
+	INCBIN "gfx/pokemon/front/gloom.pic", 0, 1 ; sprite dimensions
+	dw GloomPicFront, GloomPicBack
+
+	db ABSORB, POISONPOWDER, STUN_SPORE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/golbat.asm
+++ b/data/pokemon/base_stats/golbat.asm
@@ -1,28 +1,20 @@
-db DEX_GOLBAT ; pokedex id
-db 75 ; base hp
-db 80 ; base attack
-db 70 ; base defense
-db 90 ; base speed
-db 75 ; base special
-db POISON ; species type 1
-db FLYING ; species type 2
-db 90 ; catch rate
-db 171 ; base exp yield
-INCBIN "gfx/pokemon/front/golbat.pic",0,1 ; 77, sprite dimensions
-dw GolbatPicFront
-dw GolbatPicBack
-; attacks known at lvl 0
-db LEECH_LIFE
-db SCREECH
-db BITE
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20,21
-	tmlearn 31,32
-	tmlearn 34,39
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_GOLBAT ; pokedex id
+
+	db  75,  80,  70,  90,  75
+	;   hp  atk  def  spd  spc
+
+	db POISON, FLYING ; type
+	db 90 ; catch rate
+	db 171 ; base exp
+
+	INCBIN "gfx/pokemon/front/golbat.pic", 0, 1 ; sprite dimensions
+	dw GolbatPicFront, GolbatPicBack
+
+	db LEECH_LIFE, SCREECH, BITE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 21, 31, 32, 34, 39, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/goldeen.asm
+++ b/data/pokemon/base_stats/goldeen.asm
@@ -1,28 +1,20 @@
-db DEX_GOLDEEN ; pokedex id
-db 45 ; base hp
-db 67 ; base attack
-db 60 ; base defense
-db 63 ; base speed
-db 50 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 225 ; catch rate
-db 111 ; base exp yield
-INCBIN "gfx/pokemon/front/goldeen.pic",0,1 ; 66, sprite dimensions
-dw GoldeenPicFront
-dw GoldeenPicBack
-; attacks known at lvl 0
-db PECK
-db TAIL_WHIP
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_GOLDEEN ; pokedex id
+
+	db  45,  67,  60,  63,  50
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 225 ; catch rate
+	db 111 ; base exp
+
+	INCBIN "gfx/pokemon/front/goldeen.pic", 0, 1 ; sprite dimensions
+	dw GoldeenPicFront, GoldeenPicBack
+
+	db PECK, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 9, 10, 11, 12, 13, 14, 20, 31, 32, 34, 39, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/golduck.asm
+++ b/data/pokemon/base_stats/golduck.asm
@@ -1,28 +1,20 @@
-db DEX_GOLDUCK ; pokedex id
-db 80 ; base hp
-db 82 ; base attack
-db 78 ; base defense
-db 85 ; base speed
-db 80 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 75 ; catch rate
-db 174 ; base exp yield
-INCBIN "gfx/pokemon/front/golduck.pic",0,1 ; 77, sprite dimensions
-dw GolduckPicFront
-dw GolduckPicBack
-; attacks known at lvl 0
-db SCRATCH
-db TAIL_WHIP
-db DISABLE
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20
-	tmlearn 28,31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_GOLDUCK ; pokedex id
+
+	db  80,  82,  78,  85,  80
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 75 ; catch rate
+	db 174 ; base exp
+
+	INCBIN "gfx/pokemon/front/golduck.pic", 0, 1 ; sprite dimensions
+	dw GolduckPicFront, GolduckPicBack
+
+	db SCRATCH, TAIL_WHIP, DISABLE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 28, 31, 32, 34, 39, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/golem.asm
+++ b/data/pokemon/base_stats/golem.asm
@@ -1,28 +1,20 @@
-db DEX_GOLEM ; pokedex id
-db 80 ; base hp
-db 110 ; base attack
-db 130 ; base defense
-db 45 ; base speed
-db 55 ; base special
-db ROCK ; species type 1
-db GROUND ; species type 2
-db 45 ; catch rate
-db 177 ; base exp yield
-INCBIN "gfx/pokemon/front/golem.pic",0,1 ; 66, sprite dimensions
-dw GolemPicFront
-dw GolemPicBack
-; attacks known at lvl 0
-db TACKLE
-db DEFENSE_CURL
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,35,36,38
-	tmlearn 44,47,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_GOLEM ; pokedex id
+
+	db  80, 110, 130,  45,  55
+	;   hp  atk  def  spd  spc
+
+	db ROCK, GROUND ; type
+	db 45 ; catch rate
+	db 177 ; base exp
+
+	INCBIN "gfx/pokemon/front/golem.pic", 0, 1 ; sprite dimensions
+	dw GolemPicFront, GolemPicBack
+
+	db TACKLE, DEFENSE_CURL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 35, 36, 38, 44, 47, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/graveler.asm
+++ b/data/pokemon/base_stats/graveler.asm
@@ -1,28 +1,20 @@
-db DEX_GRAVELER ; pokedex id
-db 55 ; base hp
-db 95 ; base attack
-db 115 ; base defense
-db 35 ; base speed
-db 45 ; base special
-db ROCK ; species type 1
-db GROUND ; species type 2
-db 120 ; catch rate
-db 134 ; base exp yield
-INCBIN "gfx/pokemon/front/graveler.pic",0,1 ; 66, sprite dimensions
-dw GravelerPicFront
-dw GravelerPicBack
-; attacks known at lvl 0
-db TACKLE
-db DEFENSE_CURL
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,35,36,38
-	tmlearn 44,47,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_GRAVELER ; pokedex id
+
+	db  55,  95, 115,  35,  45
+	;   hp  atk  def  spd  spc
+
+	db ROCK, GROUND ; type
+	db 120 ; catch rate
+	db 134 ; base exp
+
+	INCBIN "gfx/pokemon/front/graveler.pic", 0, 1 ; sprite dimensions
+	dw GravelerPicFront, GravelerPicBack
+
+	db TACKLE, DEFENSE_CURL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 6, 8, 9, 10, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 35, 36, 38, 44, 47, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/grimer.asm
+++ b/data/pokemon/base_stats/grimer.asm
@@ -1,28 +1,20 @@
-db DEX_GRIMER ; pokedex id
-db 80 ; base hp
-db 80 ; base attack
-db 50 ; base defense
-db 25 ; base speed
-db 40 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 190 ; catch rate
-db 90 ; base exp yield
-INCBIN "gfx/pokemon/front/grimer.pic",0,1 ; 55, sprite dimensions
-dw GrimerPicFront
-dw GrimerPicBack
-; attacks known at lvl 0
-db POUND
-db DISABLE
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 0
-	tmlearn 20,21,24
-	tmlearn 25,31,32
-	tmlearn 34,36,38
-	tmlearn 44,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_GRIMER ; pokedex id
+
+	db  80,  80,  50,  25,  40
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 190 ; catch rate
+	db 90 ; base exp
+
+	INCBIN "gfx/pokemon/front/grimer.pic", 0, 1 ; sprite dimensions
+	dw GrimerPicFront, GrimerPicBack
+
+	db POUND, DISABLE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 20, 21, 24, 25, 31, 32, 34, 36, 38, 44, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/growlithe.asm
+++ b/data/pokemon/base_stats/growlithe.asm
@@ -1,28 +1,20 @@
-db DEX_GROWLITHE ; pokedex id
-db 55 ; base hp
-db 70 ; base attack
-db 45 ; base defense
-db 60 ; base speed
-db 50 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 190 ; catch rate
-db 91 ; base exp yield
-INCBIN "gfx/pokemon/front/growlithe.pic",0,1 ; 55, sprite dimensions
-dw GrowlithePicFront
-dw GrowlithePicBack
-; attacks known at lvl 0
-db BITE
-db ROAR
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10
-	tmlearn 20,23
-	tmlearn 28,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_GROWLITHE ; pokedex id
+
+	db  55,  70,  45,  60,  50
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 190 ; catch rate
+	db 91 ; base exp
+
+	INCBIN "gfx/pokemon/front/growlithe.pic", 0, 1 ; sprite dimensions
+	dw GrowlithePicFront, GrowlithePicBack
+
+	db BITE, ROAR, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 20, 23, 28, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/gyarados.asm
+++ b/data/pokemon/base_stats/gyarados.asm
@@ -1,28 +1,20 @@
-db DEX_GYARADOS ; pokedex id
-db 95 ; base hp
-db 125 ; base attack
-db 79 ; base defense
-db 81 ; base speed
-db 100 ; base special
-db WATER ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 214 ; base exp yield
-INCBIN "gfx/pokemon/front/gyarados.pic",0,1 ; 77, sprite dimensions
-dw GyaradosPicFront
-dw GyaradosPicBack
-; attacks known at lvl 0
-db BITE
-db DRAGON_RAGE
-db LEER
-db HYDRO_PUMP
-db 5 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20,23,24
-	tmlearn 25,31,32
-	tmlearn 33,34,38,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_GYARADOS ; pokedex id
+
+	db  95, 125,  79,  81, 100
+	;   hp  atk  def  spd  spc
+
+	db WATER, FLYING ; type
+	db 45 ; catch rate
+	db 214 ; base exp
+
+	INCBIN "gfx/pokemon/front/gyarados.pic", 0, 1 ; sprite dimensions
+	dw GyaradosPicFront, GyaradosPicBack
+
+	db BITE, DRAGON_RAGE, LEER, HYDRO_PUMP ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 15, 20, 23, 24, 25, 31, 32, 33, 34, 38, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/haunter.asm
+++ b/data/pokemon/base_stats/haunter.asm
@@ -1,28 +1,20 @@
-db DEX_HAUNTER ; pokedex id
-db 45 ; base hp
-db 50 ; base attack
-db 45 ; base defense
-db 95 ; base speed
-db 115 ; base special
-db GHOST ; species type 1
-db POISON ; species type 2
-db 90 ; catch rate
-db 126 ; base exp yield
-INCBIN "gfx/pokemon/front/haunter.pic",0,1 ; 66, sprite dimensions
-dw HaunterPicFront
-dw HaunterPicBack
-; attacks known at lvl 0
-db LICK
-db CONFUSE_RAY
-db NIGHT_SHADE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 0
-	tmlearn 20,21,24
-	tmlearn 25,29,31,32
-	tmlearn 34,36
-	tmlearn 42,44,46,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_HAUNTER ; pokedex id
+
+	db  45,  50,  45,  95, 115
+	;   hp  atk  def  spd  spc
+
+	db GHOST, POISON ; type
+	db 90 ; catch rate
+	db 126 ; base exp
+
+	INCBIN "gfx/pokemon/front/haunter.pic", 0, 1 ; sprite dimensions
+	dw HaunterPicFront, HaunterPicBack
+
+	db LICK, CONFUSE_RAY, NIGHT_SHADE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 20, 21, 24, 25, 29, 31, 32, 34, 36, 42, 44, 46, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/hitmonchan.asm
+++ b/data/pokemon/base_stats/hitmonchan.asm
@@ -1,28 +1,20 @@
-db DEX_HITMONCHAN ; pokedex id
-db 50 ; base hp
-db 105 ; base attack
-db 79 ; base defense
-db 76 ; base speed
-db 35 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 45 ; catch rate
-db 140 ; base exp yield
-INCBIN "gfx/pokemon/front/hitmonchan.pic",0,1 ; 66, sprite dimensions
-dw HitmonchanPicFront
-dw HitmonchanPicBack
-; attacks known at lvl 0
-db COMET_PUNCH
-db AGILITY
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 31,32
-	tmlearn 34,35,39,40
-	tmlearn 44
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_HITMONCHAN ; pokedex id
+
+	db  50, 105,  79,  76,  35
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 45 ; catch rate
+	db 140 ; base exp
+
+	INCBIN "gfx/pokemon/front/hitmonchan.pic", 0, 1 ; sprite dimensions
+	dw HitmonchanPicFront, HitmonchanPicBack
+
+	db COMET_PUNCH, AGILITY, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 31, 32, 34, 35, 39, 40, 44, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/hitmonlee.asm
+++ b/data/pokemon/base_stats/hitmonlee.asm
@@ -1,28 +1,20 @@
-db DEX_HITMONLEE ; pokedex id
-db 50 ; base hp
-db 120 ; base attack
-db 53 ; base defense
-db 87 ; base speed
-db 35 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 45 ; catch rate
-db 139 ; base exp yield
-INCBIN "gfx/pokemon/front/hitmonlee.pic",0,1 ; 77, sprite dimensions
-dw HitmonleePicFront
-dw HitmonleePicBack
-; attacks known at lvl 0
-db DOUBLE_KICK
-db MEDITATE
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 31,32
-	tmlearn 34,35,39,40
-	tmlearn 44
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_HITMONLEE ; pokedex id
+
+	db  50, 120,  53,  87,  35
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 45 ; catch rate
+	db 139 ; base exp
+
+	INCBIN "gfx/pokemon/front/hitmonlee.pic", 0, 1 ; sprite dimensions
+	dw HitmonleePicFront, HitmonleePicBack
+
+	db DOUBLE_KICK, MEDITATE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 31, 32, 34, 35, 39, 40, 44, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/horsea.asm
+++ b/data/pokemon/base_stats/horsea.asm
@@ -1,28 +1,20 @@
-db DEX_HORSEA ; pokedex id
-db 30 ; base hp
-db 40 ; base attack
-db 70 ; base defense
-db 60 ; base speed
-db 70 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 225 ; catch rate
-db 83 ; base exp yield
-INCBIN "gfx/pokemon/front/horsea.pic",0,1 ; 55, sprite dimensions
-dw HorseaPicFront
-dw HorseaPicBack
-; attacks known at lvl 0
-db BUBBLE
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_HORSEA ; pokedex id
+
+	db  30,  40,  70,  60,  70
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 225 ; catch rate
+	db 83 ; base exp
+
+	INCBIN "gfx/pokemon/front/horsea.pic", 0, 1 ; sprite dimensions
+	dw HorseaPicFront, HorseaPicBack
+
+	db BUBBLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 11, 12, 13, 14, 20, 31, 32, 34, 39, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/hypno.asm
+++ b/data/pokemon/base_stats/hypno.asm
@@ -1,28 +1,20 @@
-db DEX_HYPNO ; pokedex id
-db 85 ; base hp
-db 73 ; base attack
-db 70 ; base defense
-db 67 ; base speed
-db 115 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 75 ; catch rate
-db 165 ; base exp yield
-INCBIN "gfx/pokemon/front/hypno.pic",0,1 ; 77, sprite dimensions
-dw HypnoPicFront
-dw HypnoPicBack
-; attacks known at lvl 0
-db POUND
-db HYPNOSIS
-db DISABLE
-db CONFUSION
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20
-	tmlearn 29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 42,44,45,46
-	tmlearn 49,50,55
-db 0 ; padding
+	db DEX_HYPNO ; pokedex id
+
+	db  85,  73,  70,  67, 115
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 75 ; catch rate
+	db 165 ; base exp
+
+	INCBIN "gfx/pokemon/front/hypno.pic", 0, 1 ; sprite dimensions
+	dw HypnoPicFront, HypnoPicBack
+
+	db POUND, HYPNOSIS, DISABLE, CONFUSION ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 40, 42, 44, 45, 46, 49, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/ivysaur.asm
+++ b/data/pokemon/base_stats/ivysaur.asm
@@ -1,28 +1,20 @@
-db DEX_IVYSAUR ; pokedex id
-db 60 ; base hp
-db 62 ; base attack
-db 63 ; base defense
-db 60 ; base speed
-db 80 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 141 ; base exp yield
-INCBIN "gfx/pokemon/front/ivysaur.pic",0,1 ; 66, sprite dimensions
-dw IvysaurPicFront
-dw IvysaurPicBack
-; attacks known at lvl 0
-db TACKLE
-db GROWL
-db LEECH_SEED
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_IVYSAUR ; pokedex id
+
+	db  60,  62,  63,  60,  80
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 45 ; catch rate
+	db 141 ; base exp
+
+	INCBIN "gfx/pokemon/front/ivysaur.pic", 0, 1 ; sprite dimensions
+	dw IvysaurPicFront, IvysaurPicBack
+
+	db TACKLE, GROWL, LEECH_SEED, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/jigglypuff.asm
+++ b/data/pokemon/base_stats/jigglypuff.asm
@@ -1,28 +1,20 @@
-db DEX_JIGGLYPUFF ; pokedex id
-db 115 ; base hp
-db 45 ; base attack
-db 20 ; base defense
-db 20 ; base speed
-db 25 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 170 ; catch rate
-db 76 ; base exp yield
-INCBIN "gfx/pokemon/front/jigglypuff.pic",0,1 ; 55, sprite dimensions
-dw JigglypuffPicFront
-dw JigglypuffPicBack
-; attacks known at lvl 0
-db SING
-db 0
-db 0
-db 0
-db 4 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,38,40
-	tmlearn 44,45,46
-	tmlearn 49,50,54,55
-db 0 ; padding
+	db DEX_JIGGLYPUFF ; pokedex id
+
+	db 115,  45,  20,  20,  25
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 170 ; catch rate
+	db 76 ; base exp
+
+	INCBIN "gfx/pokemon/front/jigglypuff.pic", 0, 1 ; sprite dimensions
+	dw JigglypuffPicFront, JigglypuffPicBack
+
+	db SING, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 4 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 38, 40, 44, 45, 46, 49, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/jolteon.asm
+++ b/data/pokemon/base_stats/jolteon.asm
@@ -1,28 +1,20 @@
-db DEX_JOLTEON ; pokedex id
-db 65 ; base hp
-db 65 ; base attack
-db 60 ; base defense
-db 130 ; base speed
-db 110 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 45 ; catch rate
-db 197 ; base exp yield
-INCBIN "gfx/pokemon/front/jolteon.pic",0,1 ; 66, sprite dimensions
-dw JolteonPicFront
-dw JolteonPicBack
-; attacks known at lvl 0
-db TACKLE
-db SAND_ATTACK
-db QUICK_ATTACK
-db THUNDERSHOCK
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,15
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,39,40
-	tmlearn 44,45
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_JOLTEON ; pokedex id
+
+	db  65,  65,  60, 130, 110
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 45 ; catch rate
+	db 197 ; base exp
+
+	INCBIN "gfx/pokemon/front/jolteon.pic", 0, 1 ; sprite dimensions
+	dw JolteonPicFront, JolteonPicBack
+
+	db TACKLE, SAND_ATTACK, QUICK_ATTACK, THUNDERSHOCK ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 15, 20, 24, 25, 31, 32, 33, 34, 39, 40, 44, 45, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/jynx.asm
+++ b/data/pokemon/base_stats/jynx.asm
@@ -1,28 +1,20 @@
-db DEX_JYNX ; pokedex id
-db 65 ; base hp
-db 50 ; base attack
-db 35 ; base defense
-db 95 ; base speed
-db 95 ; base special
-db ICE ; species type 1
-db PSYCHIC ; species type 2
-db 45 ; catch rate
-db 137 ; base exp yield
-INCBIN "gfx/pokemon/front/jynx.pic",0,1 ; 66, sprite dimensions
-dw JynxPicFront
-dw JynxPicBack
-; attacks known at lvl 0
-db POUND
-db LOVELY_KISS
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20
-	tmlearn 29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 44,46
-	tmlearn 50
-db 0 ; padding
+	db DEX_JYNX ; pokedex id
+
+	db  65,  50,  35,  95,  95
+	;   hp  atk  def  spd  spc
+
+	db ICE, PSYCHIC ; type
+	db 45 ; catch rate
+	db 137 ; base exp
+
+	INCBIN "gfx/pokemon/front/jynx.pic", 0, 1 ; sprite dimensions
+	dw JynxPicFront, JynxPicBack
+
+	db POUND, LOVELY_KISS, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 29, 30, 31, 32, 33, 34, 35, 40, 44, 46, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/kabuto.asm
+++ b/data/pokemon/base_stats/kabuto.asm
@@ -1,28 +1,20 @@
-db DEX_KABUTO ; pokedex id
-db 30 ; base hp
-db 80 ; base attack
-db 90 ; base defense
-db 55 ; base speed
-db 45 ; base special
-db ROCK ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 119 ; base exp yield
-INCBIN "gfx/pokemon/front/kabuto.pic",0,1 ; 55, sprite dimensions
-dw KabutoPicFront
-dw KabutoPicBack
-; attacks known at lvl 0
-db SCRATCH
-db HARDEN
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_KABUTO ; pokedex id
+
+	db  30,  80,  90,  55,  45
+	;   hp  atk  def  spd  spc
+
+	db ROCK, WATER ; type
+	db 45 ; catch rate
+	db 119 ; base exp
+
+	INCBIN "gfx/pokemon/front/kabuto.pic", 0, 1 ; sprite dimensions
+	dw KabutoPicFront, KabutoPicBack
+
+	db SCRATCH, HARDEN, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 20, 31, 32, 33, 34, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/kabutops.asm
+++ b/data/pokemon/base_stats/kabutops.asm
@@ -1,28 +1,20 @@
-db DEX_KABUTOPS ; pokedex id
-db 60 ; base hp
-db 115 ; base attack
-db 105 ; base defense
-db 80 ; base speed
-db 70 ; base special
-db ROCK ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 201 ; base exp yield
-INCBIN "gfx/pokemon/front/kabutops.pic",0,1 ; 66, sprite dimensions
-dw KabutopsPicFront
-dw KabutopsPicBack
-; attacks known at lvl 0
-db SCRATCH
-db HARDEN
-db ABSORB
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,3,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,19,20
-	tmlearn 31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_KABUTOPS ; pokedex id
+
+	db  60, 115, 105,  80,  70
+	;   hp  atk  def  spd  spc
+
+	db ROCK, WATER ; type
+	db 45 ; catch rate
+	db 201 ; base exp
+
+	INCBIN "gfx/pokemon/front/kabutops.pic", 0, 1 ; sprite dimensions
+	dw KabutopsPicFront, KabutopsPicBack
+
+	db SCRATCH, HARDEN, ABSORB, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 31, 32, 33, 34, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/kadabra.asm
+++ b/data/pokemon/base_stats/kadabra.asm
@@ -1,28 +1,20 @@
-db DEX_KADABRA ; pokedex id
-db 40 ; base hp
-db 35 ; base attack
-db 30 ; base defense
-db 105 ; base speed
-db 120 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 100 ; catch rate
-db 145 ; base exp yield
-INCBIN "gfx/pokemon/front/kadabra.pic",0,1 ; 66, sprite dimensions
-dw KadabraPicFront
-dw KadabraPicBack
-; attacks known at lvl 0
-db TELEPORT
-db CONFUSION
-db DISABLE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 28,29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 44,45,46
-	tmlearn 49,50,55
-db 0 ; padding
+	db DEX_KADABRA ; pokedex id
+
+	db  40,  35,  30, 105, 120
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 100 ; catch rate
+	db 145 ; base exp
+
+	INCBIN "gfx/pokemon/front/kadabra.pic", 0, 1 ; sprite dimensions
+	dw KadabraPicFront, KadabraPicBack
+
+	db TELEPORT, CONFUSION, DISABLE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 28, 29, 30, 31, 32, 33, 34, 35, 40, 44, 45, 46, 49, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/kakuna.asm
+++ b/data/pokemon/base_stats/kakuna.asm
@@ -1,28 +1,20 @@
-db DEX_KAKUNA ; pokedex id
-db 45 ; base hp
-db 25 ; base attack
-db 50 ; base defense
-db 35 ; base speed
-db 25 ; base special
-db BUG ; species type 1
-db POISON ; species type 2
-db 120 ; catch rate
-db 71 ; base exp yield
-INCBIN "gfx/pokemon/front/kakuna.pic",0,1 ; 55, sprite dimensions
-dw KakunaPicFront
-dw KakunaPicBack
-; attacks known at lvl 0
-db HARDEN
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-db 0 ; padding
+	db DEX_KAKUNA ; pokedex id
+
+	db  45,  25,  50,  35,  25
+	;   hp  atk  def  spd  spc
+
+	db BUG, POISON ; type
+	db 120 ; catch rate
+	db 71 ; base exp
+
+	INCBIN "gfx/pokemon/front/kakuna.pic", 0, 1 ; sprite dimensions
+	dw KakunaPicFront, KakunaPicBack
+
+	db HARDEN, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/kangaskhan.asm
+++ b/data/pokemon/base_stats/kangaskhan.asm
@@ -1,28 +1,20 @@
-db DEX_KANGASKHAN ; pokedex id
-db 105 ; base hp
-db 95 ; base attack
-db 80 ; base defense
-db 90 ; base speed
-db 40 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 45 ; catch rate
-db 175 ; base exp yield
-INCBIN "gfx/pokemon/front/kangaskhan.pic",0,1 ; 77, sprite dimensions
-dw KangaskhanPicFront
-dw KangaskhanPicBack
-; attacks known at lvl 0
-db COMET_PUNCH
-db RAGE
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20,24
-	tmlearn 25,26,27,31,32
-	tmlearn 34,38,40
-	tmlearn 44,48
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_KANGASKHAN ; pokedex id
+
+	db 105,  95,  80,  90,  40
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 45 ; catch rate
+	db 175 ; base exp
+
+	INCBIN "gfx/pokemon/front/kangaskhan.pic", 0, 1 ; sprite dimensions
+	dw KangaskhanPicFront, KangaskhanPicBack
+
+	db COMET_PUNCH, RAGE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 24, 25, 26, 27, 31, 32, 34, 38, 40, 44, 48, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/kingler.asm
+++ b/data/pokemon/base_stats/kingler.asm
@@ -1,28 +1,20 @@
-db DEX_KINGLER ; pokedex id
-db 55 ; base hp
-db 130 ; base attack
-db 115 ; base defense
-db 75 ; base speed
-db 50 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 60 ; catch rate
-db 206 ; base exp yield
-INCBIN "gfx/pokemon/front/kingler.pic",0,1 ; 77, sprite dimensions
-dw KinglerPicFront
-dw KinglerPicBack
-; attacks known at lvl 0
-db BUBBLE
-db LEER
-db VICEGRIP
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34
-	tmlearn 44
-	tmlearn 50,51,53,54
-db 0 ; padding
+	db DEX_KINGLER ; pokedex id
+
+	db  55, 130, 115,  75,  50
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 60 ; catch rate
+	db 206 ; base exp
+
+	INCBIN "gfx/pokemon/front/kingler.pic", 0, 1 ; sprite dimensions
+	dw KinglerPicFront, KinglerPicBack
+
+	db BUBBLE, LEER, VICEGRIP, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 20, 31, 32, 34, 44, 50, 51, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/koffing.asm
+++ b/data/pokemon/base_stats/koffing.asm
@@ -1,28 +1,20 @@
-db DEX_KOFFING ; pokedex id
-db 40 ; base hp
-db 65 ; base attack
-db 95 ; base defense
-db 35 ; base speed
-db 60 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 190 ; catch rate
-db 114 ; base exp yield
-INCBIN "gfx/pokemon/front/koffing.pic",0,1 ; 66, sprite dimensions
-dw KoffingPicFront
-dw KoffingPicBack
-; attacks known at lvl 0
-db TACKLE
-db SMOG
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 0
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 34,36,38
-	tmlearn 44,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_KOFFING ; pokedex id
+
+	db  40,  65,  95,  35,  60
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 190 ; catch rate
+	db 114 ; base exp
+
+	INCBIN "gfx/pokemon/front/koffing.pic", 0, 1 ; sprite dimensions
+	dw KoffingPicFront, KoffingPicBack
+
+	db TACKLE, SMOG, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 20, 24, 25, 31, 32, 34, 36, 38, 44, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/krabby.asm
+++ b/data/pokemon/base_stats/krabby.asm
@@ -1,28 +1,20 @@
-db DEX_KRABBY ; pokedex id
-db 30 ; base hp
-db 105 ; base attack
-db 90 ; base defense
-db 50 ; base speed
-db 25 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 225 ; catch rate
-db 115 ; base exp yield
-INCBIN "gfx/pokemon/front/krabby.pic",0,1 ; 55, sprite dimensions
-dw KrabbyPicFront
-dw KrabbyPicBack
-; attacks known at lvl 0
-db BUBBLE
-db LEER
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34
-	tmlearn 44
-	tmlearn 50,51,53,54
-db 0 ; padding
+	db DEX_KRABBY ; pokedex id
+
+	db  30, 105,  90,  50,  25
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 225 ; catch rate
+	db 115 ; base exp
+
+	INCBIN "gfx/pokemon/front/krabby.pic", 0, 1 ; sprite dimensions
+	dw KrabbyPicFront, KrabbyPicBack
+
+	db BUBBLE, LEER, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 11, 12, 13, 14, 20, 31, 32, 34, 44, 50, 51, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/lapras.asm
+++ b/data/pokemon/base_stats/lapras.asm
@@ -1,28 +1,20 @@
-db DEX_LAPRAS ; pokedex id
-db 130 ; base hp
-db 85 ; base attack
-db 80 ; base defense
-db 60 ; base speed
-db 95 ; base special
-db WATER ; species type 1
-db ICE ; species type 2
-db 45 ; catch rate
-db 219 ; base exp yield
-INCBIN "gfx/pokemon/front/lapras.pic",0,1 ; 77, sprite dimensions
-dw LaprasPicFront
-dw LaprasPicBack
-; attacks known at lvl 0
-db WATER_GUN
-db GROWL
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20,22,23,24
-	tmlearn 25,29,31,32
-	tmlearn 33,34,40
-	tmlearn 44,46
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_LAPRAS ; pokedex id
+
+	db 130,  85,  80,  60,  95
+	;   hp  atk  def  spd  spc
+
+	db WATER, ICE ; type
+	db 45 ; catch rate
+	db 219 ; base exp
+
+	INCBIN "gfx/pokemon/front/lapras.pic", 0, 1 ; sprite dimensions
+	dw LaprasPicFront, LaprasPicBack
+
+	db WATER_GUN, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 22, 23, 24, 25, 29, 31, 32, 33, 34, 40, 44, 46, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/lickitung.asm
+++ b/data/pokemon/base_stats/lickitung.asm
@@ -1,28 +1,20 @@
-db DEX_LICKITUNG ; pokedex id
-db 90 ; base hp
-db 55 ; base attack
-db 75 ; base defense
-db 30 ; base speed
-db 60 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 45 ; catch rate
-db 127 ; base exp yield
-INCBIN "gfx/pokemon/front/lickitung.pic",0,1 ; 77, sprite dimensions
-dw LickitungPicFront
-dw LickitungPicBack
-; attacks known at lvl 0
-db WRAP
-db SUPERSONIC
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,3,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20,24
-	tmlearn 25,26,27,31,32
-	tmlearn 34,38,40
-	tmlearn 44
-	tmlearn 50,51,53,54
-db 0 ; padding
+	db DEX_LICKITUNG ; pokedex id
+
+	db  90,  55,  75,  30,  60
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 45 ; catch rate
+	db 127 ; base exp
+
+	INCBIN "gfx/pokemon/front/lickitung.pic", 0, 1 ; sprite dimensions
+	dw LickitungPicFront, LickitungPicBack
+
+	db WRAP, SUPERSONIC, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 24, 25, 26, 27, 31, 32, 34, 38, 40, 44, 50, 51, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/machamp.asm
+++ b/data/pokemon/base_stats/machamp.asm
@@ -1,28 +1,20 @@
-db DEX_MACHAMP ; pokedex id
-db 90 ; base hp
-db 130 ; base attack
-db 80 ; base defense
-db 55 ; base speed
-db 65 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 45 ; catch rate
-db 193 ; base exp yield
-INCBIN "gfx/pokemon/front/machamp.pic",0,1 ; 77, sprite dimensions
-dw MachampPicFront
-dw MachampPicBack
-; attacks known at lvl 0
-db KARATE_CHOP
-db LOW_KICK
-db LEER
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,35,38,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_MACHAMP ; pokedex id
+
+	db  90, 130,  80,  55,  65
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 45 ; catch rate
+	db 193 ; base exp
+
+	INCBIN "gfx/pokemon/front/machamp.pic", 0, 1 ; sprite dimensions
+	dw MachampPicFront, MachampPicBack
+
+	db KARATE_CHOP, LOW_KICK, LEER, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 35, 38, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/machoke.asm
+++ b/data/pokemon/base_stats/machoke.asm
@@ -1,28 +1,20 @@
-db DEX_MACHOKE ; pokedex id
-db 80 ; base hp
-db 100 ; base attack
-db 70 ; base defense
-db 45 ; base speed
-db 50 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 90 ; catch rate
-db 146 ; base exp yield
-INCBIN "gfx/pokemon/front/machoke.pic",0,1 ; 77, sprite dimensions
-dw MachokePicFront
-dw MachokePicBack
-; attacks known at lvl 0
-db KARATE_CHOP
-db LOW_KICK
-db LEER
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,35,38,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_MACHOKE ; pokedex id
+
+	db  80, 100,  70,  45,  50
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 90 ; catch rate
+	db 146 ; base exp
+
+	INCBIN "gfx/pokemon/front/machoke.pic", 0, 1 ; sprite dimensions
+	dw MachokePicFront, MachokePicBack
+
+	db KARATE_CHOP, LOW_KICK, LEER, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 35, 38, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/machop.asm
+++ b/data/pokemon/base_stats/machop.asm
@@ -1,28 +1,20 @@
-db DEX_MACHOP ; pokedex id
-db 70 ; base hp
-db 80 ; base attack
-db 50 ; base defense
-db 35 ; base speed
-db 35 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 180 ; catch rate
-db 88 ; base exp yield
-INCBIN "gfx/pokemon/front/machop.pic",0,1 ; 55, sprite dimensions
-dw MachopPicFront
-dw MachopPicBack
-; attacks known at lvl 0
-db KARATE_CHOP
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,35,38,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_MACHOP ; pokedex id
+
+	db  70,  80,  50,  35,  35
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 180 ; catch rate
+	db 88 ; base exp
+
+	INCBIN "gfx/pokemon/front/machop.pic", 0, 1 ; sprite dimensions
+	dw MachopPicFront, MachopPicBack
+
+	db KARATE_CHOP, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 35, 38, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/magikarp.asm
+++ b/data/pokemon/base_stats/magikarp.asm
@@ -1,28 +1,20 @@
-db DEX_MAGIKARP ; pokedex id
-db 20 ; base hp
-db 10 ; base attack
-db 55 ; base defense
-db 80 ; base speed
-db 20 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 255 ; catch rate
-db 20 ; base exp yield
-INCBIN "gfx/pokemon/front/magikarp.pic",0,1 ; 66, sprite dimensions
-dw MagikarpPicFront
-dw MagikarpPicBack
-; attacks known at lvl 0
-db SPLASH
-db 0
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-db 0 ; padding
+	db DEX_MAGIKARP ; pokedex id
+
+	db  20,  10,  55,  80,  20
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 255 ; catch rate
+	db 20 ; base exp
+
+	INCBIN "gfx/pokemon/front/magikarp.pic", 0, 1 ; sprite dimensions
+	dw MagikarpPicFront, MagikarpPicBack
+
+	db SPLASH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/magmar.asm
+++ b/data/pokemon/base_stats/magmar.asm
@@ -1,28 +1,20 @@
-db DEX_MAGMAR ; pokedex id
-db 65 ; base hp
-db 95 ; base attack
-db 57 ; base defense
-db 93 ; base speed
-db 85 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 45 ; catch rate
-db 167 ; base exp yield
-INCBIN "gfx/pokemon/front/magmar.pic",0,1 ; 66, sprite dimensions
-dw MagmarPicFront
-dw MagmarPicBack
-; attacks known at lvl 0
-db EMBER
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20
-	tmlearn 29,30,31,32
-	tmlearn 34,35,38,40
-	tmlearn 44,46
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_MAGMAR ; pokedex id
+
+	db  65,  95,  57,  93,  85
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 45 ; catch rate
+	db 167 ; base exp
+
+	INCBIN "gfx/pokemon/front/magmar.pic", 0, 1 ; sprite dimensions
+	dw MagmarPicFront, MagmarPicBack
+
+	db EMBER, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 29, 30, 31, 32, 34, 35, 38, 40, 44, 46, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/magnemite.asm
+++ b/data/pokemon/base_stats/magnemite.asm
@@ -1,28 +1,20 @@
-db DEX_MAGNEMITE ; pokedex id
-db 25 ; base hp
-db 35 ; base attack
-db 70 ; base defense
-db 45 ; base speed
-db 95 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 190 ; catch rate
-db 89 ; base exp yield
-INCBIN "gfx/pokemon/front/magnemite.pic",0,1 ; 55, sprite dimensions
-dw MagnemitePicFront
-dw MagnemitePicBack
-; attacks known at lvl 0
-db TACKLE
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10
-	tmlearn 20,24
-	tmlearn 25,30,31,32
-	tmlearn 33,34,39
-	tmlearn 44,45
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_MAGNEMITE ; pokedex id
+
+	db  25,  35,  70,  45,  95
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 190 ; catch rate
+	db 89 ; base exp
+
+	INCBIN "gfx/pokemon/front/magnemite.pic", 0, 1 ; sprite dimensions
+	dw MagnemitePicFront, MagnemitePicBack
+
+	db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 20, 24, 25, 30, 31, 32, 33, 34, 39, 44, 45, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/magneton.asm
+++ b/data/pokemon/base_stats/magneton.asm
@@ -1,28 +1,20 @@
-db DEX_MAGNETON ; pokedex id
-db 50 ; base hp
-db 60 ; base attack
-db 95 ; base defense
-db 70 ; base speed
-db 120 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 60 ; catch rate
-db 161 ; base exp yield
-INCBIN "gfx/pokemon/front/magneton.pic",0,1 ; 66, sprite dimensions
-dw MagnetonPicFront
-dw MagnetonPicBack
-; attacks known at lvl 0
-db TACKLE
-db SONICBOOM
-db THUNDERSHOCK
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,15
-	tmlearn 20,24
-	tmlearn 25,30,31,32
-	tmlearn 33,34,39
-	tmlearn 44,45
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_MAGNETON ; pokedex id
+
+	db  50,  60,  95,  70, 120
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 60 ; catch rate
+	db 161 ; base exp
+
+	INCBIN "gfx/pokemon/front/magneton.pic", 0, 1 ; sprite dimensions
+	dw MagnetonPicFront, MagnetonPicBack
+
+	db TACKLE, SONICBOOM, THUNDERSHOCK, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 15, 20, 24, 25, 30, 31, 32, 33, 34, 39, 44, 45, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/mankey.asm
+++ b/data/pokemon/base_stats/mankey.asm
@@ -1,28 +1,20 @@
-db DEX_MANKEY ; pokedex id
-db 40 ; base hp
-db 80 ; base attack
-db 35 ; base defense
-db 70 ; base speed
-db 35 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 190 ; catch rate
-db 74 ; base exp yield
-INCBIN "gfx/pokemon/front/mankey.pic",0,1 ; 55, sprite dimensions
-dw MankeyPicFront
-dw MankeyPicBack
-; attacks known at lvl 0
-db SCRATCH
-db LEER
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,16
-	tmlearn 17,18,19,20,24
-	tmlearn 25,28,31,32
-	tmlearn 34,35,39,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_MANKEY ; pokedex id
+
+	db  40,  80,  35,  70,  35
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 190 ; catch rate
+	db 74 ; base exp
+
+	INCBIN "gfx/pokemon/front/mankey.pic", 0, 1 ; sprite dimensions
+	dw MankeyPicFront, MankeyPicBack
+
+	db SCRATCH, LEER, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 16, 17, 18, 19, 20, 24, 25, 28, 31, 32, 34, 35, 39, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/marowak.asm
+++ b/data/pokemon/base_stats/marowak.asm
@@ -1,28 +1,20 @@
-db DEX_MAROWAK ; pokedex id
-db 60 ; base hp
-db 80 ; base attack
-db 110 ; base defense
-db 45 ; base speed
-db 50 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 75 ; catch rate
-db 124 ; base exp yield
-INCBIN "gfx/pokemon/front/marowak.pic",0,1 ; 66, sprite dimensions
-dw MarowakPicFront
-dw MarowakPicBack
-; attacks known at lvl 0
-db BONE_CLUB
-db GROWL
-db LEER
-db FOCUS_ENERGY
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,38,40
-	tmlearn 44
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_MAROWAK ; pokedex id
+
+	db  60,  80, 110,  45,  50
+	;   hp  atk  def  spd  spc
+
+	db GROUND, GROUND ; type
+	db 75 ; catch rate
+	db 124 ; base exp
+
+	INCBIN "gfx/pokemon/front/marowak.pic", 0, 1 ; sprite dimensions
+	dw MarowakPicFront, MarowakPicBack
+
+	db BONE_CLUB, GROWL, LEER, FOCUS_ENERGY ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 26, 27, 28, 31, 32, 34, 38, 40, 44, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/meowth.asm
+++ b/data/pokemon/base_stats/meowth.asm
@@ -1,28 +1,20 @@
-db DEX_MEOWTH ; pokedex id
-db 40 ; base hp
-db 45 ; base attack
-db 35 ; base defense
-db 90 ; base speed
-db 40 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 255 ; catch rate
-db 69 ; base exp yield
-INCBIN "gfx/pokemon/front/meowth.pic",0,1 ; 55, sprite dimensions
-dw MeowthPicFront
-dw MeowthPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,16
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_MEOWTH ; pokedex id
+
+	db  40,  45,  35,  90,  40
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 255 ; catch rate
+	db 69 ; base exp
+
+	INCBIN "gfx/pokemon/front/meowth.pic", 0, 1 ; sprite dimensions
+	dw MeowthPicFront, MeowthPicBack
+
+	db SCRATCH, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 16, 20, 24, 25, 31, 32, 34, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/metapod.asm
+++ b/data/pokemon/base_stats/metapod.asm
@@ -1,28 +1,20 @@
-db DEX_METAPOD ; pokedex id
-db 50 ; base hp
-db 20 ; base attack
-db 55 ; base defense
-db 30 ; base speed
-db 25 ; base special
-db BUG ; species type 1
-db BUG ; species type 2
-db 120 ; catch rate
-db 72 ; base exp yield
-INCBIN "gfx/pokemon/front/metapod.pic",0,1 ; 55, sprite dimensions
-dw MetapodPicFront
-dw MetapodPicBack
-; attacks known at lvl 0
-db HARDEN
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-db 0 ; padding
+	db DEX_METAPOD ; pokedex id
+
+	db  50,  20,  55,  30,  25
+	;   hp  atk  def  spd  spc
+
+	db BUG, BUG ; type
+	db 120 ; catch rate
+	db 72 ; base exp
+
+	INCBIN "gfx/pokemon/front/metapod.pic", 0, 1 ; sprite dimensions
+	dw MetapodPicFront, MetapodPicBack
+
+	db HARDEN, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/mew.asm
+++ b/data/pokemon/base_stats/mew.asm
@@ -1,29 +1,20 @@
-MewBaseStats::
-db DEX_MEW ; pokedex id
-db 100 ; base hp
-db 100 ; base attack
-db 100 ; base defense
-db 100 ; base speed
-db 100 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 45 ; catch rate
-db 64 ; base exp yield
-INCBIN "gfx/pokemon/front/mew.pic",0,1 ; 55, sprite dimensions
-dw MewPicFront
-dw MewPicBack
-; attacks known at lvl 0
-db POUND
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,2,3,4,5,6,7,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20,21,22,23,24
-	tmlearn 25,26,27,28,29,30,31,32
-	tmlearn 33,34,35,36,37,38,39,40
-	tmlearn 41,42,43,44,45,46,47,48
-	tmlearn 49,50,51,52,53,54,55,56
-db %11111111 ; usually spacing
+	db DEX_MEW ; pokedex id
+
+	db 100, 100, 100, 100, 100
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 45 ; catch rate
+	db 64 ; base exp
+
+	INCBIN "gfx/pokemon/front/mew.pic", 0, 1 ; sprite dimensions
+	dw MewPicFront, MewPicBack
+
+	db POUND, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56
+	; end
+
+	db %11111111 ; padding
--- a/data/pokemon/base_stats/mewtwo.asm
+++ b/data/pokemon/base_stats/mewtwo.asm
@@ -1,28 +1,20 @@
-db DEX_MEWTWO ; pokedex id
-db 106 ; base hp
-db 110 ; base attack
-db 90 ; base defense
-db 130 ; base speed
-db 154 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 3 ; catch rate
-db 220 ; base exp yield
-INCBIN "gfx/pokemon/front/mewtwo.pic",0,1 ; 77, sprite dimensions
-dw MewtwoPicFront
-dw MewtwoPicBack
-; attacks known at lvl 0
-db CONFUSION
-db DISABLE
-db SWIFT
-db PSYCHIC_M
-db 5 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,35,36,38,40
-	tmlearn 44,45,46
-	tmlearn 49,50,54,55
-db 0 ; padding
+	db DEX_MEWTWO ; pokedex id
+
+	db 106, 110,  90, 130, 154
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 3 ; catch rate
+	db 220 ; base exp
+
+	INCBIN "gfx/pokemon/front/mewtwo.pic", 0, 1 ; sprite dimensions
+	dw MewtwoPicFront, MewtwoPicBack
+
+	db CONFUSION, DISABLE, SWIFT, PSYCHIC_M ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 44, 45, 46, 49, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/moltres.asm
+++ b/data/pokemon/base_stats/moltres.asm
@@ -1,28 +1,20 @@
-db DEX_MOLTRES ; pokedex id
-db 90 ; base hp
-db 100 ; base attack
-db 90 ; base defense
-db 90 ; base speed
-db 125 ; base special
-db FIRE ; species type 1
-db FLYING ; species type 2
-db 3 ; catch rate
-db 217 ; base exp yield
-INCBIN "gfx/pokemon/front/moltres.pic",0,1 ; 77, sprite dimensions
-dw MoltresPicFront
-dw MoltresPicBack
-; attacks known at lvl 0
-db PECK
-db FIRE_SPIN
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,38,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_MOLTRES ; pokedex id
+
+	db  90, 100,  90,  90, 125
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FLYING ; type
+	db 3 ; catch rate
+	db 217 ; base exp
+
+	INCBIN "gfx/pokemon/front/moltres.pic", 0, 1 ; sprite dimensions
+	dw MoltresPicFront, MoltresPicBack
+
+	db PECK, FIRE_SPIN, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 31, 32, 33, 34, 38, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/mrmime.asm
+++ b/data/pokemon/base_stats/mrmime.asm
@@ -1,28 +1,20 @@
-db DEX_MR_MIME ; pokedex id
-db 40 ; base hp
-db 45 ; base attack
-db 65 ; base defense
-db 90 ; base speed
-db 100 ; base special
-db PSYCHIC ; species type 1
-db PSYCHIC ; species type 2
-db 45 ; catch rate
-db 136 ; base exp yield
-INCBIN "gfx/pokemon/front/mr.mime.pic",0,1 ; 66, sprite dimensions
-dw MrMimePicFront
-dw MrMimePicBack
-; attacks known at lvl 0
-db CONFUSION
-db BARRIER
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,35,40
-	tmlearn 44,45,46
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_MR_MIME ; pokedex id
+
+	db  40,  45,  65,  90, 100
+	;   hp  atk  def  spd  spc
+
+	db PSYCHIC, PSYCHIC ; type
+	db 45 ; catch rate
+	db 136 ; base exp
+
+	INCBIN "gfx/pokemon/front/mr.mime.pic", 0, 1 ; sprite dimensions
+	dw MrMimePicFront, MrMimePicBack
+
+	db CONFUSION, BARRIER, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 35, 40, 44, 45, 46, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/muk.asm
+++ b/data/pokemon/base_stats/muk.asm
@@ -1,28 +1,20 @@
-db DEX_MUK ; pokedex id
-db 105 ; base hp
-db 105 ; base attack
-db 75 ; base defense
-db 50 ; base speed
-db 65 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 75 ; catch rate
-db 157 ; base exp yield
-INCBIN "gfx/pokemon/front/muk.pic",0,1 ; 77, sprite dimensions
-dw MukPicFront
-dw MukPicBack
-; attacks known at lvl 0
-db POUND
-db DISABLE
-db POISON_GAS
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 15
-	tmlearn 20,21,24
-	tmlearn 25,31,32
-	tmlearn 34,36,38
-	tmlearn 44,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_MUK ; pokedex id
+
+	db 105, 105,  75,  50,  65
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 75 ; catch rate
+	db 157 ; base exp
+
+	INCBIN "gfx/pokemon/front/muk.pic", 0, 1 ; sprite dimensions
+	dw MukPicFront, MukPicBack
+
+	db POUND, DISABLE, POISON_GAS, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 15, 20, 21, 24, 25, 31, 32, 34, 36, 38, 44, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/nidoking.asm
+++ b/data/pokemon/base_stats/nidoking.asm
@@ -1,28 +1,20 @@
-db DEX_NIDOKING ; pokedex id
-db 81 ; base hp
-db 92 ; base attack
-db 77 ; base defense
-db 85 ; base speed
-db 75 ; base special
-db POISON ; species type 1
-db GROUND ; species type 2
-db 45 ; catch rate
-db 195 ; base exp yield
-INCBIN "gfx/pokemon/front/nidoking.pic",0,1 ; 77, sprite dimensions
-dw NidokingPicFront
-dw NidokingPicBack
-; attacks known at lvl 0
-db TACKLE
-db HORN_ATTACK
-db POISON_STING
-db THRASH
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,7,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20,24
-	tmlearn 25,26,27,31,32
-	tmlearn 33,34,38,40
-	tmlearn 44,48
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_NIDOKING ; pokedex id
+
+	db  81,  92,  77,  85,  75
+	;   hp  atk  def  spd  spc
+
+	db POISON, GROUND ; type
+	db 45 ; catch rate
+	db 195 ; base exp
+
+	INCBIN "gfx/pokemon/front/nidoking.pic", 0, 1 ; sprite dimensions
+	dw NidokingPicFront, NidokingPicBack
+
+	db TACKLE, HORN_ATTACK, POISON_STING, THRASH ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 31, 32, 33, 34, 38, 40, 44, 48, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/nidoqueen.asm
+++ b/data/pokemon/base_stats/nidoqueen.asm
@@ -1,28 +1,20 @@
-db DEX_NIDOQUEEN ; pokedex id
-db 90 ; base hp
-db 82 ; base attack
-db 87 ; base defense
-db 76 ; base speed
-db 75 ; base special
-db POISON ; species type 1
-db GROUND ; species type 2
-db 45 ; catch rate
-db 194 ; base exp yield
-INCBIN "gfx/pokemon/front/nidoqueen.pic",0,1 ; 77, sprite dimensions
-dw NidoqueenPicFront
-dw NidoqueenPicBack
-; attacks known at lvl 0
-db TACKLE
-db SCRATCH
-db TAIL_WHIP
-db BODY_SLAM
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,7,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20,24
-	tmlearn 25,26,27,31,32
-	tmlearn 33,34,38,40
-	tmlearn 44,48
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_NIDOQUEEN ; pokedex id
+
+	db  90,  82,  87,  76,  75
+	;   hp  atk  def  spd  spc
+
+	db POISON, GROUND ; type
+	db 45 ; catch rate
+	db 194 ; base exp
+
+	INCBIN "gfx/pokemon/front/nidoqueen.pic", 0, 1 ; sprite dimensions
+	dw NidoqueenPicFront, NidoqueenPicBack
+
+	db TACKLE, SCRATCH, TAIL_WHIP, BODY_SLAM ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 31, 32, 33, 34, 38, 40, 44, 48, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/nidoranf.asm
+++ b/data/pokemon/base_stats/nidoranf.asm
@@ -1,28 +1,20 @@
-db DEX_NIDORAN_F ; pokedex id
-db 55 ; base hp
-db 47 ; base attack
-db 52 ; base defense
-db 41 ; base speed
-db 40 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 235 ; catch rate
-db 59 ; base exp yield
-INCBIN "gfx/pokemon/front/nidoranf.pic",0,1 ; 55, sprite dimensions
-dw NidoranFPicFront
-dw NidoranFPicBack
-; attacks known at lvl 0
-db GROWL
-db TACKLE
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,14
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_NIDORAN_F ; pokedex id
+
+	db  55,  47,  52,  41,  40
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 235 ; catch rate
+	db 59 ; base exp
+
+	INCBIN "gfx/pokemon/front/nidoranf.pic", 0, 1 ; sprite dimensions
+	dw NidoranFPicFront, NidoranFPicBack
+
+	db GROWL, TACKLE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 14, 20, 24, 25, 31, 32, 33, 34, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/nidoranm.asm
+++ b/data/pokemon/base_stats/nidoranm.asm
@@ -1,28 +1,20 @@
-db DEX_NIDORAN_M ; pokedex id
-db 46 ; base hp
-db 57 ; base attack
-db 40 ; base defense
-db 50 ; base speed
-db 40 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 235 ; catch rate
-db 60 ; base exp yield
-INCBIN "gfx/pokemon/front/nidoranm.pic",0,1 ; 55, sprite dimensions
-dw NidoranMPicFront
-dw NidoranMPicBack
-; attacks known at lvl 0
-db LEER
-db TACKLE
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,14
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_NIDORAN_M ; pokedex id
+
+	db  46,  57,  40,  50,  40
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 235 ; catch rate
+	db 60 ; base exp
+
+	INCBIN "gfx/pokemon/front/nidoranm.pic", 0, 1 ; sprite dimensions
+	dw NidoranMPicFront, NidoranMPicBack
+
+	db LEER, TACKLE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 14, 20, 24, 25, 31, 32, 33, 34, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/nidorina.asm
+++ b/data/pokemon/base_stats/nidorina.asm
@@ -1,28 +1,20 @@
-db DEX_NIDORINA ; pokedex id
-db 70 ; base hp
-db 62 ; base attack
-db 67 ; base defense
-db 56 ; base speed
-db 55 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 120 ; catch rate
-db 117 ; base exp yield
-INCBIN "gfx/pokemon/front/nidorina.pic",0,1 ; 66, sprite dimensions
-dw NidorinaPicFront
-dw NidorinaPicBack
-; attacks known at lvl 0
-db GROWL
-db TACKLE
-db SCRATCH
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_NIDORINA ; pokedex id
+
+	db  70,  62,  67,  56,  55
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 120 ; catch rate
+	db 117 ; base exp
+
+	INCBIN "gfx/pokemon/front/nidorina.pic", 0, 1 ; sprite dimensions
+	dw NidorinaPicFront, NidorinaPicBack
+
+	db GROWL, TACKLE, SCRATCH, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 20, 24, 25, 31, 32, 33, 34, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/nidorino.asm
+++ b/data/pokemon/base_stats/nidorino.asm
@@ -1,28 +1,20 @@
-db DEX_NIDORINO ; pokedex id
-db 61 ; base hp
-db 72 ; base attack
-db 57 ; base defense
-db 65 ; base speed
-db 55 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 120 ; catch rate
-db 118 ; base exp yield
-INCBIN "gfx/pokemon/front/nidorino.pic",0,1 ; 66, sprite dimensions
-dw NidorinoPicFront
-dw NidorinoPicBack
-; attacks known at lvl 0
-db LEER
-db TACKLE
-db HORN_ATTACK
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_NIDORINO ; pokedex id
+
+	db  61,  72,  57,  65,  55
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 120 ; catch rate
+	db 118 ; base exp
+
+	INCBIN "gfx/pokemon/front/nidorino.pic", 0, 1 ; sprite dimensions
+	dw NidorinoPicFront, NidorinoPicBack
+
+	db LEER, TACKLE, HORN_ATTACK, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 20, 24, 25, 31, 32, 33, 34, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/ninetales.asm
+++ b/data/pokemon/base_stats/ninetales.asm
@@ -1,28 +1,20 @@
-db DEX_NINETALES ; pokedex id
-db 73 ; base hp
-db 76 ; base attack
-db 75 ; base defense
-db 100 ; base speed
-db 100 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 75 ; catch rate
-db 178 ; base exp yield
-INCBIN "gfx/pokemon/front/ninetales.pic",0,1 ; 77, sprite dimensions
-dw NinetalesPicFront
-dw NinetalesPicBack
-; attacks known at lvl 0
-db EMBER
-db TAIL_WHIP
-db QUICK_ATTACK
-db ROAR
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 28,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_NINETALES ; pokedex id
+
+	db  73,  76,  75, 100, 100
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 75 ; catch rate
+	db 178 ; base exp
+
+	INCBIN "gfx/pokemon/front/ninetales.pic", 0, 1 ; sprite dimensions
+	dw NinetalesPicFront, NinetalesPicBack
+
+	db EMBER, TAIL_WHIP, QUICK_ATTACK, ROAR ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 15, 20, 28, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/oddish.asm
+++ b/data/pokemon/base_stats/oddish.asm
@@ -1,28 +1,20 @@
-db DEX_ODDISH ; pokedex id
-db 45 ; base hp
-db 50 ; base attack
-db 55 ; base defense
-db 30 ; base speed
-db 75 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 255 ; catch rate
-db 78 ; base exp yield
-INCBIN "gfx/pokemon/front/oddish.pic",0,1 ; 55, sprite dimensions
-dw OddishPicFront
-dw OddishPicBack
-; attacks known at lvl 0
-db ABSORB
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_ODDISH ; pokedex id
+
+	db  45,  50,  55,  30,  75
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 255 ; catch rate
+	db 78 ; base exp
+
+	INCBIN "gfx/pokemon/front/oddish.pic", 0, 1 ; sprite dimensions
+	dw OddishPicFront, OddishPicBack
+
+	db ABSORB, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/omanyte.asm
+++ b/data/pokemon/base_stats/omanyte.asm
@@ -1,28 +1,20 @@
-db DEX_OMANYTE ; pokedex id
-db 35 ; base hp
-db 40 ; base attack
-db 100 ; base defense
-db 35 ; base speed
-db 90 ; base special
-db ROCK ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 120 ; base exp yield
-INCBIN "gfx/pokemon/front/omanyte.pic",0,1 ; 55, sprite dimensions
-dw OmanytePicFront
-dw OmanytePicBack
-; attacks known at lvl 0
-db WATER_GUN
-db WITHDRAW
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_OMANYTE ; pokedex id
+
+	db  35,  40, 100,  35,  90
+	;   hp  atk  def  spd  spc
+
+	db ROCK, WATER ; type
+	db 45 ; catch rate
+	db 120 ; base exp
+
+	INCBIN "gfx/pokemon/front/omanyte.pic", 0, 1 ; sprite dimensions
+	dw OmanytePicFront, OmanytePicBack
+
+	db WATER_GUN, WITHDRAW, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 20, 31, 32, 33, 34, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/omastar.asm
+++ b/data/pokemon/base_stats/omastar.asm
@@ -1,28 +1,20 @@
-db DEX_OMASTAR ; pokedex id
-db 70 ; base hp
-db 60 ; base attack
-db 125 ; base defense
-db 55 ; base speed
-db 115 ; base special
-db ROCK ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 199 ; base exp yield
-INCBIN "gfx/pokemon/front/omastar.pic",0,1 ; 66, sprite dimensions
-dw OmastarPicFront
-dw OmastarPicBack
-; attacks known at lvl 0
-db WATER_GUN
-db WITHDRAW
-db HORN_ATTACK
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,19,20
-	tmlearn 31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_OMASTAR ; pokedex id
+
+	db  70,  60, 125,  55, 115
+	;   hp  atk  def  spd  spc
+
+	db ROCK, WATER ; type
+	db 45 ; catch rate
+	db 199 ; base exp
+
+	INCBIN "gfx/pokemon/front/omastar.pic", 0, 1 ; sprite dimensions
+	dw OmastarPicFront, OmastarPicBack
+
+	db WATER_GUN, WITHDRAW, HORN_ATTACK, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 31, 32, 33, 34, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/onix.asm
+++ b/data/pokemon/base_stats/onix.asm
@@ -1,28 +1,20 @@
-db DEX_ONIX ; pokedex id
-db 35 ; base hp
-db 45 ; base attack
-db 160 ; base defense
-db 70 ; base speed
-db 30 ; base special
-db ROCK ; species type 1
-db GROUND ; species type 2
-db 45 ; catch rate
-db 108 ; base exp yield
-INCBIN "gfx/pokemon/front/onix.pic",0,1 ; 77, sprite dimensions
-dw OnixPicFront
-dw OnixPicBack
-; attacks known at lvl 0
-db TACKLE
-db SCREECH
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,36,40
-	tmlearn 44,47,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_ONIX ; pokedex id
+
+	db  35,  45, 160,  70,  30
+	;   hp  atk  def  spd  spc
+
+	db ROCK, GROUND ; type
+	db 45 ; catch rate
+	db 108 ; base exp
+
+	INCBIN "gfx/pokemon/front/onix.pic", 0, 1 ; sprite dimensions
+	dw OnixPicFront, OnixPicBack
+
+	db TACKLE, SCREECH, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 20, 26, 27, 28, 31, 32, 34, 36, 40, 44, 47, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/paras.asm
+++ b/data/pokemon/base_stats/paras.asm
@@ -1,28 +1,20 @@
-db DEX_PARAS ; pokedex id
-db 35 ; base hp
-db 70 ; base attack
-db 55 ; base defense
-db 25 ; base speed
-db 55 ; base special
-db BUG ; species type 1
-db GRASS ; species type 2
-db 190 ; catch rate
-db 70 ; base exp yield
-INCBIN "gfx/pokemon/front/paras.pic",0,1 ; 55, sprite dimensions
-dw ParasPicFront
-dw ParasPicBack
-; attacks known at lvl 0
-db SCRATCH
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 28,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_PARAS ; pokedex id
+
+	db  35,  70,  55,  25,  55
+	;   hp  atk  def  spd  spc
+
+	db BUG, GRASS ; type
+	db 190 ; catch rate
+	db 70 ; base exp
+
+	INCBIN "gfx/pokemon/front/paras.pic", 0, 1 ; sprite dimensions
+	dw ParasPicFront, ParasPicBack
+
+	db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 20, 21, 22, 28, 31, 32, 33, 34, 40, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/parasect.asm
+++ b/data/pokemon/base_stats/parasect.asm
@@ -1,28 +1,20 @@
-db DEX_PARASECT ; pokedex id
-db 60 ; base hp
-db 95 ; base attack
-db 80 ; base defense
-db 30 ; base speed
-db 80 ; base special
-db BUG ; species type 1
-db GRASS ; species type 2
-db 75 ; catch rate
-db 128 ; base exp yield
-INCBIN "gfx/pokemon/front/parasect.pic",0,1 ; 77, sprite dimensions
-dw ParasectPicFront
-dw ParasectPicBack
-; attacks known at lvl 0
-db SCRATCH
-db STUN_SPORE
-db LEECH_LIFE
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 28,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_PARASECT ; pokedex id
+
+	db  60,  95,  80,  30,  80
+	;   hp  atk  def  spd  spc
+
+	db BUG, GRASS ; type
+	db 75 ; catch rate
+	db 128 ; base exp
+
+	INCBIN "gfx/pokemon/front/parasect.pic", 0, 1 ; sprite dimensions
+	dw ParasectPicFront, ParasectPicBack
+
+	db SCRATCH, STUN_SPORE, LEECH_LIFE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 20, 21, 22, 28, 31, 32, 33, 34, 40, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/persian.asm
+++ b/data/pokemon/base_stats/persian.asm
@@ -1,28 +1,20 @@
-db DEX_PERSIAN ; pokedex id
-db 65 ; base hp
-db 70 ; base attack
-db 60 ; base defense
-db 115 ; base speed
-db 65 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 90 ; catch rate
-db 148 ; base exp yield
-INCBIN "gfx/pokemon/front/persian.pic",0,1 ; 77, sprite dimensions
-dw PersianPicFront
-dw PersianPicBack
-; attacks known at lvl 0
-db SCRATCH
-db GROWL
-db BITE
-db SCREECH
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,15,16
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_PERSIAN ; pokedex id
+
+	db  65,  70,  60, 115,  65
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 90 ; catch rate
+	db 148 ; base exp
+
+	INCBIN "gfx/pokemon/front/persian.pic", 0, 1 ; sprite dimensions
+	dw PersianPicFront, PersianPicBack
+
+	db SCRATCH, GROWL, BITE, SCREECH ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 15, 16, 20, 24, 25, 31, 32, 34, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/pidgeot.asm
+++ b/data/pokemon/base_stats/pidgeot.asm
@@ -1,28 +1,20 @@
-db DEX_PIDGEOT ; pokedex id
-db 83 ; base hp
-db 80 ; base attack
-db 75 ; base defense
-db 91 ; base speed
-db 70 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 172 ; base exp yield
-INCBIN "gfx/pokemon/front/pidgeot.pic",0,1 ; 77, sprite dimensions
-dw PidgeotPicFront
-dw PidgeotPicBack
-; attacks known at lvl 0
-db GUST
-db SAND_ATTACK
-db QUICK_ATTACK
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_PIDGEOT ; pokedex id
+
+	db  83,  80,  75,  91,  70
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 45 ; catch rate
+	db 172 ; base exp
+
+	INCBIN "gfx/pokemon/front/pidgeot.pic", 0, 1 ; sprite dimensions
+	dw PidgeotPicFront, PidgeotPicBack
+
+	db GUST, SAND_ATTACK, QUICK_ATTACK, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 31, 32, 33, 34, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/pidgeotto.asm
+++ b/data/pokemon/base_stats/pidgeotto.asm
@@ -1,28 +1,20 @@
-db DEX_PIDGEOTTO ; pokedex id
-db 63 ; base hp
-db 60 ; base attack
-db 55 ; base defense
-db 71 ; base speed
-db 50 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 120 ; catch rate
-db 113 ; base exp yield
-INCBIN "gfx/pokemon/front/pidgeotto.pic",0,1 ; 66, sprite dimensions
-dw PidgeottoPicFront
-dw PidgeottoPicBack
-; attacks known at lvl 0
-db GUST
-db SAND_ATTACK
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_PIDGEOTTO ; pokedex id
+
+	db  63,  60,  55,  71,  50
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 120 ; catch rate
+	db 113 ; base exp
+
+	INCBIN "gfx/pokemon/front/pidgeotto.pic", 0, 1 ; sprite dimensions
+	dw PidgeottoPicFront, PidgeottoPicBack
+
+	db GUST, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 20, 31, 32, 33, 34, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/pidgey.asm
+++ b/data/pokemon/base_stats/pidgey.asm
@@ -1,28 +1,20 @@
-db DEX_PIDGEY ; pokedex id
-db 40 ; base hp
-db 45 ; base attack
-db 40 ; base defense
-db 56 ; base speed
-db 35 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 255 ; catch rate
-db 55 ; base exp yield
-INCBIN "gfx/pokemon/front/pidgey.pic",0,1 ; 55, sprite dimensions
-dw PidgeyPicFront
-dw PidgeyPicBack
-; attacks known at lvl 0
-db GUST
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_PIDGEY ; pokedex id
+
+	db  40,  45,  40,  56,  35
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 255 ; catch rate
+	db 55 ; base exp
+
+	INCBIN "gfx/pokemon/front/pidgey.pic", 0, 1 ; sprite dimensions
+	dw PidgeyPicFront, PidgeyPicBack
+
+	db GUST, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 20, 31, 32, 33, 34, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/pikachu.asm
+++ b/data/pokemon/base_stats/pikachu.asm
@@ -1,28 +1,20 @@
-db DEX_PIKACHU ; pokedex id
-db 35 ; base hp
-db 55 ; base attack
-db 30 ; base defense
-db 90 ; base speed
-db 50 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 190 ; catch rate
-db 82 ; base exp yield
-INCBIN "gfx/pokemon/front/pikachu.pic",0,1 ; 55, sprite dimensions
-dw PikachuPicFront
-dw PikachuPicBack
-; attacks known at lvl 0
-db THUNDERSHOCK
-db GROWL
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,16
-	tmlearn 17,19,20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,39,40
-	tmlearn 44,45
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_PIKACHU ; pokedex id
+
+	db  35,  55,  30,  90,  50
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 190 ; catch rate
+	db 82 ; base exp
+
+	INCBIN "gfx/pokemon/front/pikachu.pic", 0, 1 ; sprite dimensions
+	dw PikachuPicFront, PikachuPicBack
+
+	db THUNDERSHOCK, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 16, 17, 19, 20, 24, 25, 31, 32, 33, 34, 39, 40, 44, 45, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/pinsir.asm
+++ b/data/pokemon/base_stats/pinsir.asm
@@ -1,28 +1,20 @@
-db DEX_PINSIR ; pokedex id
-db 65 ; base hp
-db 125 ; base attack
-db 100 ; base defense
-db 85 ; base speed
-db 55 ; base special
-db BUG ; species type 1
-db BUG ; species type 2
-db 45 ; catch rate
-db 200 ; base exp yield
-INCBIN "gfx/pokemon/front/pinsir.pic",0,1 ; 77, sprite dimensions
-dw PinsirPicFront
-dw PinsirPicBack
-; attacks known at lvl 0
-db VICEGRIP
-db 0
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 17,19,20
-	tmlearn 31,32
-	tmlearn 34
-	tmlearn 44
-	tmlearn 50,51,54
-db 0 ; padding
+	db DEX_PINSIR ; pokedex id
+
+	db  65, 125, 100,  85,  55
+	;   hp  atk  def  spd  spc
+
+	db BUG, BUG ; type
+	db 45 ; catch rate
+	db 200 ; base exp
+
+	INCBIN "gfx/pokemon/front/pinsir.pic", 0, 1 ; sprite dimensions
+	dw PinsirPicFront, PinsirPicBack
+
+	db VICEGRIP, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 17, 19, 20, 31, 32, 34, 44, 50, 51, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/poliwag.asm
+++ b/data/pokemon/base_stats/poliwag.asm
@@ -1,28 +1,20 @@
-db DEX_POLIWAG ; pokedex id
-db 40 ; base hp
-db 50 ; base attack
-db 40 ; base defense
-db 90 ; base speed
-db 40 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 255 ; catch rate
-db 77 ; base exp yield
-INCBIN "gfx/pokemon/front/poliwag.pic",0,1 ; 55, sprite dimensions
-dw PoliwagPicFront
-dw PoliwagPicBack
-; attacks known at lvl 0
-db BUBBLE
-db 0
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 29,31,32
-	tmlearn 34,40
-	tmlearn 44,46
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_POLIWAG ; pokedex id
+
+	db  40,  50,  40,  90,  40
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 255 ; catch rate
+	db 77 ; base exp
+
+	INCBIN "gfx/pokemon/front/poliwag.pic", 0, 1 ; sprite dimensions
+	dw PoliwagPicFront, PoliwagPicBack
+
+	db BUBBLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 20, 29, 31, 32, 34, 40, 44, 46, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/poliwhirl.asm
+++ b/data/pokemon/base_stats/poliwhirl.asm
@@ -1,28 +1,20 @@
-db DEX_POLIWHIRL ; pokedex id
-db 65 ; base hp
-db 65 ; base attack
-db 65 ; base defense
-db 90 ; base speed
-db 50 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 120 ; catch rate
-db 131 ; base exp yield
-INCBIN "gfx/pokemon/front/poliwhirl.pic",0,1 ; 66, sprite dimensions
-dw PoliwhirlPicFront
-dw PoliwhirlPicBack
-; attacks known at lvl 0
-db BUBBLE
-db HYPNOSIS
-db WATER_GUN
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 17,18,19,20
-	tmlearn 26,27,29,31,32
-	tmlearn 34,35,40
-	tmlearn 44,46
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_POLIWHIRL ; pokedex id
+
+	db  65,  65,  65,  90,  50
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 120 ; catch rate
+	db 131 ; base exp
+
+	INCBIN "gfx/pokemon/front/poliwhirl.pic", 0, 1 ; sprite dimensions
+	dw PoliwhirlPicFront, PoliwhirlPicBack
+
+	db BUBBLE, HYPNOSIS, WATER_GUN, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 26, 27, 29, 31, 32, 34, 35, 40, 44, 46, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/poliwrath.asm
+++ b/data/pokemon/base_stats/poliwrath.asm
@@ -1,28 +1,20 @@
-db DEX_POLIWRATH ; pokedex id
-db 90 ; base hp
-db 85 ; base attack
-db 95 ; base defense
-db 70 ; base speed
-db 70 ; base special
-db WATER ; species type 1
-db FIGHTING ; species type 2
-db 45 ; catch rate
-db 185 ; base exp yield
-INCBIN "gfx/pokemon/front/poliwrath.pic",0,1 ; 77, sprite dimensions
-dw PoliwrathPicFront
-dw PoliwrathPicBack
-; attacks known at lvl 0
-db HYPNOSIS
-db WATER_GUN
-db DOUBLESLAP
-db BODY_SLAM
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20
-	tmlearn 26,27,29,31,32
-	tmlearn 34,35,40
-	tmlearn 44,46
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_POLIWRATH ; pokedex id
+
+	db  90,  85,  95,  70,  70
+	;   hp  atk  def  spd  spc
+
+	db WATER, FIGHTING ; type
+	db 45 ; catch rate
+	db 185 ; base exp
+
+	INCBIN "gfx/pokemon/front/poliwrath.pic", 0, 1 ; sprite dimensions
+	dw PoliwrathPicFront, PoliwrathPicBack
+
+	db HYPNOSIS, WATER_GUN, DOUBLESLAP, BODY_SLAM ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 26, 27, 29, 31, 32, 34, 35, 40, 44, 46, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/ponyta.asm
+++ b/data/pokemon/base_stats/ponyta.asm
@@ -1,28 +1,20 @@
-db DEX_PONYTA ; pokedex id
-db 50 ; base hp
-db 85 ; base attack
-db 55 ; base defense
-db 90 ; base speed
-db 65 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 190 ; catch rate
-db 152 ; base exp yield
-INCBIN "gfx/pokemon/front/ponyta.pic",0,1 ; 66, sprite dimensions
-dw PonytaPicFront
-dw PonytaPicBack
-; attacks known at lvl 0
-db EMBER
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_PONYTA ; pokedex id
+
+	db  50,  85,  55,  90,  65
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 190 ; catch rate
+	db 152 ; base exp
+
+	INCBIN "gfx/pokemon/front/ponyta.pic", 0, 1 ; sprite dimensions
+	dw PonytaPicFront, PonytaPicBack
+
+	db EMBER, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 20, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/porygon.asm
+++ b/data/pokemon/base_stats/porygon.asm
@@ -1,28 +1,20 @@
-db DEX_PORYGON ; pokedex id
-db 65 ; base hp
-db 60 ; base attack
-db 70 ; base defense
-db 40 ; base speed
-db 75 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 45 ; catch rate
-db 130 ; base exp yield
-INCBIN "gfx/pokemon/front/porygon.pic",0,1 ; 66, sprite dimensions
-dw PorygonPicFront
-dw PorygonPicBack
-; attacks known at lvl 0
-db TACKLE
-db SHARPEN
-db CONVERSION
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,13,14,15
-	tmlearn 20,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,39,40
-	tmlearn 44,45,46
-	tmlearn 49,50,55
-db 0 ; padding
+	db DEX_PORYGON ; pokedex id
+
+	db  65,  60,  70,  40,  75
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 45 ; catch rate
+	db 130 ; base exp
+
+	INCBIN "gfx/pokemon/front/porygon.pic", 0, 1 ; sprite dimensions
+	dw PorygonPicFront, PorygonPicBack
+
+	db TACKLE, SHARPEN, CONVERSION, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 13, 14, 15, 20, 24, 25, 29, 30, 31, 32, 33, 34, 39, 40, 44, 45, 46, 49, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/primeape.asm
+++ b/data/pokemon/base_stats/primeape.asm
@@ -1,28 +1,20 @@
-db DEX_PRIMEAPE ; pokedex id
-db 65 ; base hp
-db 105 ; base attack
-db 60 ; base defense
-db 95 ; base speed
-db 60 ; base special
-db FIGHTING ; species type 1
-db FIGHTING ; species type 2
-db 75 ; catch rate
-db 149 ; base exp yield
-INCBIN "gfx/pokemon/front/primeape.pic",0,1 ; 77, sprite dimensions
-dw PrimeapePicFront
-dw PrimeapePicBack
-; attacks known at lvl 0
-db SCRATCH
-db LEER
-db KARATE_CHOP
-db FURY_SWIPES
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15,16
-	tmlearn 17,18,19,20,24
-	tmlearn 25,28,31,32
-	tmlearn 34,35,39,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_PRIMEAPE ; pokedex id
+
+	db  65, 105,  60,  95,  60
+	;   hp  atk  def  spd  spc
+
+	db FIGHTING, FIGHTING ; type
+	db 75 ; catch rate
+	db 149 ; base exp
+
+	INCBIN "gfx/pokemon/front/primeape.pic", 0, 1 ; sprite dimensions
+	dw PrimeapePicFront, PrimeapePicBack
+
+	db SCRATCH, LEER, KARATE_CHOP, FURY_SWIPES ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 16, 17, 18, 19, 20, 24, 25, 28, 31, 32, 34, 35, 39, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/psyduck.asm
+++ b/data/pokemon/base_stats/psyduck.asm
@@ -1,28 +1,20 @@
-db DEX_PSYDUCK ; pokedex id
-db 50 ; base hp
-db 52 ; base attack
-db 48 ; base defense
-db 55 ; base speed
-db 50 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 190 ; catch rate
-db 80 ; base exp yield
-INCBIN "gfx/pokemon/front/psyduck.pic",0,1 ; 55, sprite dimensions
-dw PsyduckPicFront
-dw PsyduckPicBack
-; attacks known at lvl 0
-db SCRATCH
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,16
-	tmlearn 17,18,19,20
-	tmlearn 28,31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_PSYDUCK ; pokedex id
+
+	db  50,  52,  48,  55,  50
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 190 ; catch rate
+	db 80 ; base exp
+
+	INCBIN "gfx/pokemon/front/psyduck.pic", 0, 1 ; sprite dimensions
+	dw PsyduckPicFront, PsyduckPicBack
+
+	db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 28, 31, 32, 34, 39, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/raichu.asm
+++ b/data/pokemon/base_stats/raichu.asm
@@ -1,28 +1,20 @@
-db DEX_RAICHU ; pokedex id
-db 60 ; base hp
-db 90 ; base attack
-db 55 ; base defense
-db 100 ; base speed
-db 90 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 75 ; catch rate
-db 122 ; base exp yield
-INCBIN "gfx/pokemon/front/raichu.pic",0,1 ; 77, sprite dimensions
-dw RaichuPicFront
-dw RaichuPicBack
-; attacks known at lvl 0
-db THUNDERSHOCK
-db GROWL
-db THUNDER_WAVE
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,15,16
-	tmlearn 17,19,20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,39,40
-	tmlearn 44,45
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_RAICHU ; pokedex id
+
+	db  60,  90,  55, 100,  90
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 75 ; catch rate
+	db 122 ; base exp
+
+	INCBIN "gfx/pokemon/front/raichu.pic", 0, 1 ; sprite dimensions
+	dw RaichuPicFront, RaichuPicBack
+
+	db THUNDERSHOCK, GROWL, THUNDER_WAVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 15, 16, 17, 19, 20, 24, 25, 31, 32, 33, 34, 39, 40, 44, 45, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/rapidash.asm
+++ b/data/pokemon/base_stats/rapidash.asm
@@ -1,28 +1,20 @@
-db DEX_RAPIDASH ; pokedex id
-db 65 ; base hp
-db 100 ; base attack
-db 70 ; base defense
-db 105 ; base speed
-db 80 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 60 ; catch rate
-db 192 ; base exp yield
-INCBIN "gfx/pokemon/front/rapidash.pic",0,1 ; 77, sprite dimensions
-dw RapidashPicFront
-dw RapidashPicBack
-; attacks known at lvl 0
-db EMBER
-db TAIL_WHIP
-db STOMP
-db GROWL
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_RAPIDASH ; pokedex id
+
+	db  65, 100,  70, 105,  80
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 60 ; catch rate
+	db 192 ; base exp
+
+	INCBIN "gfx/pokemon/front/rapidash.pic", 0, 1 ; sprite dimensions
+	dw RapidashPicFront, RapidashPicBack
+
+	db EMBER, TAIL_WHIP, STOMP, GROWL ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 15, 20, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/raticate.asm
+++ b/data/pokemon/base_stats/raticate.asm
@@ -1,28 +1,20 @@
-db DEX_RATICATE ; pokedex id
-db 55 ; base hp
-db 81 ; base attack
-db 60 ; base defense
-db 97 ; base speed
-db 50 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 90 ; catch rate
-db 116 ; base exp yield
-INCBIN "gfx/pokemon/front/raticate.pic",0,1 ; 66, sprite dimensions
-dw RaticatePicFront
-dw RaticatePicBack
-; attacks known at lvl 0
-db TACKLE
-db TAIL_WHIP
-db QUICK_ATTACK
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20,24
-	tmlearn 25,28,31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_RATICATE ; pokedex id
+
+	db  55,  81,  60,  97,  50
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 90 ; catch rate
+	db 116 ; base exp
+
+	INCBIN "gfx/pokemon/front/raticate.pic", 0, 1 ; sprite dimensions
+	dw RaticatePicFront, RaticatePicBack
+
+	db TACKLE, TAIL_WHIP, QUICK_ATTACK, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 15, 20, 24, 25, 28, 31, 32, 34, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/rattata.asm
+++ b/data/pokemon/base_stats/rattata.asm
@@ -1,28 +1,20 @@
-db DEX_RATTATA ; pokedex id
-db 30 ; base hp
-db 56 ; base attack
-db 35 ; base defense
-db 72 ; base speed
-db 25 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 255 ; catch rate
-db 57 ; base exp yield
-INCBIN "gfx/pokemon/front/rattata.pic",0,1 ; 55, sprite dimensions
-dw RattataPicFront
-dw RattataPicBack
-; attacks known at lvl 0
-db TACKLE
-db TAIL_WHIP
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,14
-	tmlearn 20,24
-	tmlearn 25,28,31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_RATTATA ; pokedex id
+
+	db  30,  56,  35,  72,  25
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 255 ; catch rate
+	db 57 ; base exp
+
+	INCBIN "gfx/pokemon/front/rattata.pic", 0, 1 ; sprite dimensions
+	dw RattataPicFront, RattataPicBack
+
+	db TACKLE, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 14, 20, 24, 25, 28, 31, 32, 34, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/rhydon.asm
+++ b/data/pokemon/base_stats/rhydon.asm
@@ -1,28 +1,20 @@
-db DEX_RHYDON ; pokedex id
-db 105 ; base hp
-db 130 ; base attack
-db 120 ; base defense
-db 40 ; base speed
-db 45 ; base special
-db GROUND ; species type 1
-db ROCK ; species type 2
-db 60 ; catch rate
-db 204 ; base exp yield
-INCBIN "gfx/pokemon/front/rhydon.pic",0,1 ; 77, sprite dimensions
-dw RhydonPicFront
-dw RhydonPicBack
-; attacks known at lvl 0
-db HORN_ATTACK
-db STOMP
-db TAIL_WHIP
-db FURY_ATTACK
-db 5 ; growth rate
-; learnset
-	tmlearn 1,5,6,7,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20,24
-	tmlearn 25,26,27,28,31,32
-	tmlearn 34,38,40
-	tmlearn 44,48
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_RHYDON ; pokedex id
+
+	db 105, 130, 120,  40,  45
+	;   hp  atk  def  spd  spc
+
+	db GROUND, ROCK ; type
+	db 60 ; catch rate
+	db 204 ; base exp
+
+	INCBIN "gfx/pokemon/front/rhydon.pic", 0, 1 ; sprite dimensions
+	dw RhydonPicFront, RhydonPicBack
+
+	db HORN_ATTACK, STOMP, TAIL_WHIP, FURY_ATTACK ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 31, 32, 34, 38, 40, 44, 48, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/rhyhorn.asm
+++ b/data/pokemon/base_stats/rhyhorn.asm
@@ -1,28 +1,20 @@
-db DEX_RHYHORN ; pokedex id
-db 80 ; base hp
-db 85 ; base attack
-db 95 ; base defense
-db 25 ; base speed
-db 30 ; base special
-db GROUND ; species type 1
-db ROCK ; species type 2
-db 120 ; catch rate
-db 135 ; base exp yield
-INCBIN "gfx/pokemon/front/rhyhorn.pic",0,1 ; 77, sprite dimensions
-dw RhyhornPicFront
-dw RhyhornPicBack
-; attacks known at lvl 0
-db HORN_ATTACK
-db 0
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10
-	tmlearn 20,24
-	tmlearn 25,26,27,28,31,32
-	tmlearn 34,38,40
-	tmlearn 44,48
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_RHYHORN ; pokedex id
+
+	db  80,  85,  95,  25,  30
+	;   hp  atk  def  spd  spc
+
+	db GROUND, ROCK ; type
+	db 120 ; catch rate
+	db 135 ; base exp
+
+	INCBIN "gfx/pokemon/front/rhyhorn.pic", 0, 1 ; sprite dimensions
+	dw RhyhornPicFront, RhyhornPicBack
+
+	db HORN_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 20, 24, 25, 26, 27, 28, 31, 32, 34, 38, 40, 44, 48, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/sandshrew.asm
+++ b/data/pokemon/base_stats/sandshrew.asm
@@ -1,28 +1,20 @@
-db DEX_SANDSHREW ; pokedex id
-db 50 ; base hp
-db 75 ; base attack
-db 85 ; base defense
-db 40 ; base speed
-db 30 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 255 ; catch rate
-db 93 ; base exp yield
-INCBIN "gfx/pokemon/front/sandshrew.pic",0,1 ; 55, sprite dimensions
-dw SandshrewPicFront
-dw SandshrewPicBack
-; attacks known at lvl 0
-db SCRATCH
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10
-	tmlearn 17,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,39,40
-	tmlearn 44,48
-	tmlearn 50,51,54
-db 0 ; padding
+	db DEX_SANDSHREW ; pokedex id
+
+	db  50,  75,  85,  40,  30
+	;   hp  atk  def  spd  spc
+
+	db GROUND, GROUND ; type
+	db 255 ; catch rate
+	db 93 ; base exp
+
+	INCBIN "gfx/pokemon/front/sandshrew.pic", 0, 1 ; sprite dimensions
+	dw SandshrewPicFront, SandshrewPicBack
+
+	db SCRATCH, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 17, 19, 20, 26, 27, 28, 31, 32, 34, 39, 40, 44, 48, 50, 51, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/sandslash.asm
+++ b/data/pokemon/base_stats/sandslash.asm
@@ -1,28 +1,20 @@
-db DEX_SANDSLASH ; pokedex id
-db 75 ; base hp
-db 100 ; base attack
-db 110 ; base defense
-db 65 ; base speed
-db 55 ; base special
-db GROUND ; species type 1
-db GROUND ; species type 2
-db 90 ; catch rate
-db 163 ; base exp yield
-INCBIN "gfx/pokemon/front/sandslash.pic",0,1 ; 66, sprite dimensions
-dw SandslashPicFront
-dw SandslashPicBack
-; attacks known at lvl 0
-db SCRATCH
-db SAND_ATTACK
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 17,19,20
-	tmlearn 26,27,28,31,32
-	tmlearn 34,39,40
-	tmlearn 44,48
-	tmlearn 50,51,54
-db 0 ; padding
+	db DEX_SANDSLASH ; pokedex id
+
+	db  75, 100, 110,  65,  55
+	;   hp  atk  def  spd  spc
+
+	db GROUND, GROUND ; type
+	db 90 ; catch rate
+	db 163 ; base exp
+
+	INCBIN "gfx/pokemon/front/sandslash.pic", 0, 1 ; sprite dimensions
+	dw SandslashPicFront, SandslashPicBack
+
+	db SCRATCH, SAND_ATTACK, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 17, 19, 20, 26, 27, 28, 31, 32, 34, 39, 40, 44, 48, 50, 51, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/scyther.asm
+++ b/data/pokemon/base_stats/scyther.asm
@@ -1,28 +1,20 @@
-db DEX_SCYTHER ; pokedex id
-db 70 ; base hp
-db 110 ; base attack
-db 80 ; base defense
-db 105 ; base speed
-db 55 ; base special
-db BUG ; species type 1
-db FLYING ; species type 2
-db 45 ; catch rate
-db 187 ; base exp yield
-INCBIN "gfx/pokemon/front/scyther.pic",0,1 ; 77, sprite dimensions
-dw ScytherPicFront
-dw ScytherPicBack
-; attacks known at lvl 0
-db QUICK_ATTACK
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_SCYTHER ; pokedex id
+
+	db  70, 110,  80, 105,  55
+	;   hp  atk  def  spd  spc
+
+	db BUG, FLYING ; type
+	db 45 ; catch rate
+	db 187 ; base exp
+
+	INCBIN "gfx/pokemon/front/scyther.pic", 0, 1 ; sprite dimensions
+	dw ScytherPicFront, ScytherPicBack
+
+	db QUICK_ATTACK, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 15, 20, 31, 32, 34, 39, 40, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/seadra.asm
+++ b/data/pokemon/base_stats/seadra.asm
@@ -1,28 +1,20 @@
-db DEX_SEADRA ; pokedex id
-db 55 ; base hp
-db 65 ; base attack
-db 95 ; base defense
-db 85 ; base speed
-db 95 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 75 ; catch rate
-db 155 ; base exp yield
-INCBIN "gfx/pokemon/front/seadra.pic",0,1 ; 66, sprite dimensions
-dw SeadraPicFront
-dw SeadraPicBack
-; attacks known at lvl 0
-db BUBBLE
-db SMOKESCREEN
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_SEADRA ; pokedex id
+
+	db  55,  65,  95,  85,  95
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 75 ; catch rate
+	db 155 ; base exp
+
+	INCBIN "gfx/pokemon/front/seadra.pic", 0, 1 ; sprite dimensions
+	dw SeadraPicFront, SeadraPicBack
+
+	db BUBBLE, SMOKESCREEN, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 11, 12, 13, 14, 15, 20, 31, 32, 34, 39, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/seaking.asm
+++ b/data/pokemon/base_stats/seaking.asm
@@ -1,28 +1,20 @@
-db DEX_SEAKING ; pokedex id
-db 80 ; base hp
-db 92 ; base attack
-db 65 ; base defense
-db 68 ; base speed
-db 80 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 60 ; catch rate
-db 170 ; base exp yield
-INCBIN "gfx/pokemon/front/seaking.pic",0,1 ; 77, sprite dimensions
-dw SeakingPicFront
-dw SeakingPicBack
-; attacks known at lvl 0
-db PECK
-db TAIL_WHIP
-db SUPERSONIC
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_SEAKING ; pokedex id
+
+	db  80,  92,  65,  68,  80
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 60 ; catch rate
+	db 170 ; base exp
+
+	INCBIN "gfx/pokemon/front/seaking.pic", 0, 1 ; sprite dimensions
+	dw SeakingPicFront, SeakingPicBack
+
+	db PECK, TAIL_WHIP, SUPERSONIC, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 9, 10, 11, 12, 13, 14, 15, 20, 31, 32, 34, 39, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/seel.asm
+++ b/data/pokemon/base_stats/seel.asm
@@ -1,28 +1,20 @@
-db DEX_SEEL ; pokedex id
-db 65 ; base hp
-db 45 ; base attack
-db 55 ; base defense
-db 45 ; base speed
-db 70 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 190 ; catch rate
-db 100 ; base exp yield
-INCBIN "gfx/pokemon/front/seel.pic",0,1 ; 66, sprite dimensions
-dw SeelPicFront
-dw SeelPicBack
-; attacks known at lvl 0
-db HEADBUTT
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,11,12,13,14,16
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_SEEL ; pokedex id
+
+	db  65,  45,  55,  45,  70
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 190 ; catch rate
+	db 100 ; base exp
+
+	INCBIN "gfx/pokemon/front/seel.pic", 0, 1 ; sprite dimensions
+	dw SeelPicFront, SeelPicBack
+
+	db HEADBUTT, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 20, 31, 32, 34, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/shellder.asm
+++ b/data/pokemon/base_stats/shellder.asm
@@ -1,28 +1,20 @@
-db DEX_SHELLDER ; pokedex id
-db 30 ; base hp
-db 65 ; base attack
-db 100 ; base defense
-db 40 ; base speed
-db 45 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 190 ; catch rate
-db 97 ; base exp yield
-INCBIN "gfx/pokemon/front/shellder.pic",0,1 ; 55, sprite dimensions
-dw ShellderPicFront
-dw ShellderPicBack
-; attacks known at lvl 0
-db TACKLE
-db WITHDRAW
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20
-	tmlearn 30,31,32
-	tmlearn 33,34,36,39
-	tmlearn 44,47
-	tmlearn 49,50,53
-db 0 ; padding
+	db DEX_SHELLDER ; pokedex id
+
+	db  30,  65, 100,  40,  45
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 190 ; catch rate
+	db 97 ; base exp
+
+	INCBIN "gfx/pokemon/front/shellder.pic", 0, 1 ; sprite dimensions
+	dw ShellderPicFront, ShellderPicBack
+
+	db TACKLE, WITHDRAW, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 11, 12, 13, 14, 20, 30, 31, 32, 33, 34, 36, 39, 44, 47, 49, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/slowbro.asm
+++ b/data/pokemon/base_stats/slowbro.asm
@@ -1,28 +1,20 @@
-db DEX_SLOWBRO ; pokedex id
-db 95 ; base hp
-db 75 ; base attack
-db 110 ; base defense
-db 30 ; base speed
-db 80 ; base special
-db WATER ; species type 1
-db PSYCHIC ; species type 2
-db 75 ; catch rate
-db 164 ; base exp yield
-INCBIN "gfx/pokemon/front/slowbro.pic",0,1 ; 77, sprite dimensions
-dw SlowbroPicFront
-dw SlowbroPicBack
-; attacks known at lvl 0
-db CONFUSION
-db DISABLE
-db HEADBUTT
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20
-	tmlearn 26,27,28,29,30,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44,45,46
-	tmlearn 49,50,53,54,55
-db 0 ; padding
+	db DEX_SLOWBRO ; pokedex id
+
+	db  95,  75, 110,  30,  80
+	;   hp  atk  def  spd  spc
+
+	db WATER, PSYCHIC ; type
+	db 75 ; catch rate
+	db 164 ; base exp
+
+	INCBIN "gfx/pokemon/front/slowbro.pic", 0, 1 ; sprite dimensions
+	dw SlowbroPicFront, SlowbroPicBack
+
+	db CONFUSION, DISABLE, HEADBUTT, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 40, 44, 45, 46, 49, 50, 53, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/slowpoke.asm
+++ b/data/pokemon/base_stats/slowpoke.asm
@@ -1,28 +1,20 @@
-db DEX_SLOWPOKE ; pokedex id
-db 90 ; base hp
-db 65 ; base attack
-db 65 ; base defense
-db 15 ; base speed
-db 40 ; base special
-db WATER ; species type 1
-db PSYCHIC ; species type 2
-db 190 ; catch rate
-db 99 ; base exp yield
-INCBIN "gfx/pokemon/front/slowpoke.pic",0,1 ; 55, sprite dimensions
-dw SlowpokePicFront
-dw SlowpokePicBack
-; attacks known at lvl 0
-db CONFUSION
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14,16
-	tmlearn 20
-	tmlearn 26,27,28,29,30,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44,45,46
-	tmlearn 49,50,53,54,55
-db 0 ; padding
+	db DEX_SLOWPOKE ; pokedex id
+
+	db  90,  65,  65,  15,  40
+	;   hp  atk  def  spd  spc
+
+	db WATER, PSYCHIC ; type
+	db 190 ; catch rate
+	db 99 ; base exp
+
+	INCBIN "gfx/pokemon/front/slowpoke.pic", 0, 1 ; sprite dimensions
+	dw SlowpokePicFront, SlowpokePicBack
+
+	db CONFUSION, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 16, 20, 26, 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 40, 44, 45, 46, 49, 50, 53, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/snorlax.asm
+++ b/data/pokemon/base_stats/snorlax.asm
@@ -1,28 +1,20 @@
-db DEX_SNORLAX ; pokedex id
-db 160 ; base hp
-db 110 ; base attack
-db 65 ; base defense
-db 30 ; base speed
-db 65 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 25 ; catch rate
-db 154 ; base exp yield
-INCBIN "gfx/pokemon/front/snorlax.pic",0,1 ; 77, sprite dimensions
-dw SnorlaxPicFront
-dw SnorlaxPicBack
-; attacks known at lvl 0
-db HEADBUTT
-db AMNESIA
-db REST
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15,16
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,26,27,29,31,32
-	tmlearn 33,34,35,36,38,40
-	tmlearn 44,46,48
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_SNORLAX ; pokedex id
+
+	db 160, 110,  65,  30,  65
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 25 ; catch rate
+	db 154 ; base exp
+
+	INCBIN "gfx/pokemon/front/snorlax.pic", 0, 1 ; sprite dimensions
+	dw SnorlaxPicFront, SnorlaxPicBack
+
+	db HEADBUTT, AMNESIA, REST, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26, 27, 29, 31, 32, 33, 34, 35, 36, 38, 40, 44, 46, 48, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/spearow.asm
+++ b/data/pokemon/base_stats/spearow.asm
@@ -1,28 +1,20 @@
-db DEX_SPEAROW ; pokedex id
-db 40 ; base hp
-db 60 ; base attack
-db 30 ; base defense
-db 70 ; base speed
-db 31 ; base special
-db NORMAL ; species type 1
-db FLYING ; species type 2
-db 255 ; catch rate
-db 58 ; base exp yield
-INCBIN "gfx/pokemon/front/spearow.pic",0,1 ; 55, sprite dimensions
-dw SpearowPicFront
-dw SpearowPicBack
-; attacks known at lvl 0
-db PECK
-db GROWL
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 34,39
-	tmlearn 43,44
-	tmlearn 50,52
-db 0 ; padding
+	db DEX_SPEAROW ; pokedex id
+
+	db  40,  60,  30,  70,  31
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, FLYING ; type
+	db 255 ; catch rate
+	db 58 ; base exp
+
+	INCBIN "gfx/pokemon/front/spearow.pic", 0, 1 ; sprite dimensions
+	dw SpearowPicFront, SpearowPicBack
+
+	db PECK, GROWL, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 20, 31, 32, 34, 39, 43, 44, 50, 52
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/squirtle.asm
+++ b/data/pokemon/base_stats/squirtle.asm
@@ -1,28 +1,20 @@
-db DEX_SQUIRTLE ; pokedex id
-db 44 ; base hp
-db 48 ; base attack
-db 65 ; base defense
-db 43 ; base speed
-db 50 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 66 ; base exp yield
-INCBIN "gfx/pokemon/front/squirtle.pic",0,1 ; 55, sprite dimensions
-dw SquirtlePicFront
-dw SquirtlePicBack
-; attacks known at lvl 0
-db TACKLE
-db TAIL_WHIP
-db 0
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 17,18,19,20
-	tmlearn 28,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_SQUIRTLE ; pokedex id
+
+	db  44,  48,  65,  43,  50
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 45 ; catch rate
+	db 66 ; base exp
+
+	INCBIN "gfx/pokemon/front/squirtle.pic", 0, 1 ; sprite dimensions
+	dw SquirtlePicFront, SquirtlePicBack
+
+	db TACKLE, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 28, 31, 32, 33, 34, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/starmie.asm
+++ b/data/pokemon/base_stats/starmie.asm
@@ -1,28 +1,20 @@
-db DEX_STARMIE ; pokedex id
-db 60 ; base hp
-db 75 ; base attack
-db 85 ; base defense
-db 115 ; base speed
-db 100 ; base special
-db WATER ; species type 1
-db PSYCHIC ; species type 2
-db 60 ; catch rate
-db 207 ; base exp yield
-INCBIN "gfx/pokemon/front/starmie.pic",0,1 ; 66, sprite dimensions
-dw StarmiePicFront
-dw StarmiePicBack
-; attacks known at lvl 0
-db TACKLE
-db WATER_GUN
-db HARDEN
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,39,40
-	tmlearn 44,45,46
-	tmlearn 49,50,53,55
-db 0 ; padding
+	db DEX_STARMIE ; pokedex id
+
+	db  60,  75,  85, 115, 100
+	;   hp  atk  def  spd  spc
+
+	db WATER, PSYCHIC ; type
+	db 60 ; catch rate
+	db 207 ; base exp
+
+	INCBIN "gfx/pokemon/front/starmie.pic", 0, 1 ; sprite dimensions
+	dw StarmiePicFront, StarmiePicBack
+
+	db TACKLE, WATER_GUN, HARDEN, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 11, 12, 13, 14, 15, 20, 24, 25, 29, 30, 31, 32, 33, 34, 39, 40, 44, 45, 46, 49, 50, 53, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/staryu.asm
+++ b/data/pokemon/base_stats/staryu.asm
@@ -1,28 +1,20 @@
-db DEX_STARYU ; pokedex id
-db 30 ; base hp
-db 45 ; base attack
-db 55 ; base defense
-db 85 ; base speed
-db 70 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 225 ; catch rate
-db 106 ; base exp yield
-INCBIN "gfx/pokemon/front/staryu.pic",0,1 ; 66, sprite dimensions
-dw StaryuPicFront
-dw StaryuPicBack
-; attacks known at lvl 0
-db TACKLE
-db 0
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,39,40
-	tmlearn 44,45,46
-	tmlearn 49,50,53,55
-db 0 ; padding
+	db DEX_STARYU ; pokedex id
+
+	db  30,  45,  55,  85,  70
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 225 ; catch rate
+	db 106 ; base exp
+
+	INCBIN "gfx/pokemon/front/staryu.pic", 0, 1 ; sprite dimensions
+	dw StaryuPicFront, StaryuPicBack
+
+	db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 11, 12, 13, 14, 20, 24, 25, 29, 30, 31, 32, 33, 34, 39, 40, 44, 45, 46, 49, 50, 53, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/tangela.asm
+++ b/data/pokemon/base_stats/tangela.asm
@@ -1,28 +1,20 @@
-db DEX_TANGELA ; pokedex id
-db 65 ; base hp
-db 55 ; base attack
-db 115 ; base defense
-db 60 ; base speed
-db 100 ; base special
-db GRASS ; species type 1
-db GRASS ; species type 2
-db 45 ; catch rate
-db 166 ; base exp yield
-INCBIN "gfx/pokemon/front/tangela.pic",0,1 ; 66, sprite dimensions
-dw TangelaPicFront
-dw TangelaPicBack
-; attacks known at lvl 0
-db CONSTRICT
-db BIND
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 34,40
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_TANGELA ; pokedex id
+
+	db  65,  55, 115,  60, 100
+	;   hp  atk  def  spd  spc
+
+	db GRASS, GRASS ; type
+	db 45 ; catch rate
+	db 166 ; base exp
+
+	INCBIN "gfx/pokemon/front/tangela.pic", 0, 1 ; sprite dimensions
+	dw TangelaPicFront, TangelaPicBack
+
+	db CONSTRICT, BIND, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 20, 21, 22, 31, 32, 34, 40, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/tauros.asm
+++ b/data/pokemon/base_stats/tauros.asm
@@ -1,28 +1,20 @@
-db DEX_TAUROS ; pokedex id
-db 75 ; base hp
-db 100 ; base attack
-db 95 ; base defense
-db 110 ; base speed
-db 70 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 45 ; catch rate
-db 211 ; base exp yield
-INCBIN "gfx/pokemon/front/tauros.pic",0,1 ; 77, sprite dimensions
-dw TaurosPicFront
-dw TaurosPicBack
-; attacks known at lvl 0
-db TACKLE
-db 0
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 6,7,8
-	tmlearn 9,10,13,14,15
-	tmlearn 20,24
-	tmlearn 25,26,27,31,32
-	tmlearn 34,38,40
-	tmlearn 44
-	tmlearn 50,54
-db 0 ; padding
+	db DEX_TAUROS ; pokedex id
+
+	db  75, 100,  95, 110,  70
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 45 ; catch rate
+	db 211 ; base exp
+
+	INCBIN "gfx/pokemon/front/tauros.pic", 0, 1 ; sprite dimensions
+	dw TaurosPicFront, TaurosPicBack
+
+	db TACKLE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 7, 8, 9, 10, 13, 14, 15, 20, 24, 25, 26, 27, 31, 32, 34, 38, 40, 44, 50, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/tentacool.asm
+++ b/data/pokemon/base_stats/tentacool.asm
@@ -1,28 +1,20 @@
-db DEX_TENTACOOL ; pokedex id
-db 40 ; base hp
-db 40 ; base attack
-db 35 ; base defense
-db 70 ; base speed
-db 100 ; base special
-db WATER ; species type 1
-db POISON ; species type 2
-db 190 ; catch rate
-db 105 ; base exp yield
-INCBIN "gfx/pokemon/front/tentacool.pic",0,1 ; 55, sprite dimensions
-dw TentacoolPicFront
-dw TentacoolPicBack
-; attacks known at lvl 0
-db ACID
-db 0
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10,11,12,13,14
-	tmlearn 20,21
-	tmlearn 31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,51,53
-db 0 ; padding
+	db DEX_TENTACOOL ; pokedex id
+
+	db  40,  40,  35,  70, 100
+	;   hp  atk  def  spd  spc
+
+	db WATER, POISON ; type
+	db 190 ; catch rate
+	db 105 ; base exp
+
+	INCBIN "gfx/pokemon/front/tentacool.pic", 0, 1 ; sprite dimensions
+	dw TentacoolPicFront, TentacoolPicBack
+
+	db ACID, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 11, 12, 13, 14, 20, 21, 31, 32, 33, 34, 40, 44, 50, 51, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/tentacruel.asm
+++ b/data/pokemon/base_stats/tentacruel.asm
@@ -1,28 +1,20 @@
-db DEX_TENTACRUEL ; pokedex id
-db 80 ; base hp
-db 70 ; base attack
-db 65 ; base defense
-db 100 ; base speed
-db 120 ; base special
-db WATER ; species type 1
-db POISON ; species type 2
-db 60 ; catch rate
-db 205 ; base exp yield
-INCBIN "gfx/pokemon/front/tentacruel.pic",0,1 ; 66, sprite dimensions
-dw TentacruelPicFront
-dw TentacruelPicBack
-; attacks known at lvl 0
-db ACID
-db SUPERSONIC
-db WRAP
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20,21
-	tmlearn 31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,51,53
-db 0 ; padding
+	db DEX_TENTACRUEL ; pokedex id
+
+	db  80,  70,  65, 100, 120
+	;   hp  atk  def  spd  spc
+
+	db WATER, POISON ; type
+	db 60 ; catch rate
+	db 205 ; base exp
+
+	INCBIN "gfx/pokemon/front/tentacruel.pic", 0, 1 ; sprite dimensions
+	dw TentacruelPicFront, TentacruelPicBack
+
+	db ACID, SUPERSONIC, WRAP, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 11, 12, 13, 14, 15, 20, 21, 31, 32, 33, 34, 40, 44, 50, 51, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/vaporeon.asm
+++ b/data/pokemon/base_stats/vaporeon.asm
@@ -1,28 +1,20 @@
-db DEX_VAPOREON ; pokedex id
-db 130 ; base hp
-db 65 ; base attack
-db 60 ; base defense
-db 65 ; base speed
-db 110 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 196 ; base exp yield
-INCBIN "gfx/pokemon/front/vaporeon.pic",0,1 ; 66, sprite dimensions
-dw VaporeonPicFront
-dw VaporeonPicBack
-; attacks known at lvl 0
-db TACKLE
-db SAND_ATTACK
-db QUICK_ATTACK
-db WATER_GUN
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 20
-	tmlearn 31,32
-	tmlearn 33,34,39,40
-	tmlearn 44
-	tmlearn 50,53
-db 0 ; padding
+	db DEX_VAPOREON ; pokedex id
+
+	db 130,  65,  60,  65, 110
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 45 ; catch rate
+	db 196 ; base exp
+
+	INCBIN "gfx/pokemon/front/vaporeon.pic", 0, 1 ; sprite dimensions
+	dw VaporeonPicFront, VaporeonPicBack
+
+	db TACKLE, SAND_ATTACK, QUICK_ATTACK, WATER_GUN ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 11, 12, 13, 14, 15, 20, 31, 32, 33, 34, 39, 40, 44, 50, 53
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/venomoth.asm
+++ b/data/pokemon/base_stats/venomoth.asm
@@ -1,28 +1,20 @@
-db DEX_VENOMOTH ; pokedex id
-db 70 ; base hp
-db 65 ; base attack
-db 60 ; base defense
-db 90 ; base speed
-db 90 ; base special
-db BUG ; species type 1
-db POISON ; species type 2
-db 75 ; catch rate
-db 138 ; base exp yield
-INCBIN "gfx/pokemon/front/venomoth.pic",0,1 ; 77, sprite dimensions
-dw VenomothPicFront
-dw VenomothPicBack
-; attacks known at lvl 0
-db TACKLE
-db DISABLE
-db POISONPOWDER
-db LEECH_LIFE
-db 0 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 29,30,31,32
-	tmlearn 33,34,39
-	tmlearn 44,46
-	tmlearn 50
-db 0 ; padding
+	db DEX_VENOMOTH ; pokedex id
+
+	db  70,  65,  60,  90,  90
+	;   hp  atk  def  spd  spc
+
+	db BUG, POISON ; type
+	db 75 ; catch rate
+	db 138 ; base exp
+
+	INCBIN "gfx/pokemon/front/venomoth.pic", 0, 1 ; sprite dimensions
+	dw VenomothPicFront, VenomothPicBack
+
+	db TACKLE, DISABLE, POISONPOWDER, LEECH_LIFE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 21, 22, 29, 30, 31, 32, 33, 34, 39, 44, 46, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/venonat.asm
+++ b/data/pokemon/base_stats/venonat.asm
@@ -1,28 +1,20 @@
-db DEX_VENONAT ; pokedex id
-db 60 ; base hp
-db 55 ; base attack
-db 50 ; base defense
-db 45 ; base speed
-db 40 ; base special
-db BUG ; species type 1
-db POISON ; species type 2
-db 190 ; catch rate
-db 75 ; base exp yield
-INCBIN "gfx/pokemon/front/venonat.pic",0,1 ; 55, sprite dimensions
-dw VenonatPicFront
-dw VenonatPicBack
-; attacks known at lvl 0
-db TACKLE
-db DISABLE
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 29,31,32
-	tmlearn 33,34
-	tmlearn 44,46
-	tmlearn 50
-db 0 ; padding
+	db DEX_VENONAT ; pokedex id
+
+	db  60,  55,  50,  45,  40
+	;   hp  atk  def  spd  spc
+
+	db BUG, POISON ; type
+	db 190 ; catch rate
+	db 75 ; base exp
+
+	INCBIN "gfx/pokemon/front/venonat.pic", 0, 1 ; sprite dimensions
+	dw VenonatPicFront, VenonatPicBack
+
+	db TACKLE, DISABLE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 10, 20, 21, 22, 29, 31, 32, 33, 34, 44, 46, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/venusaur.asm
+++ b/data/pokemon/base_stats/venusaur.asm
@@ -1,28 +1,20 @@
-db DEX_VENUSAUR ; pokedex id
-db 80 ; base hp
-db 82 ; base attack
-db 83 ; base defense
-db 80 ; base speed
-db 100 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 208 ; base exp yield
-INCBIN "gfx/pokemon/front/venusaur.pic",0,1 ; 77, sprite dimensions
-dw VenusaurPicFront
-dw VenusaurPicBack
-; attacks known at lvl 0
-db TACKLE
-db GROWL
-db LEECH_SEED
-db VINE_WHIP
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_VENUSAUR ; pokedex id
+
+	db  80,  82,  83,  80, 100
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 45 ; catch rate
+	db 208 ; base exp
+
+	INCBIN "gfx/pokemon/front/venusaur.pic", 0, 1 ; sprite dimensions
+	dw VenusaurPicFront, VenusaurPicBack
+
+	db TACKLE, GROWL, LEECH_SEED, VINE_WHIP ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/victreebel.asm
+++ b/data/pokemon/base_stats/victreebel.asm
@@ -1,28 +1,20 @@
-db DEX_VICTREEBEL ; pokedex id
-db 80 ; base hp
-db 105 ; base attack
-db 65 ; base defense
-db 70 ; base speed
-db 100 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 191 ; base exp yield
-INCBIN "gfx/pokemon/front/victreebel.pic",0,1 ; 77, sprite dimensions
-dw VictreebelPicFront
-dw VictreebelPicBack
-; attacks known at lvl 0
-db SLEEP_POWDER
-db STUN_SPORE
-db ACID
-db RAZOR_LEAF
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_VICTREEBEL ; pokedex id
+
+	db  80, 105,  65,  70, 100
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 45 ; catch rate
+	db 191 ; base exp
+
+	INCBIN "gfx/pokemon/front/victreebel.pic", 0, 1 ; sprite dimensions
+	dw VictreebelPicFront, VictreebelPicBack
+
+	db SLEEP_POWDER, STUN_SPORE, ACID, RAZOR_LEAF ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/vileplume.asm
+++ b/data/pokemon/base_stats/vileplume.asm
@@ -1,28 +1,20 @@
-db DEX_VILEPLUME ; pokedex id
-db 75 ; base hp
-db 80 ; base attack
-db 85 ; base defense
-db 50 ; base speed
-db 100 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 45 ; catch rate
-db 184 ; base exp yield
-INCBIN "gfx/pokemon/front/vileplume.pic",0,1 ; 77, sprite dimensions
-dw VileplumePicFront
-dw VileplumePicBack
-; attacks known at lvl 0
-db STUN_SPORE
-db SLEEP_POWDER
-db ACID
-db PETAL_DANCE
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6,8
-	tmlearn 9,10,15
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_VILEPLUME ; pokedex id
+
+	db  75,  80,  85,  50, 100
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 45 ; catch rate
+	db 184 ; base exp
+
+	INCBIN "gfx/pokemon/front/vileplume.pic", 0, 1 ; sprite dimensions
+	dw VileplumePicFront, VileplumePicBack
+
+	db STUN_SPORE, SLEEP_POWDER, ACID, PETAL_DANCE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 8, 9, 10, 15, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/voltorb.asm
+++ b/data/pokemon/base_stats/voltorb.asm
@@ -1,28 +1,20 @@
-db DEX_VOLTORB ; pokedex id
-db 40 ; base hp
-db 30 ; base attack
-db 50 ; base defense
-db 100 ; base speed
-db 55 ; base special
-db ELECTRIC ; species type 1
-db ELECTRIC ; species type 2
-db 190 ; catch rate
-db 103 ; base exp yield
-INCBIN "gfx/pokemon/front/voltorb.pic",0,1 ; 55, sprite dimensions
-dw VoltorbPicFront
-dw VoltorbPicBack
-; attacks known at lvl 0
-db TACKLE
-db SCREECH
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 9
-	tmlearn 20,24
-	tmlearn 25,30,31,32
-	tmlearn 33,34,36,39
-	tmlearn 44,45,47
-	tmlearn 50,55
-db 0 ; padding
+	db DEX_VOLTORB ; pokedex id
+
+	db  40,  30,  50, 100,  55
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, ELECTRIC ; type
+	db 190 ; catch rate
+	db 103 ; base exp
+
+	INCBIN "gfx/pokemon/front/voltorb.pic", 0, 1 ; sprite dimensions
+	dw VoltorbPicFront, VoltorbPicBack
+
+	db TACKLE, SCREECH, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 9, 20, 24, 25, 30, 31, 32, 33, 34, 36, 39, 44, 45, 47, 50, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/vulpix.asm
+++ b/data/pokemon/base_stats/vulpix.asm
@@ -1,28 +1,20 @@
-db DEX_VULPIX ; pokedex id
-db 38 ; base hp
-db 41 ; base attack
-db 40 ; base defense
-db 65 ; base speed
-db 65 ; base special
-db FIRE ; species type 1
-db FIRE ; species type 2
-db 190 ; catch rate
-db 63 ; base exp yield
-INCBIN "gfx/pokemon/front/vulpix.pic",0,1 ; 66, sprite dimensions
-dw VulpixPicFront
-dw VulpixPicBack
-; attacks known at lvl 0
-db EMBER
-db TAIL_WHIP
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6,8
-	tmlearn 9,10
-	tmlearn 20
-	tmlearn 28,31,32
-	tmlearn 33,34,38,39,40
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_VULPIX ; pokedex id
+
+	db  38,  41,  40,  65,  65
+	;   hp  atk  def  spd  spc
+
+	db FIRE, FIRE ; type
+	db 190 ; catch rate
+	db 63 ; base exp
+
+	INCBIN "gfx/pokemon/front/vulpix.pic", 0, 1 ; sprite dimensions
+	dw VulpixPicFront, VulpixPicBack
+
+	db EMBER, TAIL_WHIP, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 8, 9, 10, 20, 28, 31, 32, 33, 34, 38, 39, 40, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/wartortle.asm
+++ b/data/pokemon/base_stats/wartortle.asm
@@ -1,28 +1,20 @@
-db DEX_WARTORTLE ; pokedex id
-db 59 ; base hp
-db 63 ; base attack
-db 80 ; base defense
-db 58 ; base speed
-db 65 ; base special
-db WATER ; species type 1
-db WATER ; species type 2
-db 45 ; catch rate
-db 143 ; base exp yield
-INCBIN "gfx/pokemon/front/wartortle.pic",0,1 ; 66, sprite dimensions
-dw WartortlePicFront
-dw WartortlePicBack
-; attacks known at lvl 0
-db TACKLE
-db TAIL_WHIP
-db BUBBLE
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14
-	tmlearn 17,18,19,20
-	tmlearn 28,31,32
-	tmlearn 33,34,40
-	tmlearn 44
-	tmlearn 50,53,54
-db 0 ; padding
+	db DEX_WARTORTLE ; pokedex id
+
+	db  59,  63,  80,  58,  65
+	;   hp  atk  def  spd  spc
+
+	db WATER, WATER ; type
+	db 45 ; catch rate
+	db 143 ; base exp
+
+	INCBIN "gfx/pokemon/front/wartortle.pic", 0, 1 ; sprite dimensions
+	dw WartortlePicFront, WartortlePicBack
+
+	db TACKLE, TAIL_WHIP, BUBBLE, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 20, 28, 31, 32, 33, 34, 40, 44, 50, 53, 54
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/weedle.asm
+++ b/data/pokemon/base_stats/weedle.asm
@@ -1,28 +1,20 @@
-db DEX_WEEDLE ; pokedex id
-db 40 ; base hp
-db 35 ; base attack
-db 30 ; base defense
-db 50 ; base speed
-db 20 ; base special
-db BUG ; species type 1
-db POISON ; species type 2
-db 255 ; catch rate
-db 52 ; base exp yield
-INCBIN "gfx/pokemon/front/weedle.pic",0,1 ; 55, sprite dimensions
-dw WeedlePicFront
-dw WeedlePicBack
-; attacks known at lvl 0
-db POISON_STING
-db STRING_SHOT
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-	tmlearn 0
-db 0 ; padding
+	db DEX_WEEDLE ; pokedex id
+
+	db  40,  35,  30,  50,  20
+	;   hp  atk  def  spd  spc
+
+	db BUG, POISON ; type
+	db 255 ; catch rate
+	db 52 ; base exp
+
+	INCBIN "gfx/pokemon/front/weedle.pic", 0, 1 ; sprite dimensions
+	dw WeedlePicFront, WeedlePicBack
+
+	db POISON_STING, STRING_SHOT, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/weepinbell.asm
+++ b/data/pokemon/base_stats/weepinbell.asm
@@ -1,28 +1,20 @@
-db DEX_WEEPINBELL ; pokedex id
-db 65 ; base hp
-db 90 ; base attack
-db 50 ; base defense
-db 55 ; base speed
-db 85 ; base special
-db GRASS ; species type 1
-db POISON ; species type 2
-db 120 ; catch rate
-db 151 ; base exp yield
-INCBIN "gfx/pokemon/front/weepinbell.pic",0,1 ; 66, sprite dimensions
-dw WeepinbellPicFront
-dw WeepinbellPicBack
-; attacks known at lvl 0
-db VINE_WHIP
-db GROWTH
-db WRAP
-db 0
-db 3 ; growth rate
-; learnset
-	tmlearn 3,6
-	tmlearn 9,10
-	tmlearn 20,21,22
-	tmlearn 31,32
-	tmlearn 33,34
-	tmlearn 44
-	tmlearn 50,51
-db 0 ; padding
+	db DEX_WEEPINBELL ; pokedex id
+
+	db  65,  90,  50,  55,  85
+	;   hp  atk  def  spd  spc
+
+	db GRASS, POISON ; type
+	db 120 ; catch rate
+	db 151 ; base exp
+
+	INCBIN "gfx/pokemon/front/weepinbell.pic", 0, 1 ; sprite dimensions
+	dw WeepinbellPicFront, WeepinbellPicBack
+
+	db VINE_WHIP, GROWTH, WRAP, NO_MOVE ; level 1 learnset
+	db 3 ; growth rate
+
+	; tm/hm learnset
+	tmhm 3, 6, 9, 10, 20, 21, 22, 31, 32, 33, 34, 44, 50, 51
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/weezing.asm
+++ b/data/pokemon/base_stats/weezing.asm
@@ -1,28 +1,20 @@
-db DEX_WEEZING ; pokedex id
-db 65 ; base hp
-db 90 ; base attack
-db 120 ; base defense
-db 60 ; base speed
-db 85 ; base special
-db POISON ; species type 1
-db POISON ; species type 2
-db 60 ; catch rate
-db 173 ; base exp yield
-INCBIN "gfx/pokemon/front/weezing.pic",0,1 ; 77, sprite dimensions
-dw WeezingPicFront
-dw WeezingPicBack
-; attacks known at lvl 0
-db TACKLE
-db SMOG
-db SLUDGE
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 6
-	tmlearn 15
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 34,36,38
-	tmlearn 44,47
-	tmlearn 50
-db 0 ; padding
+	db DEX_WEEZING ; pokedex id
+
+	db  65,  90, 120,  60,  85
+	;   hp  atk  def  spd  spc
+
+	db POISON, POISON ; type
+	db 60 ; catch rate
+	db 173 ; base exp
+
+	INCBIN "gfx/pokemon/front/weezing.pic", 0, 1 ; sprite dimensions
+	dw WeezingPicFront, WeezingPicBack
+
+	db TACKLE, SMOG, SLUDGE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 6, 15, 20, 24, 25, 31, 32, 34, 36, 38, 44, 47, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/wigglytuff.asm
+++ b/data/pokemon/base_stats/wigglytuff.asm
@@ -1,28 +1,20 @@
-db DEX_WIGGLYTUFF ; pokedex id
-db 140 ; base hp
-db 70 ; base attack
-db 45 ; base defense
-db 45 ; base speed
-db 50 ; base special
-db NORMAL ; species type 1
-db NORMAL ; species type 2
-db 50 ; catch rate
-db 109 ; base exp yield
-INCBIN "gfx/pokemon/front/wigglytuff.pic",0,1 ; 66, sprite dimensions
-dw WigglytuffPicFront
-dw WigglytuffPicBack
-; attacks known at lvl 0
-db SING
-db DISABLE
-db DEFENSE_CURL
-db DOUBLESLAP
-db 4 ; growth rate
-; learnset
-	tmlearn 1,5,6,8
-	tmlearn 9,10,11,12,13,14,15
-	tmlearn 17,18,19,20,22,24
-	tmlearn 25,29,30,31,32
-	tmlearn 33,34,38,40
-	tmlearn 44,45,46
-	tmlearn 49,50,54,55
-db 0 ; padding
+	db DEX_WIGGLYTUFF ; pokedex id
+
+	db 140,  70,  45,  45,  50
+	;   hp  atk  def  spd  spc
+
+	db NORMAL, NORMAL ; type
+	db 50 ; catch rate
+	db 109 ; base exp
+
+	INCBIN "gfx/pokemon/front/wigglytuff.pic", 0, 1 ; sprite dimensions
+	dw WigglytuffPicFront, WigglytuffPicBack
+
+	db SING, DISABLE, DEFENSE_CURL, DOUBLESLAP ; level 1 learnset
+	db 4 ; growth rate
+
+	; tm/hm learnset
+	tmhm 1, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 24, 25, 29, 30, 31, 32, 33, 34, 38, 40, 44, 45, 46, 49, 50, 54, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/zapdos.asm
+++ b/data/pokemon/base_stats/zapdos.asm
@@ -1,28 +1,20 @@
-db DEX_ZAPDOS ; pokedex id
-db 90 ; base hp
-db 90 ; base attack
-db 85 ; base defense
-db 100 ; base speed
-db 125 ; base special
-db ELECTRIC ; species type 1
-db FLYING ; species type 2
-db 3 ; catch rate
-db 216 ; base exp yield
-INCBIN "gfx/pokemon/front/zapdos.pic",0,1 ; 77, sprite dimensions
-dw ZapdosPicFront
-dw ZapdosPicBack
-; attacks known at lvl 0
-db THUNDERSHOCK
-db DRILL_PECK
-db 0
-db 0
-db 5 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10,15
-	tmlearn 20,24
-	tmlearn 25,31,32
-	tmlearn 33,34,39
-	tmlearn 43,44,45
-	tmlearn 50,52,55
-db 0 ; padding
+	db DEX_ZAPDOS ; pokedex id
+
+	db  90,  90,  85, 100, 125
+	;   hp  atk  def  spd  spc
+
+	db ELECTRIC, FLYING ; type
+	db 3 ; catch rate
+	db 216 ; base exp
+
+	INCBIN "gfx/pokemon/front/zapdos.pic", 0, 1 ; sprite dimensions
+	dw ZapdosPicFront, ZapdosPicBack
+
+	db THUNDERSHOCK, DRILL_PECK, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 5 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 15, 20, 24, 25, 31, 32, 33, 34, 39, 43, 44, 45, 50, 52, 55
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/base_stats/zubat.asm
+++ b/data/pokemon/base_stats/zubat.asm
@@ -1,28 +1,20 @@
-db DEX_ZUBAT ; pokedex id
-db 40 ; base hp
-db 45 ; base attack
-db 35 ; base defense
-db 55 ; base speed
-db 40 ; base special
-db POISON ; species type 1
-db FLYING ; species type 2
-db 255 ; catch rate
-db 54 ; base exp yield
-INCBIN "gfx/pokemon/front/zubat.pic",0,1 ; 55, sprite dimensions
-dw ZubatPicFront
-dw ZubatPicBack
-; attacks known at lvl 0
-db LEECH_LIFE
-db 0
-db 0
-db 0
-db 0 ; growth rate
-; learnset
-	tmlearn 2,4,6
-	tmlearn 9,10
-	tmlearn 20,21
-	tmlearn 31,32
-	tmlearn 34,39
-	tmlearn 44
-	tmlearn 50
-db 0 ; padding
+	db DEX_ZUBAT ; pokedex id
+
+	db  40,  45,  35,  55,  40
+	;   hp  atk  def  spd  spc
+
+	db POISON, FLYING ; type
+	db 255 ; catch rate
+	db 54 ; base exp
+
+	INCBIN "gfx/pokemon/front/zubat.pic", 0, 1 ; sprite dimensions
+	dw ZubatPicFront, ZubatPicBack
+
+	db LEECH_LIFE, NO_MOVE, NO_MOVE, NO_MOVE ; level 1 learnset
+	db 0 ; growth rate
+
+	; tm/hm learnset
+	tmhm 2, 4, 6, 9, 10, 20, 21, 31, 32, 34, 39, 44, 50
+	; end
+
+	db 0 ; padding
--- a/data/pokemon/mew.asm
+++ b/data/pokemon/mew.asm
@@ -11,4 +11,5 @@
 MewPicFront:: INCBIN "gfx/pokemon/front/mew.pic"
 MewPicBack::  INCBIN "gfx/pokemon/back/mewb.pic"
 
+MewBaseStats::
 INCLUDE "data/pokemon/base_stats/mew.asm"
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -16,15 +16,33 @@
 coins equs "bcd2"
 money equs "bcd3"
 
-tmlearn: MACRO
-x = 0
-	REPT _NARG
-IF \1 != 0
-x = x | (1 << ((\1 - 1) % 8))
-ENDC
-	SHIFT
-	ENDR
-	db x
+tmhm: MACRO
+; used in data/pokemon/base_stats/*.asm
+_tms1 = 0 ; TM01-TM24 (24)
+_tms2 = 0 ; TM25-TM48 (24)
+_tms3 = 0 ; TM49-TM50 + HM01-HM05 (7/24)
+rept _NARG
+	if (\1) < 24 + 1
+_tms1 = _tms1 | (1 << ((\1) - 1))
+	elif (\1) < 48 + 1
+_tms2 = _tms2 | (1 << ((\1) - 1 - 24))
+	else
+_tms3 = _tms3 | (1 << ((\1) - 1 - 48))
+	endc
+	shift
+endr
+rept 3 ; TM01-TM24 (24/24)
+	db _tms1 & $ff
+_tms1 = _tms1 >> 8
+endr
+rept 3 ; TM25-TM48 (24/24)
+	db _tms2 & $ff
+_tms2 = _tms2 >> 8
+endr
+rept 1 ; TM49-TM50 + HM01-HM05 (7/8)
+	db _tms3 & $ff
+_tms3 = _tms3 >> 8
+endr
 ENDM