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