Unfortunately it's not completely custom. I've never been able to get slopes to work right, so I just modify the built-in behavior to do what I want.
I improved two of the problems that you mentioned. I wasn't using the Ninja sprite for the platform object, and since per-pixel collisions wouldn't work, I went with bounding box. This led to the collision box being to big because there's a bit of blank space above the Ninja I'm too lazy to take out.
I also fixed up the wall-jumping. First off, you have to be holding in the direction of the wall to grab on. Also, you have to be holding a direction key to jump off, this allows you to let go by the hitting the jump key without hitting any other buttons.
I haven't worked on the teleporting problem, but I'll fix that soon.
Anyways, here's the improved version. The jump key is now "S": Ninja Game Build 2