On the order of around 10,000 entities each with their own tables with full high-res updates being performed on maybe up to 200 entities per-frame with lower res updates running in the background. The core overlapping properties (animation, physics, etc.) that all entities would need will be struct members while the specific properties would belong to the hash-table. However, these specific properties would mainly be manipulated through a scripting language, where most/all of their high level logic gets done, and not on the game engine side. Each entity has a lua script, which gets called for updates/message handling - every time it gets called the dictionary is pushed onto the lua stack as a table (and popped off when it wraps up) in effect exposing and allowing the creation of unique entity properties from the script-side.
The problem would be needing a way to create hundreds of highly customized entity permutations whose properties can be referred to using strings. I can't think of any other way to do this other than to keep 10,000 lua states running to preserve their global variables. In a general sense, is there anything conceptually flawed about using hash tables for 10000+ entities in a game? Whenever I can't find much info on something like this I just assume it's for some good reason.