diff --git a/VERSION b/VERSION
index da93f74..4750635 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.424
+1.0.425
diff --git a/common/create_gds_library.py b/common/create_gds_library.py
index 9931fd8..6c5235a 100755
--- a/common/create_gds_library.py
+++ b/common/create_gds_library.py
@@ -7,11 +7,16 @@
 # of cells, create a single GDL library file named <alllibname> and place
 # it in the same directory.  This is done for the option "compile" if specified
 # for the "-gds" install.
+#
+# Because GDS files are large, this script supports reading gzipped GDS files.
+# The file (de-)compression is handled in Magic;  it is only necessary in this
+# script to accept ".gds.gz" as a valid filename extension for GDS files.
 #----------------------------------------------------------------------------
 
 import os
 import sys
 import glob
+import gzip
 import fnmatch
 import subprocess
 import natural_sort
@@ -57,6 +62,8 @@
         glist = glob.glob(destlibdir + '/*.gds')
         glist.extend(glob.glob(destlibdir + '/*.gdsii'))
         glist.extend(glob.glob(destlibdir + '/*.gds2'))
+        glist.extend(glob.glob(destlibdir + '/*.gds.gz'))
+        
         glist = natural_sort.natural_sort(glist)
 
     if alllibname in glist:
diff --git a/common/create_lib_library.py b/common/create_lib_library.py
index 46bfc47..beba757 100755
--- a/common/create_lib_library.py
+++ b/common/create_lib_library.py
@@ -7,10 +7,14 @@
 # of cells, create a single liberty library file named <alllibname> and place
 # it in the same directory.  This is done for the option "compile" if specified
 # for the "-lib" install.
+#
+# Because liberty files tend to be both huge and ASCII, this script supports
+# handling sets of gzipped .lib files (expecting name ".lib.gz").
 #----------------------------------------------------------------------------
 
 import sys
 import os
+import gzip
 import glob
 import fnmatch
 import natural_sort
@@ -46,6 +50,7 @@
 	headerfile=None):
 
     headerdone = False
+    compressed = False
 
     # destlib should not have a file extension
     destlibroot = os.path.splitext(destlib)[0]
@@ -80,7 +85,11 @@
             for rfile in rlist:
                 llist.append(destlibdir + '/' + rfile)
     else:
-        llist = glob.glob(destlibdir + '/*.lib')
+        llist = glob.glob(destlibdir + '/*.lib.gz')
+        if len(llist) == 0:
+            llist = glob.glob(destlibdir + '/*.lib')
+        else:
+            compressed = True
         llist = natural_sort.natural_sort(llist)
 
     # Create exclude list with glob-style matching using fnmatch
@@ -111,21 +120,26 @@
                 if not os.path.exists(lfile):
                     print('Error: File ' + lfile + ' not found (skipping).')
                     continue
-                with open(lfile, 'r') as ifile:
-                    # print('Adding ' + lfile + ' to library.')
-                    ltext = ifile.read()
-                    llines = ltext.splitlines()
-                    headerseen = False
-                    for lline in llines:
-                        if headerdone:
-                            if not headerseen:
-                                ltok = lline.split('(')
-                                if len(ltok) == 0 or not ltok[0].strip() == 'cell':
-                                    continue
-                                else:
-                                    headerseen = True
-                        print(lline, file=ofile)
-                    headerdone = True
+                if compressed:
+                    with gzip.open(lfile, 'rb') as ifile:
+                        # print('Adding ' + lfile + ' to library.')
+                        ltext = ifile.read()
+                else:
+                    with open(lfile, 'r') as ifile:
+                        # print('Adding ' + lfile + ' to library.')
+                        ltext = ifile.read()
+                llines = ltext.splitlines()
+                headerseen = False
+                for lline in llines:
+                    if headerdone:
+                        if not headerseen:
+                            ltok = lline.split('(')
+                            if len(ltok) == 0 or not ltok[0].strip() == 'cell':
+                                continue
+                            else:
+                                headerseen = True
+                    print(lline, file=ofile)
+                headerdone = True
                 print('/*--------EOF---------*/\n', file=ofile)
 
             if headerfile:
