As for the diagonal cannon thing, I got a tutorial level on the IRC which showed how to make diagonal cannons when I was asking for help on exactly the same thing (I don't know who made it, though). Here it is:
https://www.sendspace.com/file/unjljb
Just a note: you can't use this gimmick below a ceiling as it will cause the cannonball to rebound (noblockcollision=1 doesn't work in this instance).