For future reference, if the -D and -o parameters don't fix an issue like this, just check and make sure that the "Timeout Minutes" for the external program to be run is long enough.
If mc2xml or any external program run from within MC doesn't complete within the Timeout Minutes, MC will kill it and in the case of mc2xml, the XMLTV file will not be written. If running mc2xml externally to MC works, but internally doesn't, I would look at this parameter first. Make it very big and see if mc2xml works, and if it does, reduce it as much as needed to ensure mc2xml completes successfully every time.
I can't remember how much logging mc2xml can do, but you should be able to work out how long it takes to run from the logs, or based on the start time of mc2xml, and the time stamp on the XMLTV file for a successful run.