If I'm right you can lower the amount of nodes by combining some stuff.
I've also put the shader at the top of the chain which lowers the computer load on my limited MacBook Pro.
Joining the modified comp.
Beside Azy's methods, I'm not a mesh pro so I may be very wrong but if the mesh has no sub-meshes or child objects it should be doable but somehow is tougher.
You could use Karl Henkel's custom Parabox nodes (check the Node Gallery) and use Get Mesh Values to isolate the points /vertices you'd want and somehow cut the vertices lists and recreate new objects to apply your rotations to.
However if it's really about a Rubik Cube, you could easily create one using the Arrange 3D Objects in Grid and apply transformations to the child cube copies
This will analyse the ambient loudness and smooth the sensitivity of the audio input over some seconds to allow the composition to look nice (lights not to be too small or too big) and analyse the frequencies wether the ambient volume is high or low. May be better methods to do so, any other method welcome.