A discussion in my Physics class today (don't ask) prompted me to give this idea a concentrated effort. After several straight hours of hacking, I managed to create the following:

Spoiler:

It's pretty basic at the moment. For example, I haven't added support for ledges, running, or biking, I haven't tested what happens when the player changes maps, the following NPC can't be passed through, and I'm sure there are a bunch of other bugs I have yet to discover as well. However, I'm still happy with it. ^_^