Defense levels up by the number of times you get hit, not by damage so the best way to train defense is to fight a monster who can hit a lot of times in 1 attack. I'm not sure if this is a glitch, but, you actually level up at the same rate as the level you started with when the battle began. So if you started at 50 defense and last a really long time, you will lvl up at the same rate, so if it takes 30 hits to level up, then after another 30 hits you will level up again. This also works for Hp and Mp as well. For MP, you get experience for every successful hit, so something like wind cutter lvl 3 works good.