Optimize hangables code

This commit also fixes a bug where you wouldn't be able to put hangables
on a wall with a blocking ground tile.