Heh, I forgot how fun it is writing a movement system. This is what I've settled with and I'm pretty happy with it. It's not long, but the detects are a little more complicated than I had expected them to be. Ya, it's GS1, but I'll convert it to GS2 sooner or later, that's pretty easy.

Kick it up to 160/16(or higher, if you dare), the wall detection is flawless, and in my opinion, pretty simple. The higher you set it though, the larger the loop will get, so be careful with that.