That error is likely because the hash table stores its entries in a String => Object (string to object) association, so you get getting an object back from the hashes[0]["rotations"] and then trying to access a list variable.
Try something like so:
(hashes[0]["rotations"] as List).Count
You basically just have to remember to cast things as you go to ensure the compiler knows what you are using at any given point.
Hope that makes sense.