Вам нужно посмотреть свойство transform-origin, которое позволяет сместить ось вращения блока. По умолчанию она у него в центре. Сейчас вы вращаете блоки за счёт того, что изначально их сместили по осям, а сместив ось вращения на соответствующее ребро вам не нужно будет translate. Думаю это так же решит вашу проблему.