A trick for advanced collision detection is to have separate colider sprites.
Make an invisible / transparent sprite and "track" your character with this new sprite, with the appropriate offset. You of course only need to check the "foot overlay" for collisions then.
Another performance booster is to use box collision for everything, then if this collision is true, process it further with per-pixel or other critical / specific testing.
For collision groups, set your background tiles in group 1, your platform tiles into group 2 , enemies into group 3 and so on. I think you can have 16 groups and when you test your "feet" you only test against group 2 in this case to see if he has collided with a platform sprite.
Cheers