diff --git a/sky130/custom/scripts/build_lib_spice.py b/sky130/custom/scripts/build_lib_spice.py
new file mode 100755
index 0000000..df19d68
--- /dev/null
+++ b/sky130/custom/scripts/build_lib_spice.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+#
+#-----------------------------------------------------------------------
+# build_lib_spice.py ---
+#
+# Generate a complete "sky130.lib.spice" file given:
+# (1) The name of the original file
+# (2) The name of an addendum file.
+#
+# The tasks done by this script are:
+# (1) Add "mc_pr_switch" and "mc_mm_switch" parameters to each
+#     section
+# (2) Duplicate the entire set of sections and rename each section
+#     in the new set with "_mm" and set "mc_mm_switch" to 1 in those
+#     sections.
+# (3) Add the addendum file to the bottom
+# (4) Add the name of each section after the ".endl" line, for Xyce
+#     compatibility.
+#
+#-----------------------------------------------------------------------
+#
+# Usage:
+#
+#	build_lib_spice.py <lib_spice_file> <addendum_file>
+#
+# The output will replace <lib_spice_file> with the modified version.
+
+import os
+import re
+import sys
+
+if len(sys.argv) != 3:
+    print('Usage: build_lib_spice.py <lib_spice_file> <addendum_file>')
+    sys.exit(1)
+
+inputfile = sys.argv[1]
+addendumfile = sys.argv[2]
+
+cornerrex = re.compile('.*\((.*)\)')
+
+with open(inputfile, 'r') as ifile:
+    spicelines = ifile.read().splitlines()
+
+with open(addendumfile, 'r') as ifile:
+    addlines = ifile.read().splitlines()
+
+# The header is the first 16 lines (copyright notice)
+header = spicelines[0:16]
+spicelines = spicelines[16:]
+
+# After each ".lib", add the monte carlo parameters
+# Add the name of the corner after ".endl"
+
+newlines = []
+for line in spicelines: 
+    if line.startswith('.lib'):
+        corner = line.split()[1]
+        newlines.append(line)
+        newlines.append('.param mc_mm_switch=0')
+        newlines.append('.param mc_pr_switch=0')
+    elif line.startswith('.endl'):
+        newlines.append(line + ' ' + corner)
+    else:
+        newlines.append(line)
+
+# Duplicate all sections with mismatch analysis versions
+
+altlines = []
+for line in spicelines: 
+    cmatch = cornerrex.match(line)
+    if cmatch:
+        corner = cmatch.group(1)
+        newline = re.sub(corner, corner + '_mm', line)
+        newline = re.sub('\(', 'with mismatch (', newline)
+        newlines.append(newline)
+    elif line.startswith('.lib'):
+        corner = line.split()[1]
+        newlines.append(line + '_mm')
+        newlines.append('.param mc_mm_switch=1')
+        newlines.append('.param mc_pr_switch=0')
+    elif line.startswith('.endl'):
+        newlines.append(line + ' ' + corner + '_mm')
+    else:
+        newlines.append(line)
+
+# Now overwrite the original file.
+with open(inputfile, 'w') as ofile:
+    for line in header:
+        print(line, file=ofile)
+    print('', file=ofile)
+    for line in newlines:
+        print(line, file=ofile)
+    print('', file=ofile)
+    for line in altlines:
+        print(line, file=ofile)
+    print('', file=ofile)
+    for line in addlines:
+        print(line, file=ofile)
+
diff --git a/sky130/custom/scripts/mismatch_params.py b/sky130/custom/scripts/mismatch_params.py
index eda8462..b6616d7 100755
--- a/sky130/custom/scripts/mismatch_params.py
+++ b/sky130/custom/scripts/mismatch_params.py
@@ -69,6 +69,13 @@
 print('') 
 
 #--------------------------------------------------------------------
+# Create regexp for the alternative PSPICE "dev/gauss" syntax used in
+# a number of places in the models.
+#--------------------------------------------------------------------
+
+gaussrex = re.compile('\'[ \t]+dev\/gauss=\'', re.IGNORECASE)
+
+#--------------------------------------------------------------------
 # Step 2.  Make replacements
 #--------------------------------------------------------------------
 
@@ -86,19 +93,25 @@
 
     for line in infile:
         line_number += 1
