20 moving blocks, belonging to 20 positions.
Eight corner blocks have eight possible positions, and 12 side blocks have 12 possible positions.
Rotating one face at a time will cause eight blocks to move.
So much for mathematical principles.
The linear solution can be calculated as a Rubik's cube solution.