diff --git a/gnu/local.mk b/gnu/local.mk
index b4e8fd0b42..57cae21761 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1572,6 +1572,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/maxima-defsystem-mkdir.patch		\
   %D%/packages/patches/maven-generate-component-xml.patch		\
   %D%/packages/patches/maven-generate-javax-inject-named.patch		\
+  %D%/packages/patches/mc2mt-add-packaging-support.patch			\
   %D%/packages/patches/mcrl2-fix-1687.patch			\
   %D%/packages/patches/mcrl2-fix-counterexample.patch		\
   %D%/packages/patches/mcrypt-CVE-2012-4409.patch			\
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 503c5e1f73..c9e45c8ea2 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -56,6 +56,7 @@ (define-module (gnu packages game-development)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix build-system python)
   #:use-module (guix build-system scons)
   #:use-module (gnu packages)
@@ -1744,6 +1745,32 @@ (define-public ois
     (home-page "https://github.com/wgois/OIS")
     (license license:zlib)))
 
+(define-public mc2mt
+  (let ((commit "039dbc26466a430e03c646dc5a9bd0822637a87a")
+        (revision "0"))
+  (package
+    (name "mc2mt")
+    (version (git-version "0.1" revision commit))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/listia/mc2mt")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1vnaznwgm87x0n5dp14363p2h54lpzalynrrd6lbs6wgrqq7fq9i"))
+       (patches (search-patches "mc2mt-add-packaging-support.patch"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-anvil-parser))
+    (arguments
+     (list #:tests? #f)) ; no tests
+    (synopsis "Minecraft to Minetest world converter")
+    (description "@code{mc2mt} is a Minecraft to Minetest world converter.
+It can convert worlds from Minecraft 1.9 and later.")
+    (home-page "https://github.com/listia/mc2mt")
+    (license license:expat))))
+
 (define-public mygui
   (package
     (name "mygui")
diff --git a/gnu/packages/patches/mc2mt-add-packaging-support.patch b/gnu/packages/patches/mc2mt-add-packaging-support.patch
new file mode 100644
index 0000000000..9a764132d3
--- /dev/null
+++ b/gnu/packages/patches/mc2mt-add-packaging-support.patch
@@ -0,0 +1,85 @@
+From 84ebbd6001d7cde552dd5b9da5c0528e476ab53d Mon Sep 17 00:00:00 2001
+From: AwesomeAdam54321 <adam.faiz@disroot.org>
+Date: Fri, 30 Jun 2023 22:08:46 +0800
+Subject: [PATCH] mc2mt: Add packaging support.
+
+* MANIFEST.in: Add it.
+* mc2mt.py -> mc2mtlib/mc2mt.py: Move mc2mt.py functionality here.
+* pyproject.toml: Add project specification.
+---
+ MANIFEST.in                   |  1 +
+ mc2mtlib/__init__.py          |  1 +
+ mc2mt.py => mc2mtlib/mc2mt.py | 11 +++++++++--
+ pyproject.toml                | 11 +++++++++++
+ 4 files changed, 22 insertions(+), 2 deletions(-)
+ create mode 100644 MANIFEST.in
+ rename mc2mt.py => mc2mtlib/mc2mt.py (90%)
+ mode change 100755 => 100644
+ create mode 100644 pyproject.toml
+
+diff --git a/MANIFEST.in b/MANIFEST.in
+new file mode 100644
+index 0000000..d5914df
+--- /dev/null
++++ b/MANIFEST.in
+@@ -0,0 +1 @@
++include mc2mtlib/mods/*.json
+diff --git a/mc2mtlib/__init__.py b/mc2mtlib/__init__.py
+index 047fcf2..315b5dc 100644
+--- a/mc2mtlib/__init__.py
++++ b/mc2mtlib/__init__.py
+@@ -1,4 +1,5 @@
+ from . import argument_parser
++from . import mc2mt
+ from . import minetest_world
+ from . import blob_writer
+ from . import block_functions
+diff --git a/mc2mt.py b/mc2mtlib/mc2mt.py
+old mode 100755
+new mode 100644
+similarity index 90%
+rename from mc2mt.py
+rename to mc2mtlib/mc2mt.py
+index 938600b..67affff
+--- a/mc2mt.py
++++ b/mc2mtlib/mc2mt.py
+@@ -4,10 +4,17 @@ import time
+ 
+ import anvil
+ 
+-from mc2mtlib import *
++from mc2mtlib import argument_parser
++from mc2mtlib import minetest_world
++from mc2mtlib import blob_writer
++from mc2mtlib import block_functions
++from mc2mtlib import block_conversion
++from mc2mtlib import section_conversion
++
++parse_args = argument_parser.parser.parse_args
+ 
+ # Main
+-if __name__ == '__main__':
++def mc2mt():
+ 
+     # Args
+     args = parse_args()
+diff --git a/pyproject.toml b/pyproject.toml
+new file mode 100644
+index 0000000..cf9a70d
+--- /dev/null
++++ b/pyproject.toml
+@@ -0,0 +1,11 @@
++[build-system]
++requires = ['setuptools']
++build-backend = 'setuptools.build_meta'
++
++[project]
++name = 'mc2mt'
++version = '0.1'
++dependencies = ['anvil-parser']
++
++[project.scripts]
++mc2mt = 'mc2mtlib:mc2mt.mc2mt'
+-- 
+2.40.1
+
