Python 1 already had metaclasses (I remebmer it as "the Don Beaudry hack" or "the Don Beaudry hook", depended on who you asked)
Are Python 3 metaclasses a significant change?
There are a number of improvements, including how you define them and the things you can do with them. Some of these tie in with other language features, e.g typing.NamedTuple[1].
There is also PEP 487[2], which means you can do more without needing a metaclass.
1. https://docs.python.org/3/library/typing.html#typing.NamedTu...
IMO make a clean cut else it will never end.