diff --git a/extensions.bzl b/extensions.bzl
index 5aee910..0a05cc6 100644
--- a/extensions.bzl
+++ b/extensions.bzl
@@ -20,7 +20,7 @@
     # ELFIO header based library
     http_archive(
         name = "com_github_serge1_elfio",
-        build_file = "@com_google_mpact-sim//:external/BUILD.elfio",
+        build_file = "@mpact-sim//:external/BUILD.elfio",
         sha256 = "caf49f3bf55a9c99c98ebea4b05c79281875783802e892729eea0415505f68c4",
         strip_prefix = "elfio-3.12",
         urls = ["https://github.com/serge1/ELFIO/releases/download/Release_3.12/elfio-3.12.tar.gz"],
@@ -37,7 +37,7 @@
     http_archive(
         name = "org_antlr4_cpp_runtime",
         add_prefix = "antlr4-runtime",
-        build_file = "@com_google_mpact-sim//:external/BUILD.antlr4",
+        build_file = "@mpact-sim//:external/BUILD.antlr4",
         sha256 = "d350e09917a633b738c68e1d6dc7d7710e91f4d6543e154a78bb964cfd8eb4de",
         strip_prefix = "runtime/src",
         urls = ["https://www.antlr.org/download/antlr4-cpp-runtime-4.13.1-source.zip"],
diff --git a/mpact/sim/decoder/mpact_sim_isa.bzl b/mpact/sim/decoder/mpact_sim_isa.bzl
index 2bffaab..2388fab 100644
--- a/mpact/sim/decoder/mpact_sim_isa.bzl
+++ b/mpact/sim/decoder/mpact_sim_isa.bzl
@@ -110,7 +110,7 @@
         outs = out_files,
         cmd = command,
         heuristic_label_expansion = 0,
-        tools = ["@com_google_mpact-sim//mpact/sim/decoder:decoder_gen"],
+        tools = ["@mpact-sim//mpact/sim/decoder:decoder_gen"],
         testonly = testonly,
     )
 
@@ -120,12 +120,12 @@
         lib_deps.append("@abseil-cpp//absl/container:flat_hash_map")
     if "@abseil-cpp//absl/strings:str_format" not in deps:
         lib_deps.append("@abseil-cpp//absl/strings:str_format")
-    if "@com_google_mpact-sim//mpact/sim/generic:arch_state" not in deps:
-        lib_deps.append("@com_google_mpact-sim//mpact/sim/generic:arch_state")
-    if "@com_google_mpact-sim//mpact/sim/generic:instruction" not in deps:
-        lib_deps.append("@com_google_mpact-sim//mpact/sim/generic:instruction")
-    if "@com_google_mpact-sim//mpact/sim/util/asm" not in deps:
-        lib_deps.append("@com_google_mpact-sim//mpact/sim/util/asm")
+    if "@mpact-sim//mpact/sim/generic:arch_state" not in deps:
+        lib_deps.append("@mpact-sim//mpact/sim/generic:arch_state")
+    if "@mpact-sim//mpact/sim/generic:instruction" not in deps:
+        lib_deps.append("@mpact-sim//mpact/sim/generic:instruction")
+    if "@mpact-sim//mpact/sim/util/asm" not in deps:
+        lib_deps.append("@mpact-sim//mpact/sim/util/asm")
     if "@com_googlesource_code_re2//:re2" not in deps:
         lib_deps.append("@com_googlesource_code_re2//:re2")
     if "@abseil-cpp//absl/status" not in deps:
@@ -193,7 +193,7 @@
         outs = out_files,
         cmd = command,
         heuristic_label_expansion = 0,
-        tools = ["@com_google_mpact-sim//mpact/sim/decoder:bin_format_gen"],
+        tools = ["@mpact-sim//mpact/sim/decoder:bin_format_gen"],
         testonly = testonly,
     )
 
@@ -209,10 +209,10 @@
         lib_deps.append("@abseil-cpp//absl/log")
     if "@abseil-cpp//absl/strings:str_format" not in deps:
         lib_deps.append("@abseil-cpp//absl/strings:str_format")
-    if "@com_google_mpact-sim//mpact/sim/generic:arch_state" not in deps:
-        lib_deps.append("@com_google_mpact-sim//mpact/sim/generic:arch_state")
-    if "@com_google_mpact-sim//mpact/sim/generic:instruction" not in deps:
-        lib_deps.append("@com_google_mpact-sim//mpact/sim/generic:instruction")
+    if "@mpact-sim//mpact/sim/generic:arch_state" not in deps:
+        lib_deps.append("@mpact-sim//mpact/sim/generic:arch_state")
+    if "@mpact-sim//mpact/sim/generic:instruction" not in deps:
+        lib_deps.append("@mpact-sim//mpact/sim/generic:instruction")
     cc_library(
         name = name,
         srcs = [f for f in out_files if f.endswith(".cc")],
@@ -270,7 +270,7 @@
         outs = out_files,
         cmd = command,
         heuristic_label_expansion = 0,
-        tools = ["@com_google_mpact-sim//mpact/sim/decoder:proto_format_gen"],
+        tools = ["@mpact-sim//mpact/sim/decoder:proto_format_gen"],
     )
 
     # The rule for the lib that is built from the generated sources.
@@ -298,7 +298,7 @@
 # a bash array from $(SRCS), then instead of using $(SRCS) in the command, it
 # uses only the first element of that array.
 def _make_isa_tool_invocation_command(num_srcs, prefix, isa_name, generator):
-    cmd = "ARR=($(SRCS)); $(location @com_google_mpact-sim//mpact/sim/decoder:decoder_gen) "
+    cmd = "ARR=($(SRCS)); $(location @mpact-sim//mpact/sim/decoder:decoder_gen) "
 
     # Add the sources that are not in includes.
     for i in range(0, num_srcs):
@@ -313,7 +313,7 @@
 # those that will be included, the command includes creating a bash array from $(SRCS), then
 # instead of using $(SRCS) in the command, it uses only the first element of that array.
 def _make_bin_tool_invocation_command(num_srcs, prefix, decoder_name):
-    cmd = "ARR=($(SRCS)); $(location @com_google_mpact-sim//mpact/sim/decoder:bin_format_gen) "
+    cmd = "ARR=($(SRCS)); $(location @mpact-sim//mpact/sim/decoder:bin_format_gen) "
 
     # Add the sources that are not in includes.
     for i in range(0, num_srcs):
@@ -327,7 +327,7 @@
 # those that will be included, the command includes creating a bash array from $(SRCS), then
 # instead of using $(SRCS) in the command, it uses only the first element of that array.
 def _make_proto_tool_invocation_command(num_srcs, prefix, decoder_name, proto_files):
-    cmd = "ARR=($(SRCS)); $(location @com_google_mpact-sim//mpact/sim/decoder:proto_format_gen) "
+    cmd = "ARR=($(SRCS)); $(location @mpact-sim//mpact/sim/decoder:proto_format_gen) "
 
     # Add the sources that are not in includes.
     for i in range(0, num_srcs):
