Instead of setting the origin of the sprites (fluttershy), instead assign it to the bottom for the 'Player' as well as fluttershy. This way, all animation's contact point is consistent.
One bug I noticed with your game right now is in the Flying state, your player will randomly teleport, so sometimes it causes problems later when the player runs out of stamina and lands back.