I made a new class that handles the "low level" static object data. I guess it's easy to add in the current object base class which previously had this data. The reason for this change is that I can use the basic data without creating an object and also restrict the low level data behind an abstract public interface.
You know, this was an idea that I just invented, after several years of programming. It's game object's object type as a type and holds some generic information about objects. It may sound like overdoing, but I don't think so. I think this will make the object system easier to use in future, if I need to add some properties to objects or create new game object types.
I'm just not sure what to do with inherited object's special data. Functions in the base class or retrieving the data from object type's data?