If you don't need to use title and description for ElggObject you don't have to. Creating a top level type just to remove those fields is a lot of work with no gain.
I would almost never advise someone to create a new entity type, and then only after we've done profiling and have identified metadata fields that would be better served as attributes in the type table. The implementation would be basically copying any of the core type objects and creating corresponding tables with attributes that match those defined in the object.
Again, only in a very rare case would this be a solution.
I am thinking to extend ElggEntity because, for my requirements, the 'title' and 'description' properties of ElggObject are not required.
So, when creating new entity type, is it good to create the required properties as new type table(like how ElggObject does for 'title' and 'description' properties) or just allow them to be saved as metadata(without declaration in initializeAttributes )?
I think mandatory properties can be declared in the new entity type, other than this, is there any advantages/disadvantages in saving properties as new type table or as metadata.