diff --git a/docs/dev/hardware.rst b/docs/dev/hardware.rst
index 75ec8e552ac9de54f2c828772be0e673193904c5..7c17bcc9aa141dc7e3562916a0801b9f7d33f0f6 100644
--- a/docs/dev/hardware.rst
+++ b/docs/dev/hardware.rst
@@ -125,7 +125,7 @@ If the new platform works fine with the definitions found in ``default.c``, noth
 create a definition for the added target or subtarget, either by symlinking one of the files in the ``templates``
 directory, or adding a new source file.
 
-On many targets, Gluon's network setup scripts (mainly in the packages ``gluon-core`` and ``gluon-mesh-batman-adv-core``)
+On many targets, Gluon's network setup scripts (mainly in the package ``gluon-core``)
 won't run correctly without some adjustments, so better double check that everything is fine there (and the files
 ``primary_mac``, ``lan_ifname`` and ``wan_ifname`` in ``/lib/gluon/core/sysconfig/`` contain sensible values).
 
diff --git a/package/gluon-mesh-batman-adv-14/Makefile b/package/gluon-mesh-batman-adv-14/Makefile
deleted file mode 100644
index cd3aa2fbf0e5ce8d6eb9080c7246cbdd46367f2e..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-14/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=gluon-mesh-batman-adv-14
-PKG_VERSION:=1
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include ../gluon.mk
-
-
-define Package/gluon-mesh-batman-adv-14
-  SECTION:=gluon
-  CATEGORY:=Gluon
-  TITLE:=Support for batman-adv meshing (compat level 14)
-  DEPENDS:=+gluon-mesh-batman-adv-core +kmod-batman-adv-legacy
-  PROVIDES:=gluon-mesh-batman-adv
-endef
-
-define Build/Prepare
-	mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/gluon-mesh-batman-adv-14/install
-	$(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,gluon-mesh-batman-adv-14))
diff --git a/package/gluon-mesh-batman-adv-14/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv-14 b/package/gluon-mesh-batman-adv-14/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv-14
deleted file mode 100755
index 8be4037a9806a78df1ea1b0e380464cf39163759..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-14/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv-14
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /lib/gluon/mesh-batman-adv-core/config_mesh_interface setup 1528
diff --git a/package/gluon-mesh-batman-adv-14/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv-14 b/package/gluon-mesh-batman-adv-14/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv-14
deleted file mode 100755
index 494a4f9c06787993e1b02485b31804b6e8d1e9fa..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-14/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv-14
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /lib/gluon/mesh-batman-adv-core/config_mesh_interface teardown
diff --git a/package/gluon-mesh-batman-adv-14/files/lib/gluon/mesh-batman-adv-core/compat b/package/gluon-mesh-batman-adv-14/files/lib/gluon/mesh-batman-adv-core/compat
deleted file mode 100644
index 8351c19397f4fcd5238d10034fa7fa384f14d580..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-14/files/lib/gluon/mesh-batman-adv-core/compat
+++ /dev/null
@@ -1 +0,0 @@
-14
diff --git a/package/gluon-mesh-batman-adv-15/Makefile b/package/gluon-mesh-batman-adv-15/Makefile
deleted file mode 100644
index 7f8d8a8058d687ea86358acdad9e0c5002db343c..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-15/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=gluon-mesh-batman-adv-15
-PKG_VERSION:=1
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include ../gluon.mk
-
-
-define Package/gluon-mesh-batman-adv-15
-  SECTION:=gluon
-  CATEGORY:=Gluon
-  TITLE:=Support for batman-adv meshing (compat level 15)
-  DEPENDS:=+gluon-mesh-batman-adv-core +kmod-batman-adv +batctl
-  PROVIDES:=gluon-mesh-batman-adv
-endef
-
-define Build/Prepare
-	mkdir -p $(PKG_BUILD_DIR)
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/gluon-mesh-batman-adv-15/install
-	$(CP) ./files/* $(1)/
-endef
-
-$(eval $(call BuildPackage,gluon-mesh-batman-adv-15))
diff --git a/package/gluon-mesh-batman-adv-15/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv-15 b/package/gluon-mesh-batman-adv-15/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv-15
deleted file mode 100755
index a9b67cb032427dadc070ca249fb1d5bc857344f4..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-15/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv-15
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /lib/gluon/mesh-batman-adv-core/config_mesh_interface setup 1532
diff --git a/package/gluon-mesh-batman-adv-15/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv-15 b/package/gluon-mesh-batman-adv-15/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv-15
deleted file mode 100755
index 494a4f9c06787993e1b02485b31804b6e8d1e9fa..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-15/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv-15
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /lib/gluon/mesh-batman-adv-core/config_mesh_interface teardown
diff --git a/package/gluon-mesh-batman-adv-15/files/lib/gluon/mesh-batman-adv-core/compat b/package/gluon-mesh-batman-adv-15/files/lib/gluon/mesh-batman-adv-core/compat
deleted file mode 100644
index 60d3b2f4a4cd5f1637eba020358bfe5ecb5edcf2..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-15/files/lib/gluon/mesh-batman-adv-core/compat
+++ /dev/null
@@ -1 +0,0 @@
-15
diff --git a/package/gluon-mesh-batman-adv-core/Makefile b/package/gluon-mesh-batman-adv-core/Makefile
deleted file mode 100644
index cb51f7d58f0c0cf87171f8e18c3ed8a2e45b4366..0000000000000000000000000000000000000000
--- a/package/gluon-mesh-batman-adv-core/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=gluon-mesh-batman-adv-core
-PKG_VERSION:=1
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-PKG_BUILD_DEPENDS := respondd
-
-include ../gluon.mk
-
-
-define Package/gluon-mesh-batman-adv-core
-  SECTION:=gluon
-  CATEGORY:=Gluon
-  TITLE:=Support for batman-adv meshing (core)
-  DEPENDS:=+gluon-core +libgluonutil +gluon-client-bridge +gluon-ebtables +firewall +libiwinfo +kmod-dummy +libnl-tiny
-endef
-
-define Build/Prepare
-	mkdir -p $(PKG_BUILD_DIR)
-	$(CP) ./src/* $(PKG_BUILD_DIR)/
-endef
-
-define Build/Compile
-	$(call Build/Compile/Default)
-	$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)
-endef
-
-define Package/gluon-mesh-batman-adv-core/install
-	$(CP) ./files/* $(1)/
-	$(CP) $(PKG_BUILD_DIR)/luadest/* $(1)/
-	$(INSTALL_DIR) $(1)/lib/gluon/respondd
-	$(CP) $(PKG_BUILD_DIR)/respondd.so $(1)/lib/gluon/respondd/mesh-batman-adv-core.so
-endef
-
-define Package/gluon-mesh-batman-adv-core/postinst
-#!/bin/sh
-$(call GluonCheckSite,check_site.lua)
-endef
-
-
-$(eval $(call BuildPackage,gluon-mesh-batman-adv-core))
diff --git a/package/gluon-mesh-batman-adv/Makefile b/package/gluon-mesh-batman-adv/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9aa979fc89168283f17c82398b4e97c5382af435
--- /dev/null
+++ b/package/gluon-mesh-batman-adv/Makefile
@@ -0,0 +1,70 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gluon-mesh-batman-adv
+PKG_VERSION:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+PKG_BUILD_DEPENDS := respondd
+
+include ../gluon.mk
+
+
+define Package/gluon-mesh-batman-adv/common
+  SECTION:=gluon
+  CATEGORY:=Gluon
+  PROVIDES:=gluon-mesh-batman-adv
+  DEPENDS:=+gluon-core +libgluonutil +gluon-client-bridge +gluon-ebtables +firewall +libiwinfo +kmod-dummy +libnl-tiny
+endef
+
+define Package/gluon-mesh-batman-adv-14
+$(Package/gluon-mesh-batman-adv/common)
+  TITLE:=Support for batman-adv meshing (compat level 14)
+  CONFLICTS:=gluon-mesh-batman-adv-15
+  DEPENDS+=+kmod-batman-adv-legacy
+endef
+
+define Package/gluon-mesh-batman-adv-15
+$(Package/gluon-mesh-batman-adv/common)
+  TITLE:=Support for batman-adv meshing (compat level 15)
+  DEPENDS+=+kmod-batman-adv +batctl
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+	$(CP) ./src/* $(PKG_BUILD_DIR)/
+endef
+
+define Build/Compile
+	$(call Build/Compile/Default)
+	$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)
+endef
+
+define Package/gluon-mesh-batman-adv/common/install
+	$(CP) ./files/* $(1)/
+	$(CP) $(PKG_BUILD_DIR)/luadest/* $(1)/
+	$(INSTALL_DIR) $(1)/lib/gluon/respondd
+	$(CP) $(PKG_BUILD_DIR)/respondd.so $(1)/lib/gluon/respondd/mesh-batman-adv.so
+
+	$(INSTALL_DIR) $(1)/lib/gluon/mesh-batman-adv
+endef
+
+define Package/gluon-mesh-batman-adv-14/install
+$(Package/gluon-mesh-batman-adv/common/install)
+	echo 14 > $(1)/lib/gluon/mesh-batman-adv/compat
+endef
+
+define Package/gluon-mesh-batman-adv-15/install
+$(Package/gluon-mesh-batman-adv/common/install)
+	echo 15 > $(1)/lib/gluon/mesh-batman-adv/compat
+endef
+
+define Package/gluon-mesh-batman-adv/common/postinst
+#!/bin/sh
+$(call GluonCheckSite,check_site.lua)
+endef
+Package/gluon-mesh-batman-adv-14/postinst := $(Package/gluon-mesh-batman-adv/common/postinst)
+Package/gluon-mesh-batman-adv-15/postinst := $(Package/gluon-mesh-batman-adv/common/postinst)
+
+
+$(eval $(call BuildPackage,gluon-mesh-batman-adv-14))
+$(eval $(call BuildPackage,gluon-mesh-batman-adv-15))
diff --git a/package/gluon-mesh-batman-adv-core/check_site.lua b/package/gluon-mesh-batman-adv/check_site.lua
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/check_site.lua
rename to package/gluon-mesh-batman-adv/check_site.lua
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv b/package/gluon-mesh-batman-adv/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv
new file mode 100755
index 0000000000000000000000000000000000000000..83697b3ad3502745fc4b53dff468e2c021ab9e86
--- /dev/null
+++ b/package/gluon-mesh-batman-adv/files/lib/gluon/core/mesh/setup.d/30-gluon-mesh-batman-adv
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /lib/gluon/mesh-batman-adv/config_mesh_interface setup
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv b/package/gluon-mesh-batman-adv/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv
new file mode 100755
index 0000000000000000000000000000000000000000..d15037a7f5be981a4f753b45d1c45bce5fab2dc4
--- /dev/null
+++ b/package/gluon-mesh-batman-adv/files/lib/gluon/core/mesh/teardown.d/70-gluon-mesh-batman-adv
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /lib/gluon/mesh-batman-adv/config_mesh_interface teardown
diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/ebtables/250-next-node b/package/gluon-mesh-batman-adv/files/lib/gluon/ebtables/250-next-node
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/files/lib/gluon/ebtables/250-next-node
rename to package/gluon-mesh-batman-adv/files/lib/gluon/ebtables/250-next-node
diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/ebtables/300-radv-input-output b/package/gluon-mesh-batman-adv/files/lib/gluon/ebtables/300-radv-input-output
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/files/lib/gluon/ebtables/300-radv-input-output
rename to package/gluon-mesh-batman-adv/files/lib/gluon/ebtables/300-radv-input-output
diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev b/package/gluon-mesh-batman-adv/files/lib/gluon/respondd/client.dev
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev
rename to package/gluon-mesh-batman-adv/files/lib/gluon/respondd/client.dev
diff --git a/package/gluon-mesh-batman-adv-core/files/usr/lib/autoupdater/abort.d/10start-network b/package/gluon-mesh-batman-adv/files/usr/lib/autoupdater/abort.d/10start-network
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/files/usr/lib/autoupdater/abort.d/10start-network
rename to package/gluon-mesh-batman-adv/files/usr/lib/autoupdater/abort.d/10start-network
diff --git a/package/gluon-mesh-batman-adv-core/files/usr/lib/autoupdater/upgrade.d/10stop-network b/package/gluon-mesh-batman-adv/files/usr/lib/autoupdater/upgrade.d/10stop-network
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/files/usr/lib/autoupdater/upgrade.d/10stop-network
rename to package/gluon-mesh-batman-adv/files/usr/lib/autoupdater/upgrade.d/10stop-network
diff --git a/package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/mesh-batman-adv-core/config_mesh_interface b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/mesh-batman-adv/config_mesh_interface
similarity index 98%
rename from package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/mesh-batman-adv-core/config_mesh_interface
rename to package/gluon-mesh-batman-adv/luasrc/lib/gluon/mesh-batman-adv/config_mesh_interface
index 362b791802a21f2ab35774e54762f432bea43521..8004b3e6b104f6abf57a28aeb0a7251ce672adf1 100755
--- a/package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/mesh-batman-adv-core/config_mesh_interface
+++ b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/mesh-batman-adv/config_mesh_interface
@@ -13,7 +13,7 @@ if cmd == 'setup' then
 	local fixed_mtu = tonumber(os.getenv('FIXED_MTU')) or 0
 	local transitive = tonumber(os.getenv('TRANSITIVE')) or 0
 
-	local mtu = tonumber(arg[2])
+	local mtu = 1532
 
 	if not fs.access('/sys/class/net/primary0') then
 		os.execute([[
diff --git a/package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/radvd/arguments b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/radvd/arguments
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/radvd/arguments
rename to package/gluon-mesh-batman-adv/luasrc/lib/gluon/radvd/arguments
diff --git a/package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-core-mesh b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-mesh
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-core-mesh
rename to package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/310-gluon-mesh-batman-adv-mesh
diff --git a/package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/upgrade/320-gluon-mesh-batman-adv-core-client-bridge b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/320-gluon-mesh-batman-adv-client-bridge
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/upgrade/320-gluon-mesh-batman-adv-core-client-bridge
rename to package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/320-gluon-mesh-batman-adv-client-bridge
diff --git a/package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/upgrade/340-gluon-mesh-batman-adv-core-mac-addresses b/package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/330-gluon-mesh-batman-adv-mac-addresses
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/luasrc/lib/gluon/upgrade/340-gluon-mesh-batman-adv-core-mac-addresses
rename to package/gluon-mesh-batman-adv/luasrc/lib/gluon/upgrade/330-gluon-mesh-batman-adv-mac-addresses
diff --git a/package/gluon-mesh-batman-adv-core/src/Makefile b/package/gluon-mesh-batman-adv/src/Makefile
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/src/Makefile
rename to package/gluon-mesh-batman-adv/src/Makefile
diff --git a/package/gluon-mesh-batman-adv-core/src/batadv-netlink.c b/package/gluon-mesh-batman-adv/src/batadv-netlink.c
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/src/batadv-netlink.c
rename to package/gluon-mesh-batman-adv/src/batadv-netlink.c
diff --git a/package/gluon-mesh-batman-adv-core/src/batadv-netlink.h b/package/gluon-mesh-batman-adv/src/batadv-netlink.h
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/src/batadv-netlink.h
rename to package/gluon-mesh-batman-adv/src/batadv-netlink.h
diff --git a/package/gluon-mesh-batman-adv-core/src/batman_adv.h b/package/gluon-mesh-batman-adv/src/batman_adv.h
similarity index 100%
rename from package/gluon-mesh-batman-adv-core/src/batman_adv.h
rename to package/gluon-mesh-batman-adv/src/batman_adv.h
diff --git a/package/gluon-mesh-batman-adv-core/src/respondd.c b/package/gluon-mesh-batman-adv/src/respondd.c
similarity index 99%
rename from package/gluon-mesh-batman-adv-core/src/respondd.c
rename to package/gluon-mesh-batman-adv/src/respondd.c
index 09b6ac6fd0d4b6292d13a077925127e1de6ab24d..60df1523963b307cd84a648f30c53ef751a288ab 100644
--- a/package/gluon-mesh-batman-adv-core/src/respondd.c
+++ b/package/gluon-mesh-batman-adv/src/respondd.c
@@ -207,7 +207,7 @@ static struct json_object * get_mesh(void) {
 }
 
 static struct json_object * get_batman_adv_compat(void) {
-	FILE *f = fopen("/lib/gluon/mesh-batman-adv-core/compat", "r");
+	FILE *f = fopen("/lib/gluon/mesh-batman-adv/compat", "r");
 	if (!f)
 		return NULL;