diff --git a/gf180mcu/magic/gf180mcu.tcl b/gf180mcu/magic/gf180mcu.tcl
index 81de06d..aa68e78 100644
--- a/gf180mcu/magic/gf180mcu.tcl
+++ b/gf180mcu/magic/gf180mcu.tcl
@@ -103,14 +103,14 @@
    magic::add_toolkit_command $layoutframe "diode_pd2nw_03v3 - p-diode" "magic::gencell gf180mcu::diode_pd2nw_03v3" pdk1
 
    magic::add_toolkit_separator	$layoutframe pdk1
-   magic::add_toolkit_command $layoutframe "npn_05p00x05p00     (3.3V) - 5.0um^2 " "magic::gencell gf180mcu::vnpn_2x2" pdk1
-   magic::add_toolkit_command $layoutframe "vnpn_5x0p42  (3.3V) - 5.0um x 0.42um " "magic::gencell gf180mcu::vnpn_5x0p42" pdk1
-   magic::add_toolkit_command $layoutframe "npn_10p00x10p00   (3.3V) - 10.0um^2 " "magic::gencell gf180mcu::npn_05p00x05p00" pdk1
-   magic::add_toolkit_command $layoutframe "vnpn_10x0p42 (3.3V) - 10.0um x 0.42um " "magic::gencell gf180mcu::vnpn_10x0p42" pdk1
-   magic::add_toolkit_command $layoutframe "pnp_05p00x05p00     (3.3V) - 5.0um^2 " "magic::gencell gf180mcu::pnp_05p00x05p00" pdk1
-   magic::add_toolkit_command $layoutframe "vpnp_5x0p42  (3.3V) - 5.0um^2 x 0.42um " "magic::gencell gf180mcu::vpnp_5x0p42" pdk1
-   magic::add_toolkit_command $layoutframe "pnp_10p00x10p00   (3.3V) - 10.0um^2 " "magic::gencell gf180mcu::pnp_10p00x10p00" pdk1
-   magic::add_toolkit_command $layoutframe "vpnp_10x0p42 (3.3V) - 10.0um^2 x 0.42um " "magic::gencell gf180mcu::vpnp_10x0p42" pdk1
+   magic::add_toolkit_command $layoutframe "npn_10p00x10p00  (3.3V) - 10.0um x 10.0um " "magic::gencell gf180mcu::npn_05p00x05p00" pdk1
+   magic::add_toolkit_command $layoutframe "npn_05p00x05p00  (3.3V) - 5.0um x 5.0um " "magic::gencell gf180mcu::npn_05p00x05p00" pdk1
+   magic::add_toolkit_command $layoutframe "npn_10p00x10p00  (3.3V) - 0.54um x 4.0um " "magic::gencell gf180mcu::npn_00p54x04p00" pdk1
+   magic::add_toolkit_command $layoutframe "npn_00p54x02p00  (3.3V) - 0.54um x 2.0um " "magic::gencell gf180mcu::npn_00p54x02p00" pdk1
+   magic::add_toolkit_command $layoutframe "pnp_10p00x10p00  (3.3V) - 10.0um x 10.0um " "magic::gencell gf180mcu::pnp_10p00x10p00" pdk1
+   magic::add_toolkit_command $layoutframe "pnp_05p00x05p00  (3.3V) - 5.0um x 5.0um " "magic::gencell gf180mcu::pnp_05p00x05p00" pdk1
+   magic::add_toolkit_command $layoutframe "pnp_10p00x00p42  (3.3V) - 10.0um x 0.42um " "magic::gencell gf180mcu::pnp_10p00x00p42" pdk1
+   magic::add_toolkit_command $layoutframe "pnp_05p00x00p42  (3.3V) - 5.0um x 0.42um " "magic::gencell gf180mcu::pnp_05p00x00p42" pdk1
 
    magic::add_toolkit_separator	$layoutframe pdk1
    magic::add_toolkit_command $layoutframe "mos capacitor" "magic::gencell gf180mcu::nmoscap_3p3" pdk1
