@User: Sure. It is really just a matter of having a "cifinput" style that reads the GDS layers from the first file, and a "cifoutput" style that writes the GDS layers as you want them output. You don't even need much else in the tech file. It is a bit of a pain to ensure that you're representing all the layers, as if you try specifying one plane per type, you will likely run out of planes (Limit 128, I think? Or 64?). You can increase the plane limit in the source code to cover all the layers you need, which is probably easier than figuring out which layer types can be put on the same plane because they never overlap. There is a script called "gdsquery" on the magic website download page that will build a quick-and-dirty techfile to correspond to any GDS file. You can use that to create the GDS input file, then modify the "cifoutput" section for the GDS layer assignments you want in the output.