you really don't need to think about the displacement weirdness beyond the initial change to the VE tables.

OBD2 calibrations have their spark tables stored as a cylinder airmass vs RPM table, which doesn't translate directly to MAP vs RPM. so, that route isn't as easy as it could be. you would need to have some idea of what airmass is being calculated throughout the entire RPM and MAP range, which could be done through a lot of datalogging a vehicle that has the engine you want data from. alternatively, assuming you have a calibration and can read out the VE table it contains, you could apply assumed corrections(like 70*F incoming air and 100kPa barometric pressure) and end up with what is essentially a table that displays airmass in a RPM vs MAP format, which you could then figure out where the spark advance tables translate to.... with a spreadsheet, it isn't too bad to calculate, but it does require a very dialed-in VE table to be accurate.

seems like the M62 would be fairly restrictive for the 3500 top-end... 96+ supercharged 3800s use a M90 and their heads don't flow nearly as well as the 3500 heads do. they end up running really small pulleys and push the gen3 and gen5 M90s out of their peak efficiency islands pretty quickly, a 3500 top end with an even smaller blower seems like it would suffer even more unless you're planning on running a fairly low amount of boost.