I'm not exactly sure about these monsters, but are they supposed to move on all surfaces? If so, make an invisible sprite that sets the Crawler's variable on contact. Like so:
if Crawler collides with WallCollider
set Crawler variable Direction to Up
if Crawler Direction = Up
I'm not a coder but I hope you understood what I tried there. You just need a sprite for all surfaces the crawler can touch and then set its direction according to it. Maybe add the sprite to the corners only so the Crawler won't touch two of them at the same time and get confused.