diff --git a/extensions/openpower-pels/manager.hpp b/extensions/openpower-pels/manager.hpp
index 1aa15ed..d58b36b 100644
--- a/extensions/openpower-pels/manager.hpp
+++ b/extensions/openpower-pels/manager.hpp
@@ -51,7 +51,7 @@
         PELInterface(logManager.getBus(), OBJ_LOGGING),
         _logManager(logManager), _eventLogger(std::move(creatorFunc)),
         _repo(getPELRepoPath()),
-        _registry(getMessageRegistryPath() / message::registryFileName),
+        _registry(getPELReadOnlyDataPath() / message::registryFileName),
         _dataIface(std::move(dataIface))
     {
     }
diff --git a/extensions/openpower-pels/paths.cpp b/extensions/openpower-pels/paths.cpp
index cf8df2e..a9e865c 100644
--- a/extensions/openpower-pels/paths.cpp
+++ b/extensions/openpower-pels/paths.cpp
@@ -40,7 +40,7 @@
     return repoPath;
 }
 
-fs::path getMessageRegistryPath()
+fs::path getPELReadOnlyDataPath()
 {
     return std::filesystem::path{"/usr/share/phosphor-logging/pels"};
 }
diff --git a/extensions/openpower-pels/paths.hpp b/extensions/openpower-pels/paths.hpp
index 91d8c5f..8d7a20f 100644
--- a/extensions/openpower-pels/paths.hpp
+++ b/extensions/openpower-pels/paths.hpp
@@ -17,8 +17,8 @@
 std::filesystem::path getPELRepoPath();
 
 /**
- * @brief Returns the path to the message registry JSON file
+ * @brief Returns the path to the read only data directory
  */
-std::filesystem::path getMessageRegistryPath();
+std::filesystem::path getPELReadOnlyDataPath();
 } // namespace pels
 } // namespace openpower
diff --git a/extensions/openpower-pels/tools/peltool.cpp b/extensions/openpower-pels/tools/peltool.cpp
index 1be5953..3abdc74 100644
--- a/extensions/openpower-pels/tools/peltool.cpp
+++ b/extensions/openpower-pels/tools/peltool.cpp
@@ -40,7 +40,7 @@
 namespace pv = openpower::pels::pel_values;
 
 using PELFunc = std::function<void(const PEL&)>;
-message::Registry registry(getMessageRegistryPath() / message::registryFileName,
+message::Registry registry(getPELReadOnlyDataPath() / message::registryFileName,
                            false);
 namespace service
 {
diff --git a/test/openpower-pels/paths.cpp b/test/openpower-pels/paths.cpp
index 254d2d0..6ada712 100644
--- a/test/openpower-pels/paths.cpp
+++ b/test/openpower-pels/paths.cpp
@@ -50,17 +50,17 @@
     return repoPath;
 }
 
-std::filesystem::path getMessageRegistryPath()
+std::filesystem::path getPELReadOnlyDataPath()
 {
-    static std::string registryPath;
+    static std::string dataPath;
 
-    if (registryPath.empty())
+    if (dataPath.empty())
     {
-        char templ[] = "/tmp/msgregtestXXXXXX";
-        registryPath = mkdtemp(templ);
+        char templ[] = "/tmp/pelrodatatestXXXXXX";
+        dataPath = mkdtemp(templ);
     }
 
-    return registryPath;
+    return dataPath;
 }
 
 } // namespace pels
diff --git a/test/openpower-pels/pel_manager_test.cpp b/test/openpower-pels/pel_manager_test.cpp
index 00427c2..92713e9 100644
--- a/test/openpower-pels/pel_manager_test.cpp
+++ b/test/openpower-pels/pel_manager_test.cpp
@@ -208,7 +208,7 @@
 }
 )";
 
-    auto path = getMessageRegistryPath();
+    auto path = getPELReadOnlyDataPath();
     fs::create_directories(path);
     path /= "message_registry.json";
 
diff --git a/test/openpower-pels/pel_utils.hpp b/test/openpower-pels/pel_utils.hpp
index fae62cd..fb7662e 100644
--- a/test/openpower-pels/pel_utils.hpp
+++ b/test/openpower-pels/pel_utils.hpp
@@ -33,7 +33,7 @@
     {
         pelIDFile = openpower::pels::getPELIDFile();
         repoPath = openpower::pels::getPELRepoPath();
-        registryPath = openpower::pels::getMessageRegistryPath();
+        registryPath = openpower::pels::getPELReadOnlyDataPath();
     }
 
     void TearDown() override
