AzagThoth, к сожалению ваш вариант у меня тормозит, но это конечно мой комп старый уже.
И ещё один вариант. Сделал без твинов, а анимация кубика сделана в ручную, пару вариантов который выбирается рандомно.

Код AS1/AS2:
var scale = 20;//расстояние между клетками
for (var i = 0; i < 25; i++) {
for (var j = 0; j < 50; j++) {
var c = _root.attachMovie("clip", i + "_" + j, _root.getNextHighestDepth());
c._x = 10 + j * scale;
c._y = 10 + i * scale;
}
}
fps.swapDepths(_root.getNextHighestDepth());
_root.onMouseMove = function() {
var mJ = Math.floor(_xmouse / scale);
var mI = Math.floor(_ymouse / scale);
for (var tempI = mI - 1; tempI <= mI + 1; tempI++) {
for (var tempJ = mJ - 1; tempJ <= mJ + 1; tempJ++) {
var tc:String = tempI + "_" + tempJ;
var rand = [1, 31, 61, 91];
var randCheck = rand[random(rand.length - 1)];
if (_root[tc]._currentframe == 1) {
_root[tc]._rotation = 90 * random(5);
_root[tc].gotoAndPlay(randCheck);
}
}
}
updateAfterEvent();
};