You shouldn't need the 45.158MHz clock because DSD512 uses 22.5792MHz. Going that high will double the amount of work in outputting clocks on XS1 implementations (and half the amunt of time for sample exchange with USB). The code will connect MCLK directly to the clock output if divider == 1.

Saying that, I am fairly sure others have managed to get the 4xMHz MCLK working on XS1 if you need to go this route for other reasons (eg. DAC requirement).

DSD native is easier - the data rate is half of DoP. That will make it easier for sure.