Thanks for the feedback!
I thought about using Box2D, but I ended up designing my own calculations for the grappling cord for the exact reason you mentioned. If you're curious how I did it, I'm going to make the game open source after a few more revisions, so hold tight!
On the topic of the controls, you're totally right, I designed the keyboard controls horribly (as it currently stands, you can't even aim diagonally). I'm happy with the way the controller turned out, but I would like a keyboard controls to feel just as nice. I'm thinking I'll make WASD the movement control, and then I'll use the mouse to aim and fire the grapple.
The level select needs a lot of revision too. I would like to get the font that is used everywhere else in the menu into a proper bitmap font, so that I can keep the font consistent throughout. I also would much rather make it a grid of little icons, so I'll play around with it in the next few weeks.