Отвечая на вторую половину вопроса, одиночная матрица 4x4 вполне способна удерживать масштабирование, перемещение и вращение. Поэтому, если вы не наложите особые ограничения на то, какие матрицы 4x4 вы можете обрабатывать, один 4x4 - это то, что вам нужно.
Что касается вращения вокруг произвольного вектора (как вы просите в комментариях), посмотрите раздел «Вращение вокруг произвольного вектора» в статье в Википедии, на которую ссылается yabcok. Вы захотите расширить это до матрицы 4x4, дополнив ее нулями, за исключением позиции 4,4 (масштабирование), которая должна быть равна единице. Затем используйте умножение матриц с масштабированием / трансляцией 4x4, чтобы сгенерировать новую матрицу 4x4.