Completely new approach proposed as https://github.com/hibernate/hibernate-orm/pull/684
(overwriting this proposal).

Not the size of a patch I'd like to see for a backport, but doesn't look like dangerous? Also it does simplify quite some code.

I guess the name "Persister" for the new interface is questionable :-) please suggest? I saw you created something similar and named it _org.hibernate.persister.walking.spi.EntityDefinition_ but I couldn't use that verbatim.