diff --git a/MaterialLib/SolidModels/MFront/CreateMFront.cpp b/MaterialLib/SolidModels/MFront/CreateMFront.cpp
index db8b12ae1715bcf252e11f0ead082c8dec446cbe..07fbd39e0fcf617db22cb778e87b1817baa6f019 100644
--- a/MaterialLib/SolidModels/MFront/CreateMFront.cpp
+++ b/MaterialLib/SolidModels/MFront/CreateMFront.cpp
@@ -29,9 +29,7 @@ std::unique_ptr<MechanicsBase<DisplacementDim>> createMFront(
         local_coordinate_system,
     BaseLib::ConfigTree const& config)
 {
-    bool const library_path_is_relative_to_prj_file = true;
-    auto conf = createMFrontConfig(DisplacementDim, parameters, config,
-                                   library_path_is_relative_to_prj_file);
+    auto conf = createMFrontConfig(DisplacementDim, parameters, config);
 
     return std::make_unique<MFront<DisplacementDim>>(
         std::move(conf.behaviour), std::move(conf.material_properties),
diff --git a/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.cpp b/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.cpp
index 8666eb126107c0d95f44b24ffc0410466046c77a..eb79dc49b6c2ff787e7b0a1cfdaaf65630007e29 100644
--- a/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.cpp
+++ b/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.cpp
@@ -324,23 +324,31 @@ namespace MaterialLib::Solids::MFront
 MFrontConfig createMFrontConfig(
     int const displacement_dim,
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
-    BaseLib::ConfigTree const& config,
-    bool const library_path_is_relative_to_prj_file)
+    BaseLib::ConfigTree const& config)
 {
     INFO("### MFRONT ########################################################");
 
     //! \ogs_file_param{material__solid__constitutive_relation__type}
     config.checkConfigParameter("type", "MFront");
 
-    auto const library_name =
-        //! \ogs_file_param{material__solid__constitutive_relation__MFront__library}
-        config.getConfigParameterOptional<std::string>("library");
+    //! \ogs_file_param{material__solid__constitutive_relation__MFront__library}
+    auto const library = config.getConfigSubtreeOptional("library");
+
+    bool const library_path_is_relative_to_prj_file =
+        library /* If no library tag is specified in the prj file, the lib
+                   shipped with OGS is used, whose path is not relative to the
+                   project file. */
+        &&
+        //! \ogs_file_attr{material__solid__constitutive_relation__MFront__library__path_is_relative_to_prj_file}
+        library->getConfigAttribute("path_is_relative_to_prj_file", true);
+
+    std::string const library_name =
+        library ? library->getValue<std::string>() : "libOgsMFrontBehaviour";
+
     auto const lib_path =
-        library_name ? (library_path_is_relative_to_prj_file
-                            ? BaseLib::joinPaths(BaseLib::getProjectDirectory(),
-                                                 *library_name)
-                            : *library_name)
-                     : "libOgsMFrontBehaviour";
+        library_path_is_relative_to_prj_file
+            ? BaseLib::joinPaths(BaseLib::getProjectDirectory(), library_name)
+            : library_name;
 
     mgis::behaviour::Hypothesis hypothesis;
     if (displacement_dim == 2)
diff --git a/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.h b/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.h
index 0b4394b8078cc4b67e452b2f7de4c9e5899c7c6c..09a9ab96e908a9704a4c5eca1c9de16430cdba32 100644
--- a/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.h
+++ b/MaterialLib/SolidModels/MFront/CreateMFrontGeneric.h
@@ -26,8 +26,7 @@ struct MFrontConfig
 MFrontConfig createMFrontConfig(
     int const displacement_dim,
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
-    BaseLib::ConfigTree const& config,
-    bool const library_path_is_relative_to_prj_file);
+    BaseLib::ConfigTree const& config);
 
 template <int DisplacementDim, typename Gradients, typename TDynForces,
           typename ExtStateVars>
@@ -37,11 +36,9 @@ createMFrontGeneric(
     std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
     std::optional<ParameterLib::CoordinateSystem> const&
         local_coordinate_system,
-    BaseLib::ConfigTree const& config,
-    bool const library_path_is_relative_to_prj_file)
+    BaseLib::ConfigTree const& config)
 {
-    auto conf = createMFrontConfig(DisplacementDim, parameters, config,
-                                   library_path_is_relative_to_prj_file);
+    auto conf = createMFrontConfig(DisplacementDim, parameters, config);
 
     return std::make_unique<
         MFrontGeneric<DisplacementDim, Gradients, TDynForces, ExtStateVars>>(
diff --git a/ProcessLib/LargeDeformation/ConstitutiveRelations/CreateConstitutiveSetting.cpp b/ProcessLib/LargeDeformation/ConstitutiveRelations/CreateConstitutiveSetting.cpp
index 5e3d8e961ea8708dff6a29b8091ff613c7ab613a..a594500d2aeb1fb0277277b5d4871e8751c55182 100644
--- a/ProcessLib/LargeDeformation/ConstitutiveRelations/CreateConstitutiveSetting.cpp
+++ b/ProcessLib/LargeDeformation/ConstitutiveRelations/CreateConstitutiveSetting.cpp
@@ -26,13 +26,10 @@ std::unique_ptr<SolidConstitutiveRelation<DisplacementDim>> createMFrontGeneric(
     namespace MSM = MaterialLib::Solids::MFront;
     using namespace boost::mp11;
 
-    bool const library_path_is_relative_to_prj_file = true;
-
     return MSM::createMFrontGeneric<
         DisplacementDim, mp_list<MSM::DeformationGradient>,
         mp_list<MSM::SecondPiolaKirchhoffStress>, mp_list<MSM::Temperature>>(
-        parameters, local_coordinate_system, config,
-        library_path_is_relative_to_prj_file);
+        parameters, local_coordinate_system, config);
 }
 
 template <int DisplacementDim>
diff --git a/ProcessLib/ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/CreateConstitutiveSetting.cpp b/ProcessLib/ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/CreateConstitutiveSetting.cpp
index f60915a8c0aff5ee85ab8c3cd4aa3ab452df9351..208056cb77158e7a30611ce0ecb81ff626238723 100644
--- a/ProcessLib/ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/CreateConstitutiveSetting.cpp
+++ b/ProcessLib/ThermoRichardsMechanics/ConstitutiveStressSaturation_StrainPressureTemperature/CreateConstitutiveSetting.cpp
@@ -27,13 +27,10 @@ std::unique_ptr<SolidConstitutiveRelation<DisplacementDim>> createMFrontGeneric(
     namespace MSM = MaterialLib::Solids::MFront;
     using namespace boost::mp11;
 
-    bool const library_path_is_relative_to_prj_file = true;
-
     return MSM::createMFrontGeneric<
         DisplacementDim, mp_list<MSM::Strain, MSM::LiquidPressure>,
         mp_list<MSM::Stress, MSM::Saturation>, mp_list<MSM::Temperature>>(
-        parameters, local_coordinate_system, config,
-        library_path_is_relative_to_prj_file);
+        parameters, local_coordinate_system, config);
 }
 
 template <int DisplacementDim>
