Someone else on gamedev.stackexchange already suggested only making collision boxes on the feet, which I wanted to try avoiding, but now is probably the only option.
am afraid that's the only solution, when faking 3D in games you must do something like that, for example in a Top-Down rpg (pokémon) when your player hit the top of a Tree it will not stop moving, cause it's not possible to hit the top of the tree in real life, so the only way for the player to stop is when he hit the bottom of the tree, and i think it's the same for you, if you look in those two pictures, you'll know that the only "simple" way to realize that is by checking the collision in the bottom 1st, then look for the other
another thing , i think you could (or must) check the level of your entities, and i think it's better to do it on the bottom too,
suppose you want to shoot an enemy, you must be in the same level to be able to hit him (unless you can shoot in many direction)
so IMHO, the best solution is to make a grid, if the 2 objects are in the same row then you can check for collision,
why you want to avoid making collision boxes on the feet ?