@@ -4272,7 +4272,7 @@
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.94 ystep 13.94}
 }
 
-proc gf180mcu::vnpn_5x0p42_defaults {} {
+proc gf180mcu::npn_00p54x02p00_defaults {} {
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 12.36 ystep 16.22}
 }
 
@@ -4280,7 +4280,7 @@
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 16.94 ystep 16.94}
 }
 
-proc gf180mcu::vnpn_10x0p42_defaults {} {
+proc gf180mcu::npn_00p54x04p00_defaults {} {
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 12.36 ystep 21.22}
 }
 
@@ -4288,7 +4288,7 @@
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 13.94 ystep 13.94}
 }
 
-proc gf180mcu::vpnp_5x0p42_defaults {} {
+proc gf180mcu::pnp_05p00x00p42_defaults {} {
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 12.36 ystep 16.22}
 }
 
@@ -4296,7 +4296,7 @@
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 16.94 ystep 16.94}
 }
 
-proc gf180mcu::vpnp_10x0p42_defaults {} {
+proc gf180mcu::pnp_10p00x00p42_defaults {} {
     return {nx 1 ny 1 deltax 0 deltay 0 nocell 1 xstep 12.36 ystep 21.22}
 }
 
@@ -4322,7 +4322,7 @@
     return [gf180mcu::fixed_convert $parameters]
 }
 
-proc gf180mcu::vnpn_5x0p42_convert {parameters} {
+proc gf180mcu::npn_00p54x02p00_convert {parameters} {
     return [gf180mcu::fixed_convert $parameters]
 }
 
@@ -4330,7 +4330,7 @@
     return [gf180mcu::fixed_convert $parameters]
 }
 
-proc gf180mcu::vnpn_10x0p42_convert {parameters} {
+proc gf180mcu::npn_00p54x04p00_convert {parameters} {
     return [gf180mcu::fixed_convert $parameters]
 }
 
@@ -4338,7 +4338,7 @@
     return [gf180mcu::fixed_convert $parameters]
 }
 
-proc gf180mcu::vpnp_5x0p42_convert {parameters} {
+proc gf180mcu::pnp_05p00x00p42_convert {parameters} {
     return [gf180mcu::fixed_convert $parameters]
 }
 
@@ -4346,7 +4346,7 @@
     return [gf180mcu::fixed_convert $parameters]
 }
 
-proc gf180mcu::vpnp_10x0p42_convert {parameters} {
+proc gf180mcu::pnp_10p00x00p42_convert {parameters} {
     return [gf180mcu::fixed_convert $parameters]
 }
 
@@ -4399,7 +4399,7 @@
     gf180mcu::fixed_dialog $parameters
 }
 
-proc gf180mcu::vnpn_5x0p42_dialog {parameters} {
+proc gf180mcu::npn_00p54x02p00_dialog {parameters} {
     gf180mcu::fixed_dialog $parameters
 }
 
@@ -4407,7 +4407,7 @@
     gf180mcu::fixed_dialog $parameters
 }
 
-proc gf180mcu::vnpn_10x0p42_dialog {parameters} {
+proc gf180mcu::npn_00p54x04p00_dialog {parameters} {
     gf180mcu::fixed_dialog $parameters
 }
 
@@ -4415,7 +4415,7 @@
     gf180mcu::fixed_dialog $parameters
 }
 
-proc gf180mcu::vpnp_5x0p42_dialog {parameters} {
+proc gf180mcu::pnp_05p00x00p42_dialog {parameters} {
     gf180mcu::fixed_dialog $parameters
 }
 
@@ -4423,7 +4423,7 @@
     gf180mcu::fixed_dialog $parameters
 }
 
