У меня почему-то все зеркалится, хотя должно только поворачиваться.
Потому что у Вас матрица "поворота" к новым координатным осям имеет детерминант, равный
а не
То есть, наряду с поворотом происходит ещё и отражение (или инверсия): смена правой системы координат на левую.
Чтобы получился чистый поворот, поменяйте местами ваши, например, первый и третий собственные векторы (при этом в вашей диагонализованной матрице
собственные значения
расположатся в порядке возрастания). Ведь нумерация собственных значений и принадлежащих им собственных векторов - дело произвольное; поэтому следует проверять получающийся знак детерминанта матрицы перехода к новым осям, и при необходимости менять нумерацию, если требуется исключить инверсию системы координат.