(cherry picked from commit ef4d37c73f31048dd74efee2c63fa08b92608f87)
(cherry picked from commit cb27d5ca8230707b276763c0ec20e586203144c9)
Leaving xpr unflattened since we want modularity to replace that with xpc (XPluginComposite) at some point (cherry picked from commit 48e6a75fbdd0fee86e364f02ace83f20b312a2b2)