-proc gf180mcu::vpnp_10x0p42_dialog {parameters} {
+proc gf180mcu::pnp_10p00x00p42_dialog {parameters} {
     gf180mcu::fixed_dialog $parameters
 }
 
@@ -4466,35 +4466,35 @@
 #----------------------------------------------------------------
 
 proc gf180mcu::npn_05p00x05p00_draw {parameters} {
-   return [gf180mcu::fixed_draw npn_05p00x05p00 $parameters]
+   return [gf180mcu::fixed_draw npn_05p00x05p00_0 $parameters]
 }
 
-proc gf180mcu::vnpn_5x0p42_draw {parameters} {
-   return [gf180mcu::fixed_draw vnpn_5x0p42 $parameters]
+proc gf180mcu::npn_00p54x02p00_draw {parameters} {
+   return [gf180mcu::fixed_draw npn_00p54x02p00_0 $parameters]
 }
 
 proc gf180mcu::npn_10p00x10p00_draw {parameters} {
-   return [gf180mcu::fixed_draw npn_10p00x10p00 $parameters]
+   return [gf180mcu::fixed_draw npn_10p00x10p00_0 $parameters]
 }
 
-proc gf180mcu::vnpn_10x0p42_draw {parameters} {
-   return [gf180mcu::fixed_draw vnpn_10X0p42 $parameters]
+proc gf180mcu::npn_00p54x04p00_draw {parameters} {
+   return [gf180mcu::fixed_draw npn_00p54x04p00_0 $parameters]
 }
 
 proc gf180mcu::pnp_05p00x05p00_draw {parameters} {
-   return [gf180mcu::fixed_draw pnp_05p00x05p00 $parameters]
+   return [gf180mcu::fixed_draw pnp_05p00x05p00_0 $parameters]
 }
 
-proc gf180mcu::vpnp_5x0p42_draw {parameters} {
-   return [gf180mcu::fixed_draw vpnp_5x0p42 $parameters]
+proc gf180mcu::pnp_05p00x00p42_draw {parameters} {
+   return [gf180mcu::fixed_draw pnp_05p00x00p42_0 $parameters]
 }
 
 proc gf180mcu::pnp_10p00x10p00_draw {parameters} {
-   return [gf180mcu::fixed_draw pnp_10p00x10p00 $parameters]
+   return [gf180mcu::fixed_draw pnp_10p00x10p00_0 $parameters]
 }
 
-proc gf180mcu::vpnp_10x0p42_draw {parameters} {
-   return [gf180mcu::fixed_draw vpnp_10X0p42 $parameters]
+proc gf180mcu::pnp_10p00x00p42_draw {parameters} {
+   return [gf180mcu::fixed_draw pnp_10p00x00p42_0 $parameters]
 }
 
 #----------------------------------------------------------------
@@ -4551,7 +4551,7 @@
     return [gf180mcu::fixed_check $parameters]
 }
 
-proc gf180mcu::vnpn_5x0p42_check {parameters} {
+proc gf180mcu::npn_00p54x02p00_check {parameters} {
     return [gf180mcu::fixed_check $parameters]
 }
 
@@ -4559,7 +4559,7 @@
     return [gf180mcu::fixed_check $parameters]
 }
 
-proc gf180mcu::vnpn_10x0p42_check {parameters} {
+proc gf180mcu::npn_00p54x04p00_check {parameters} {
     return [gf180mcu::fixed_check $parameters]
 }
 
@@ -4567,7 +4567,7 @@
     return [gf180mcu::fixed_check $parameters]
 }
 
-proc gf180mcu::vpnp_5x0p42_check {parameters} {
+proc gf180mcu::pnp_05p00x00p42_check {parameters} {
     return [gf180mcu::fixed_check $parameters]
 }
 
@@ -4575,7 +4575,7 @@
     return [gf180mcu::fixed_check $parameters]
 }
 
-proc gf180mcu::vpnp_10x0p42_check {parameters} {
+proc gf180mcu::pnp_10p00x00p42_check {parameters} {
     return [gf180mcu::fixed_check $parameters]
 }
 
