diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py
index aa9ead0..e19cc31 100755
--- a/control/gen-fan-zone-defs.py
+++ b/control/gen-fan-zone-defs.py
@@ -1008,6 +1008,6 @@
         )
     else:
         lkup = TemplateLookup(directories=tmpls_dir.split())
-    tmpl = lkup.get_template("fan_zone_defs.mako.cpp")
+    tmpl = lkup.get_template("fan_zone_defs.cpp.mako")
     with open(output_file, "w") as output:
         output.write(tmpl.render(zones=zone_config, mgr_data=manager_config))
diff --git a/control/templates/fan_zone_defs.mako.cpp b/control/templates/fan_zone_defs.cpp.mako
similarity index 100%
rename from control/templates/fan_zone_defs.mako.cpp
rename to control/templates/fan_zone_defs.cpp.mako
diff --git a/presence/pfpgen.py b/presence/pfpgen.py
index 30832f5..b9ff73e 100755
--- a/presence/pfpgen.py
+++ b/presence/pfpgen.py
@@ -146,7 +146,7 @@
         super(Gpio, self).__init__(**kw)
 
     def construct(self, loader, indent):
-        return self.render(loader, "gpio.mako.hpp", g=self, indent=indent)
+        return self.render(loader, "gpio.hpp.mako", g=self, indent=indent)
 
     def setup(self, objs):
         super(Gpio, self).setup(objs)
@@ -161,7 +161,7 @@
         super(Tach, self).__init__(**kw)
 
     def construct(self, loader, indent):
-        return self.render(loader, "tach.mako.hpp", t=self, indent=indent)
+        return self.render(loader, "tach.hpp.mako", t=self, indent=indent)
 
     def setup(self, objs):
         super(Tach, self).setup(objs)
@@ -200,7 +200,7 @@
         super(AnyOf, self).setup(objs)
 
     def construct(self, loader, indent):
-        return self.render(loader, "anyof.mako.hpp", f=self, indent=indent)
+        return self.render(loader, "anyof.hpp.mako", f=self, indent=indent)
 
 
 class Fallback(Rpolicy, Renderer):
@@ -214,7 +214,7 @@
         super(Fallback, self).setup(objs)
 
     def construct(self, loader, indent):
-        return self.render(loader, "fallback.mako.hpp", f=self, indent=indent)
+        return self.render(loader, "fallback.hpp.mako", f=self, indent=indent)
 
 
 class Fan(ConfigEntry):
@@ -359,7 +359,7 @@
         "-t",
         "--template",
         dest="template",
-        default="generated.mako.hpp",
+        default="generated.hpp.mako",
         help="The top level template to render.",
     )
     parser.add_argument(
diff --git a/presence/templates/anyof.mako.hpp b/presence/templates/anyof.hpp.mako
similarity index 100%
rename from presence/templates/anyof.mako.hpp
rename to presence/templates/anyof.hpp.mako
diff --git a/presence/templates/fallback.mako.hpp b/presence/templates/fallback.hpp.mako
similarity index 100%
rename from presence/templates/fallback.mako.hpp
rename to presence/templates/fallback.hpp.mako
diff --git a/presence/templates/generated.mako.hpp b/presence/templates/generated.hpp.mako
similarity index 100%
rename from presence/templates/generated.mako.hpp
rename to presence/templates/generated.hpp.mako
diff --git a/presence/templates/gpio.mako.hpp b/presence/templates/gpio.hpp.mako
similarity index 100%
rename from presence/templates/gpio.mako.hpp
rename to presence/templates/gpio.hpp.mako
diff --git a/presence/templates/tach.mako.hpp b/presence/templates/tach.hpp.mako
similarity index 100%
rename from presence/templates/tach.mako.hpp
rename to presence/templates/tach.hpp.mako
