DataMapper does something similar, but does not use mattr_accessor (Rails-only, maybe?). They call it descendants which matches the ancestors terminology quite well I think.

https://github.com/datamapper/dm-core/blob/master/lib/dm-core/model.rb#L46
https://github.com/datamapper/dm-core/blob/master/lib/dm-core/model.rb#L210