Ну я в свое время не перемножал, когда вылезла рекурсия просто создал список трансформаций и при новом вложении просто добавлял инвертированную матрицу в список, а в конце просто трансформировал объект в цикле foreach матрицами из получившегося списка, ну тут думаю примерно тоже самое что и перемножение, но с матрицами я не особо знаком так что в такие дебри лезть не стал. Тут кстати важную роль играет в какой последовательность идут преобразования.