Ensure that the tilt calculation returns the relative rotation, not the absolute rotation - added some extra normalisation steps just in case :D