Ah I notice you use a check on Sprite height, but that's a constant size of the image rather than position. Also, I notice you use exact Y positions, fine for testing but if you want it to work in every case you should be able to use the (Enemy.Y - Enemy.Height) conditions I mentioned.
As for hotspots, in the sprite editor you can click the red target icon to place them. They are used as the "origin" of a sprite from a X and Y position view.
For example, an object with a hotspot in the bottom middle when placed at X and Y 0,0 will be halfway into the level, and entirely above it. This is a little hard for me to explain without more images, so you might need to play with it a bit more.