Normal transformation back to world space involves taking the inverse transform. This was why it wasn't working correctly. Reverting..