I'm still working out the kinks, but essentially i just added an extra Z variable. When you jump, it subtracts how many pixels high you are from the player sprite drawing routine. I gave solid tiles a height attribute and when you run into a solid wall it compares the two heights. If you're high enough in the air to pass over it it lets you go. But jumping doesn't touch the player's X/Y coordinates on the map.
And the shorter jumps looked a little whimpy, but i agree that it's too high. I've still gotta finetune that part. And it might look like he's jumping higher because my sprite routine doesn't have Y clipping yet

I'm also starting to think up some ideas for drawing the graffiti. Maybe you'd have to press a button over and over and the tag will slowly show up (i was thinking of randomly setting bits in a mask until the whole mask is set up). I'll have to play around with it a bit but i think it'd be a nice effect. Plus it'd take longer to do larger pieces, which'd make sense and would make it more difficult. Still a little unsure about the game aspect, though.
And for an NPC system, i was thinking i could maybe generate some NPCs on the fly (or spawn them based on location) and give them a timer. When they appear on screen, the timer gets reset, and when they're offscreen the timer counts down. When it reaches 0, the NPC is deleted. That way i can hopefully avoid too much slowdown with lots of NPCs.
Anyway, just some thoughts floating in my head for now.
EDIT: Oh, and i love writing tilemaps