diff --git a/Tests/MaterialLib/CheckParamPassingMFront.cpp b/Tests/MaterialLib/CheckParamPassingMFront.cpp
index d9ef2df7220e2eb4a4eae7e8663815202d170f05..83b8e7045d8f5f4e477c35f9809390c378abee9a 100644
--- a/Tests/MaterialLib/CheckParamPassingMFront.cpp
+++ b/Tests/MaterialLib/CheckParamPassingMFront.cpp
@@ -97,7 +97,7 @@ auto createMFront(
     const char* xml = R"XML(
         <type>MFront</type>
         <behaviour>CheckParamPassing1</behaviour>
-        <library>libOgsMFrontBehaviourForUnitTests</library>
+        <library path_is_relative_to_prj_file="false">libOgsMFrontBehaviourForUnitTests</library>
         <material_properties>
             <material_property name="YoungModulus" parameter="E"/>
             <material_property name="PoissonRatio" parameter="nu"/>
@@ -113,7 +113,7 @@ auto createMFront(
         3, boost::mp11::mp_list<MSM::Strain, MSM::LiquidPressure>,
         boost::mp11::mp_list<MSM::Stress, MSM::Saturation>,
         boost::mp11::mp_list<MSM::Temperature>>(
-        parameters, local_coordinate_system, config_tree, false);
+        parameters, local_coordinate_system, config_tree);
 }
 
 TEST(MaterialLib_CheckParamPassingMFront, SuccessTest)
diff --git a/Tests/MaterialLib/CheckStiffnessMatrixMFront.cpp b/Tests/MaterialLib/CheckStiffnessMatrixMFront.cpp
index 2af9d71d8919146e4f955a50ccb9ebfdb38b75f5..6d4708563a5a43151f522b0372eeeeb8751bd31b 100644
--- a/Tests/MaterialLib/CheckStiffnessMatrixMFront.cpp
+++ b/Tests/MaterialLib/CheckStiffnessMatrixMFront.cpp
@@ -29,7 +29,7 @@ auto createMFront(std::string const& behaviour)
     auto const xml = fmt::format(R"XML(
         <type>MFront</type>
         <behaviour>{}</behaviour>
-        <library>libOgsMFrontBehaviourForUnitTests</library>
+        <library path_is_relative_to_prj_file="false">libOgsMFrontBehaviourForUnitTests</library>
         <material_properties />
         )XML",
                                  behaviour);
@@ -41,7 +41,7 @@ auto createMFront(std::string const& behaviour)
     return MSM::createMFrontGeneric<
         3, boost::mp11::mp_list<MSM::Strain, MSM::LiquidPressure>,
         boost::mp11::mp_list<MSM::Stress, MSM::Saturation>, ExtStateVars>(
-        parameters, local_coordinate_system, config_tree, false);
+        parameters, local_coordinate_system, config_tree);
 }
 
 struct TestDataBase
diff --git a/Tests/MaterialLib/ThermoporoelasticityMFront.cpp b/Tests/MaterialLib/ThermoporoelasticityMFront.cpp
index 8d841442345e5b71597d98b44147735c2c9c4e6f..10d761e6d155b884807edf8ca504c21968757601 100644
--- a/Tests/MaterialLib/ThermoporoelasticityMFront.cpp
+++ b/Tests/MaterialLib/ThermoporoelasticityMFront.cpp
@@ -131,7 +131,7 @@ static auto createMFront(
         3, boost::mp11::mp_list<MSM::Strain, MSM::LiquidPressure>,
         boost::mp11::mp_list<MSM::Stress, MSM::Saturation>,
         boost::mp11::mp_list<MSM::Temperature>>(
-        parameters, local_coordinate_system, config_tree, false);
+        parameters, local_coordinate_system, config_tree);
 }
 
 TEST(MaterialLib_ThermoPoroElasticityMFront, IsochoricDrainedHeating)