Part of #116901. The remaining change was to change the BMesh iteration to not use the extractor callbacks.