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