The usual method to resolve this is to use the .spice files, not the .cdl files. There is another way, which is to set the extraction style in magic to "extract style ngspice(orig)", which will extract transistors as "M" devices. The problem arises from differences between spectre and ngspice; in ngspice the models are definitely subcircuits, so I think that all LVS should be done on netlists using subcircuits for the primitive devices, and if there are no such netlists, then we should be making them available.