I agree that d3 would have been better, if he wanted Bxf2+ you should have let him have it; I generally find that rook and pawn for knight and bishop is [when played solidly] a worthwhile swap; although a rook is 'worth' more, two pieces are still more than one.
I don't know if I would have played 16. Rf8+, although looking at the game, it is one of the stronger moves, Qf3 and Qh5 both look threatening but I don't think are fast enough to justify giving up the d knight.
The mate was nice though, I'm not sure you could have made it any faster. I considered 16. Qf3 but this would easily be countered by Bc5.
Good analysis 
as a sort of training i decided to do an analysis of one of my games. and here it is:
i have not added the name of my opponent because i was not sure it would be respectfull to do so. (i've send him my analysis though)
anyways it probably contains a lot of useless stuff, but i'd love some feedback :).
what bugs me about this game is that it took me very long to find the mate, and even then it was on the very last move. does anyone know a good way of practicing this?