So the best practice is not to chain services. How complex are each of the internally routed MPGW services. Could they all be consolidated into one service with a slew of processing rules using match actions to select the Rule by URI? From a performance perspective the payload only needs to be parsed once. But the selection process is sequential. Using the XML file is probably the most efficient as the selection process is direct using XPATH.
There are pros and cons to both methods. But using the XML file I would say is the most common and easiest to manage.