+        newline = line
+
+        gmatch = gaussrex.search(newline)
+        if gmatch:
+            newline = gaussrex.sub('+' + mm_switch_param + '*AGAUSS(0,1.0,1)*', newline)
+            replaced_something = True
+            print("  Line {}: Found PSPICE dev/gauss and replaced.".format(line_number))
 
         if state == 'before_mismatch':
-            outfile.write(line)
-            mmatch = mmrex.match(line)
+            outfile.write(newline)
+            mmatch = mmrex.match(newline)
             if mmatch:
                 state = 'in_mismatch'
         elif state == 'in_mismatch':
-            outfile.write(line)
-            ematch = endrex.match(line)
+            outfile.write(newline)
+            ematch = endrex.match(newline)
             if ematch:
                 state = 'after_mismatch'
         elif state == 'after_mismatch':
-            newline = line
             for (param, replacement) in mismatch_params:
                 if param in newline:
                     newline = newline.replace(param, replacement)
diff --git a/sky130/custom/scripts/rename_cells.py b/sky130/custom/scripts/rename_cells.py
index 5692c41..b288a25 100755
--- a/sky130/custom/scripts/rename_cells.py
+++ b/sky130/custom/scripts/rename_cells.py
@@ -36,6 +36,14 @@
         fixedline = re.sub('\.\./\.\./models/', '../../../libs.tech/ngspice/', line)
         fixedline = re.sub('\.\./[^/\.]+/', '', fixedline)
 
+        # This substitution fixes a single error in the file
+        # sky130_fd_pr__nfet_05v0_nvt.pm3.spice
+        fixedline = re.sub('^include.*', '', fixedline)
+
+        # This subsitution makes SPICE files compatible with Xyce without
+        # breaking ngspice compatibility ('$' comments changed to ';')
+        fixedline = re.sub('(.*[ \t]+)\$([ \t+].*)', '\g<1>;\g<2>', fixedline)
+
         fixedlines.append(fixedline)
         if fixedline != line:
             modified = True
diff --git a/sky130/custom/scripts/rename_models.py b/sky130/custom/scripts/rename_models.py
index 1eea3dc..80e153c 100755
--- a/sky130/custom/scripts/rename_models.py
+++ b/sky130/custom/scripts/rename_models.py
@@ -34,6 +34,11 @@
 
         # Fix: Replace "../cells/<name>/" with "../../libs.ref/sky130_fd_pr/spice/"
         fixedline = re.sub('\.\./cells/[^/]+/', '../../libs.ref/sky130_fd_pr/spice/', line)
+
+        # This subsitution makes SPICE files compatible with Xyce without
+        # breaking ngspice compatibility ('$' comments changed to ';')
+        fixedline = re.sub('(.*[ \t]+)\$([ \t+].*)', '\g<1>;\g<2>', fixedline)
+
         fixedlines.append(fixedline)
         if fixedline != line:
             modified = True
diff --git a/sky130/custom/scripts/xyce_hack.py b/sky130/custom/scripts/xyce_hack.py
new file mode 100755
index 0000000..480e3ae
--- /dev/null
+++ b/sky130/custom/scripts/xyce_hack.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+#
+#--------------------------------------------------------------------
+# Workaround for the problem that xyce does not like having "vt"
+# as a subcircuit parameter name, because it is a xyce reserved
+# name.  Change the parameter name in the one file that uses it.
+# This script is not robust, and depends on the fact that the
+# one file that declares "vt" does not have any corner model files,
+# and the characters "vt" do not appear in any other context.
+#--------------------------------------------------------------------
+
+import os
+import re
+import sys
+
+if len(sys.argv) <= 1:
+    print('Usage: xyce_hack.py <path_to_file>')
+    sys.exit(1)
+
+else:
+    infile_name = sys.argv[1]
+
+    filepath = os.path.split(infile_name)[0]
+    outfile_name = os.path.join(filepath, 'temp')
+
+    infile = open(infile_name, 'r')
+    outfile = open(outfile_name, 'w')
+
+    line_number = 0
+    replaced_something = False
+    for line in infile:
+        line_number += 1
+
+        if 'vt' in line:
+            newline = re.sub('vt', 'local_vt', line)
+            replaced_something = True
+        else:
+            newline = line
+
+        outfile.write(newline)
+
+    infile.close()
+    outfile.close()
+    if replaced_something:
+        print("Something was replaced in '{}'".format(infile_name))
+        os.rename(outfile_name, infile_name)
+    else:
+        print("Nothing was replaced in '{}'.".format(infile_name))
+        os.remove(outfile_name)
+
