diff --git a/examples/Cosmology/ConstantCosmoVolume/constant_volume.yml b/examples/Cosmology/ConstantCosmoVolume/constant_volume.yml
index a6ff72555ef68964508493856127d4cc739b7722..84764d333c416d5ef43fbe6896c9b5479c35b805 100644
--- a/examples/Cosmology/ConstantCosmoVolume/constant_volume.yml
+++ b/examples/Cosmology/ConstantCosmoVolume/constant_volume.yml
@@ -47,8 +47,10 @@ Scheduler:
   
 Gravity:
   mesh_side_length:   32
-  eta: 0.025
-  theta: 0.3
+  eta:                0.025
+  MAC:                adaptive
+  theta_cr:           0.5
+  epsilon_fmm:        0.0001
   comoving_DM_softening: 0.08	# 80 kpc = 1/25 of mean inter-particle separation
   max_physical_DM_softening: 0.08  # 80 kpc = 1/25 of mean inter-particle separation
   comoving_baryon_softening: 0.08	# 80 kpc = 1/25 of mean inter-particle separation
diff --git a/examples/Cosmology/ZeldovichPancake_3D/zeldovichPancake.yml b/examples/Cosmology/ZeldovichPancake_3D/zeldovichPancake.yml
index d43c78972b0bc8d1f250b95190dafef305abca3f..5e904fbe07adeeb3709d1e3a21d23a108470f475 100644
--- a/examples/Cosmology/ZeldovichPancake_3D/zeldovichPancake.yml
+++ b/examples/Cosmology/ZeldovichPancake_3D/zeldovichPancake.yml
@@ -48,9 +48,10 @@ Scheduler:
   
 Gravity:
   mesh_side_length:   32
-  eta: 0.025
-  theta: 0.3
-  r_cut_max: 5.
+  eta:                0.025
+  MAC:                adaptive
+  theta_cr:           0.5
+  epsilon_fmm:        0.0001
   comoving_DM_softening: 0.001
   max_physical_DM_softening: 0.001
   comoving_baryon_softening: 0.001
diff --git a/examples/EAGLE_DMO_low_z/EAGLE_DMO_100/eagle_100.yml b/examples/EAGLE_DMO_low_z/EAGLE_DMO_100/eagle_100.yml
index f4c5316aa0faac7de843b21792af6a2b635131d6..ef5c27b8b95578e680bbf5cbed91e77e5c71d83b 100644
--- a/examples/EAGLE_DMO_low_z/EAGLE_DMO_100/eagle_100.yml
+++ b/examples/EAGLE_DMO_low_z/EAGLE_DMO_100/eagle_100.yml
@@ -41,9 +41,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.85      # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       512
+  eta:                      0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric 
+  theta_cr:                 0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         256
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
 
diff --git a/examples/EAGLE_DMO_low_z/EAGLE_DMO_12/eagle_12.yml b/examples/EAGLE_DMO_low_z/EAGLE_DMO_12/eagle_12.yml
index f5a7c57458e1cea04701eb44ac6a0dda41419334..c127384d004985f4954e989db70b3c77ee637b08 100644
--- a/examples/EAGLE_DMO_low_z/EAGLE_DMO_12/eagle_12.yml
+++ b/examples/EAGLE_DMO_low_z/EAGLE_DMO_12/eagle_12.yml
@@ -41,9 +41,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.7       # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       32
+  eta:                      0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric 
+  theta_cr:                 0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         32
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
 
diff --git a/examples/EAGLE_DMO_low_z/EAGLE_DMO_25/eagle_25.yml b/examples/EAGLE_DMO_low_z/EAGLE_DMO_25/eagle_25.yml
index 15df02b2a0c4b735d9ce6b1e252a237b67354cb7..75743434bfb879a402b216ca0e7fd52918f28808 100644
--- a/examples/EAGLE_DMO_low_z/EAGLE_DMO_25/eagle_25.yml
+++ b/examples/EAGLE_DMO_low_z/EAGLE_DMO_25/eagle_25.yml
@@ -41,9 +41,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.7       # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       64
+  eta:                      0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric 
+  theta_cr:                 0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         64
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
 
diff --git a/examples/EAGLE_DMO_low_z/EAGLE_DMO_50/eagle_50.yml b/examples/EAGLE_DMO_low_z/EAGLE_DMO_50/eagle_50.yml
index b9c7237b819802f7fa12dd975bb53c8f698c20ff..25a9e255598471096b7a3f181958418982a25132 100644
--- a/examples/EAGLE_DMO_low_z/EAGLE_DMO_50/eagle_50.yml
+++ b/examples/EAGLE_DMO_low_z/EAGLE_DMO_50/eagle_50.yml
@@ -40,9 +40,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.7       # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       128
+  eta:                      0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric 
+  theta_cr:                 0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         128
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
 
diff --git a/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml b/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml
index ca539e3dcf262fc025d8e182e45c541c22a8c7d7..0a80d4abfade02a8d01ab46cd343f5de007416a0 100644
--- a/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml
+++ b/examples/EAGLE_ICs/EAGLE_12/eagle_12.yml
@@ -37,14 +37,15 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.7       # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       64
+  eta:                         0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                         geometric # Use the geometric opening angle condition
+  theta_cr:                    0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening:    1
+  mesh_side_length:            64
   comoving_DM_softening:         0.003320 # Comoving softening for DM (3.32 ckpc)
   max_physical_DM_softening:     0.001300 # Physical softening for DM (1.30 pkpc)
   comoving_baryon_softening:     0.001790 # Comoving softening for baryons (1.79 ckpc)
   max_physical_baryon_softening: 0.000700 # Physical softening for baryons (0.70 pkpc)
-  dithering:             0
   
 # Parameters for the hydrodynamics scheme
 SPH:
diff --git a/examples/EAGLE_ICs/EAGLE_25/eagle_25.yml b/examples/EAGLE_ICs/EAGLE_25/eagle_25.yml
index e598e96436f0fc3391e46e6bd0fcd0226fb2838e..bff0d1caaed588feacaab80ab1ecd84167ebe430 100644
--- a/examples/EAGLE_ICs/EAGLE_25/eagle_25.yml
+++ b/examples/EAGLE_ICs/EAGLE_25/eagle_25.yml
@@ -37,14 +37,15 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.7       # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       128
+  eta:                         0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                         geometric # Use the geometric opening angle condition
+  theta_cr:                    0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening:    1
+  mesh_side_length:            128
   comoving_DM_softening:         0.003320 # Comoving softening for DM (3.32 ckpc)
   max_physical_DM_softening:     0.001300 # Physical softening for DM (1.30 pkpc)
   comoving_baryon_softening:     0.001790 # Comoving softening for baryons (1.79 ckpc)
   max_physical_baryon_softening: 0.000700 # Physical softening for baryons (0.70 pkpc)
-  dithering:             0
   
 # Parameters for the hydrodynamics scheme
 SPH:
diff --git a/examples/EAGLE_ICs/EAGLE_50/eagle_50.yml b/examples/EAGLE_ICs/EAGLE_50/eagle_50.yml
index 825669a8e2d6b065dc8ae3da5869be577f62bf2c..7a89423aefe6b18a2c18310364fe07a0af8e7e89 100644
--- a/examples/EAGLE_ICs/EAGLE_50/eagle_50.yml
+++ b/examples/EAGLE_ICs/EAGLE_50/eagle_50.yml
@@ -37,14 +37,15 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  theta:                  0.7       # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       256
+  eta:                         0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                         geometric # Use the geometric opening angle condition
+  theta_cr:                    0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening:    1
+  mesh_side_length:            256
   comoving_DM_softening:         0.003320 # Comoving softening for DM (3.32 ckpc)
   max_physical_DM_softening:     0.001300 # Physical softening for DM (1.30 pkpc)
   comoving_baryon_softening:     0.001790 # Comoving softening for baryons (1.79 ckpc)
   max_physical_baryon_softening: 0.000700 # Physical softening for baryons (0.70 pkpc)
-  dithering:             0
 
 # Parameters for the hydrodynamics scheme
 SPH:
diff --git a/examples/EAGLE_low_z/EAGLE_100/eagle_100.yml b/examples/EAGLE_low_z/EAGLE_100/eagle_100.yml
index 12919bf5d598fe4e4fece1bf1f7539ac377244cd..5ef3d21716cf54f638b5e8ee89a5e3e71bab298c 100644
--- a/examples/EAGLE_low_z/EAGLE_100/eagle_100.yml
+++ b/examples/EAGLE_low_z/EAGLE_100/eagle_100.yml
@@ -43,10 +43,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025    # Constant dimensionless multiplier for time integration. 
-  theta:                  0.85      # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       256
-  dithering:              0
+  eta:                      0.025    # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric
+  theta_cr:                 0.7      # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         256
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
   comoving_baryon_softening:     0.0026994 # Comoving DM softening length (in internal units).
diff --git a/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml b/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml
index 8c2b1b36f0843a9bdadd5a01186d0cbcd7c46621..860c39ac782ab00f5333cd593939d8d059900407 100644
--- a/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml
+++ b/examples/EAGLE_low_z/EAGLE_12/eagle_12.yml
@@ -44,18 +44,15 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025     # Constant dimensionless multiplier for time integration.
-  MAC:                    geometric 
-  theta_cr:               0.7       # Opening angle (Multipole acceptance criterion)
+  eta:                      0.025     # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric 
+  theta_cr:                 0.7       # Opening angle (Multipole acceptance criterion)
   use_tree_below_softening: 1
-  allow_truncation_in_mac: 1
-  mesh_side_length:       32
-  dithering:              0
+  mesh_side_length:         32
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
   comoving_baryon_softening:     0.0026994 # Comoving DM softening length (in internal units).
   max_physical_baryon_softening: 0.0007    # Max physical DM softening length (in internal units).
-
   
 # Parameters for the hydrodynamics scheme
 SPH:
diff --git a/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml b/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml
index 622a60dd1cf381360140059b19e359fec651638d..0c5471941ebff5dc7aa5f549c250887ad7e59042 100644
--- a/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml
+++ b/examples/EAGLE_low_z/EAGLE_25/eagle_25.yml
@@ -51,10 +51,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025    # Constant dimensionless multiplier for time integration. 
-  theta:                  0.7      # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       64
-  dithering:              0
+  eta:                      0.025    # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric
+  theta_cr:                 0.7      # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         64
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
   comoving_baryon_softening:     0.0026994 # Comoving DM softening length (in internal units).
diff --git a/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml b/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml
index 005fcf566036edc6d1f0b53e9130e5ba95a31355..4e2de4b143fdddbdd75d70e9b672816f931ec45c 100644
--- a/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml
+++ b/examples/EAGLE_low_z/EAGLE_50/eagle_50.yml
@@ -43,10 +43,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025    # Constant dimensionless multiplier for time integration.
-  theta:                  0.7      # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       128
-  dithering:              0
+  eta:                      0.025    # Constant dimensionless multiplier for time integration.
+  MAC:                      geometric
+  theta_cr:                 0.7      # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening: 1
+  mesh_side_length:         128
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
   comoving_baryon_softening:     0.0026994 # Comoving DM softening length (in internal units).
diff --git a/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml b/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml
index b5c049fcc7ff2733c57727a6cd54b902dca1ddc9..59650017d6106a5934e3978f7be7f512250a84d5 100644
--- a/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml
+++ b/examples/EAGLE_low_z/EAGLE_6/eagle_6.yml
@@ -55,13 +55,10 @@ Statistics:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:                      0.025    # Constant dimensionless multiplier for time integration.
-  MAC:                      adaptive
-  epsilon_fmm:              0.001
+  MAC:                      geometric
   theta_cr:                 0.7      # Opening angle (Multipole acceptance criterion)
   use_tree_below_softening: 1
-  allow_truncation_in_MAC:  1
   mesh_side_length:         16
-  dithering:                0
   comoving_DM_softening:         0.0026994 # Comoving DM softening length (in internal units).
   max_physical_DM_softening:     0.0007    # Max physical DM softening length (in internal units).
   comoving_baryon_softening:     0.0026994 # Comoving DM softening length (in internal units).
diff --git a/examples/HydroTests/EvrardCollapse_3D/evrard.yml b/examples/HydroTests/EvrardCollapse_3D/evrard.yml
index ab438646383cd510dae4727abaf9a7f1fab5681b..7ca3c8ac216ab3338bcb56253e55eb8a181318ed 100644
--- a/examples/HydroTests/EvrardCollapse_3D/evrard.yml
+++ b/examples/HydroTests/EvrardCollapse_3D/evrard.yml
@@ -31,8 +31,10 @@ SPH:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                           0.025    # Constant dimensionless multiplier for time integration.
-  theta:                         0.7
+  eta:                0.025
+  MAC:                adaptive
+  theta_cr:           0.7
+  epsilon_fmm:        0.001
   max_physical_baryon_softening: 0.001    # Physical softening length (in internal units).
 
 # Parameters related to the initial conditions
diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_NFW_MN/isolated_galaxy.yml b/examples/IsolatedGalaxy/IsolatedGalaxy_NFW_MN/isolated_galaxy.yml
index d2ca7aae80862e1bc1e89e645c6a1bb3adfcba1b..a66446dd3245e1fcdbaa7eabdb39b2567ee9c89e 100644
--- a/examples/IsolatedGalaxy/IsolatedGalaxy_NFW_MN/isolated_galaxy.yml
+++ b/examples/IsolatedGalaxy/IsolatedGalaxy_NFW_MN/isolated_galaxy.yml
@@ -9,7 +9,9 @@ InternalUnitSystem:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:          0.025                   # Constant dimensionless multiplier for time integration.
-  theta:        0.7                     # Opening angle (Multipole acceptance criterion).
+  MAC:          geometric
+  theta_cr:     0.7                     # Opening angle (Multipole acceptance criterion).
+  use_tree_below_softening:  1
   max_physical_baryon_softening: 0.100  # Physical softening length (in internal units).
 
 # Parameters governing the time integration (Set dt_min and dt_max to the same value for a fixed time-step run.)
diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_dmparticles/isolated_galaxy.yml b/examples/IsolatedGalaxy/IsolatedGalaxy_dmparticles/isolated_galaxy.yml
index 27ab01d984319fea68d4d1ae8fb435a6adf895ce..aaa2f8bbacfa9500b4a99cf7c24308aff1fe3767 100644
--- a/examples/IsolatedGalaxy/IsolatedGalaxy_dmparticles/isolated_galaxy.yml
+++ b/examples/IsolatedGalaxy/IsolatedGalaxy_dmparticles/isolated_galaxy.yml
@@ -9,7 +9,9 @@ InternalUnitSystem:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:          0.025               # Constant dimensionless multiplier for time integration.
-  theta:        0.7                 # Opening angle (Multipole acceptance criterion).
+  MAC:          geometric
+  theta_cr:     0.7                 # Opening angle (Multipole acceptance criterion).
+  use_tree_below_softening:  1
   max_physical_DM_softening: 0.7    # Physical softening length (in internal units).
 
 # Parameters governing the time integration (Set dt_min and dt_max to the same value for a fixed time-step run.)
diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_feedback/isolated_galaxy.yml b/examples/IsolatedGalaxy/IsolatedGalaxy_feedback/isolated_galaxy.yml
index 0642e9312f0926cc0d005f9ec4b6d3f5215ea7d4..48b659c453b28e4a89778d601793976df39b3926 100644
--- a/examples/IsolatedGalaxy/IsolatedGalaxy_feedback/isolated_galaxy.yml
+++ b/examples/IsolatedGalaxy/IsolatedGalaxy_feedback/isolated_galaxy.yml
@@ -9,7 +9,9 @@ InternalUnitSystem:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:          0.025                 # Constant dimensionless multiplier for time integration.
-  theta:        0.7                   # Opening angle (Multipole acceptance criterion).
+  MAC:          geometric
+  theta_cr:     0.7                   # Opening angle (Multipole acceptance criterion).
+  use_tree_below_softening:  1
   max_physical_DM_softening:     0.35 # Physical softening length (in internal units).
   max_physical_baryon_softening: 0.35 # Physical softening length (in internal units).
 
diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_potential/isolated_galaxy.yml b/examples/IsolatedGalaxy/IsolatedGalaxy_potential/isolated_galaxy.yml
index 3bd743c2ec329057c7f63f987e4809744a07f7ba..d82c3544d6bb966d0ca7fb0db72883eff4a829ca 100644
--- a/examples/IsolatedGalaxy/IsolatedGalaxy_potential/isolated_galaxy.yml
+++ b/examples/IsolatedGalaxy/IsolatedGalaxy_potential/isolated_galaxy.yml
@@ -9,7 +9,9 @@ InternalUnitSystem:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:          0.025               # Constant dimensionless multiplier for time integration.
-  theta:        0.7                 # Opening angle (Multipole acceptance criterion).
+  MAC:          geometric
+  theta_cr:     0.7                 # Opening angle (Multipole acceptance criterion).
+  use_tree_below_softening:  1
   max_physical_baryon_softening: 0.100  # Physical softening length (in internal units).
 
 # Parameters governing the time integration (Set dt_min and dt_max to the same value for a fixed time-step run.)
diff --git a/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml b/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml
index 1403e13afd27122568fac083eb5cecef96ed330d..c2bbcac6aa7ed474646314d02f15e63ef0b93f0e 100644
--- a/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml
+++ b/examples/IsolatedGalaxy/IsolatedGalaxy_starformation/isolated_galaxy.yml
@@ -9,7 +9,9 @@ InternalUnitSystem:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:          0.025                 # Constant dimensionless multiplier for time integration.
-  theta:        0.7                   # Opening angle (Multipole acceptance criterion).
+  MAC:          geometric
+  theta_cr:     0.7                 # Opening angle (Multipole acceptance criterion).
+  use_tree_below_softening:  1
   max_physical_DM_softening:     0.2  # Physical softening length (in internal units).
   max_physical_baryon_softening: 0.2  # Physical softening length (in internal units).
 
diff --git a/examples/PMillennium/PMillennium-1536/p-mill-1536.yml b/examples/PMillennium/PMillennium-1536/p-mill-1536.yml
index f343650452a24f620edef88e42666e09213dbd64..e2e8439a71dac106b6f4fe0128805a96ff48f796 100644
--- a/examples/PMillennium/PMillennium-1536/p-mill-1536.yml
+++ b/examples/PMillennium/PMillennium-1536/p-mill-1536.yml
@@ -42,7 +42,9 @@ Statistics:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:                    0.025         
-  theta:                  0.5          
+  MAC:                    adaptive
+  theta_cr:               0.7
+  epsilon_fmm:            0.001
   comoving_DM_softening:     0.0208333  # 20.8333 kpc = 1/25 mean inter-particle separation
   max_physical_DM_softening: 0.0208333  # 20.8333 kpc = 1/25 mean inter-particle separation
   mesh_side_length:       512
diff --git a/examples/PMillennium/PMillennium-384/p-mill-384.yml b/examples/PMillennium/PMillennium-384/p-mill-384.yml
index 0e68969d0b590cec8058805e4644b2763c543be1..0e058b5b83f81de967be34c3237d1cf7060e1e4a 100644
--- a/examples/PMillennium/PMillennium-384/p-mill-384.yml
+++ b/examples/PMillennium/PMillennium-384/p-mill-384.yml
@@ -41,8 +41,10 @@ Statistics:
   
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025         
-  theta:                  0.5          
+  eta:                    0.025
+  MAC:                    adaptive
+  theta_cr:               0.7
+  epsilon_fmm:            0.001
   comoving_DM_softening:     0.08333  # 83.333 kpc = 1/25 mean inter-particle separation
   max_physical_DM_softening: 0.08333  # 83.333 kpc = 1/25 mean inter-particle separation
   mesh_side_length:       128
diff --git a/examples/PMillennium/PMillennium-768/p-mill-768.yml b/examples/PMillennium/PMillennium-768/p-mill-768.yml
index 1cd9e63b1f03ac65baf72701de276b8ff43c9575..3a058c2db9f2a0e171c8f7a56dec0b03e593c081 100644
--- a/examples/PMillennium/PMillennium-768/p-mill-768.yml
+++ b/examples/PMillennium/PMillennium-768/p-mill-768.yml
@@ -42,7 +42,9 @@ Statistics:
 # Parameters for the self-gravity scheme
 Gravity:
   eta:                    0.025         
-  theta:                  0.5          
+  MAC:                    adaptive
+  theta_cr:               0.7
+  epsilon_fmm:            0.001
   comoving_DM_softening:     0.041666  # 41.6666 kpc = 1/25 mean inter-particle separation
   max_physical_DM_softening: 0.041666  # 41.6666 kpc = 1/25 mean inter-particle separation
   mesh_side_length:       256
diff --git a/examples/Planetary/EarthImpact/earth_impact.yml b/examples/Planetary/EarthImpact/earth_impact.yml
index 336a0eb82d570a1544c1344ab2261e35dbf3d59e..9f147b0135ffab70da2c3f17f1bda1e111a803aa 100644
--- a/examples/Planetary/EarthImpact/earth_impact.yml
+++ b/examples/Planetary/EarthImpact/earth_impact.yml
@@ -45,7 +45,10 @@ SPH:
 # Parameters for the self-gravity scheme
 Gravity:
     eta:                            0.025   # Constant dimensionless multiplier for time integration.
-    theta:                          0.7     # Opening angle (Multipole acceptance criterion)
+    MAC:                            adaptive
+    theta_cr:                       0.7     
+    epsilon_fmm:                    0.001
+    use_tree_below_softening:       1
     max_physical_baryon_softening:  0.003   # Physical softening length (in internal units).
 
 # Parameters for the task scheduling
diff --git a/examples/QuickLymanAlpha/L050N0752/qla_50.yml b/examples/QuickLymanAlpha/L050N0752/qla_50.yml
index 9eeac77e732eeeb32c5440dd5586199c401fedf1..0748fa112b10c5d8e93502f69984bbbda54edca1 100644
--- a/examples/QuickLymanAlpha/L050N0752/qla_50.yml
+++ b/examples/QuickLymanAlpha/L050N0752/qla_50.yml
@@ -37,14 +37,16 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025    # Constant dimensionless multiplier for time integration.
-  theta:                  0.7      # Opening angle (Multipole acceptance criterion)
-  mesh_side_length:       256
+  eta:                         0.025    # Constant dimensionless multiplier for time integration.
+  MAC:                         adaptive
+  epsilon_fmm:                 0.001
+  theta_cr:                    0.7       # Opening angle (Multipole acceptance criterion)
+  use_tree_below_softening:    1
+  mesh_side_length:            256
   comoving_DM_softening:         0.003320 # Comoving softening for DM (3.32 ckpc)
   max_physical_DM_softening:     0.001300 # Physical softening for DM (1.30 pkpc)
   comoving_baryon_softening:     0.001790 # Comoving softening for baryons (1.79 ckpc)
   max_physical_baryon_softening: 0.000700 # Physical softening for baryons (0.70 pkpc)
-  dithering:              0
 
 # Parameters for the hydrodynamics scheme
 SPH:
diff --git a/examples/SantaBarbara/SantaBarbara-128/santa_barbara.yml b/examples/SantaBarbara/SantaBarbara-128/santa_barbara.yml
index 5ee17b5a5877c60eebab5075aebb1bec53429c60..d71394d1899de182a6df527ddd2b0c69007b2f68 100644
--- a/examples/SantaBarbara/SantaBarbara-128/santa_barbara.yml
+++ b/examples/SantaBarbara/SantaBarbara-128/santa_barbara.yml
@@ -41,8 +41,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025  
-  theta:                  0.5
+  eta:                      0.025
+  MAC:                      adpative
+  theta_cr:                 0.7
+  epsilon_fmm:              0.001
+  use_tree_below_softening: 1
   comoving_DM_softening:         0.02    # 20 kpc = 1/25 mean inter-particle separation
   max_physical_DM_softening:     0.00526 # 20 ckpc = 5.26 pkpc at z=2.8 (EAGLE-like evolution of softening).
   comoving_baryon_softening:     0.02    # 20 kpc = 1/25 mean inter-particle separation
diff --git a/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml b/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml
index e83a136c21404f3dcb4a6a0c9921653d71080fdd..e9a8549cee72f5219182fd8c41c3477b1f02322a 100644
--- a/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml
+++ b/examples/SantaBarbara/SantaBarbara-256/santa_barbara.yml
@@ -41,8 +41,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                    0.025  
-  theta:                  0.5
+  eta:                      0.025
+  MAC:                      adpative
+  theta_cr:                 0.7
+  epsilon_fmm:              0.001
+  use_tree_below_softening: 1
   comoving_DM_softening:         0.01    # 10 kpc = 1/25 mean inter-particle separation
   max_physical_DM_softening:     0.00263 # 10 ckpc = 2.63 pkpc at z=2.8 (EAGLE-like evolution of softening).
   comoving_baryon_softening:     0.01    # 10 kpc = 1/25 mean inter-particle separation
diff --git a/examples/SmallCosmoVolume/SmallCosmoVolume_DM/small_cosmo_volume_dm.yml b/examples/SmallCosmoVolume/SmallCosmoVolume_DM/small_cosmo_volume_dm.yml
index 95991e9f1d7e385826e33f6ae0fa343173966084..85abb33b38ad87b716021e094fd483813e8a51ce 100644
--- a/examples/SmallCosmoVolume/SmallCosmoVolume_DM/small_cosmo_volume_dm.yml
+++ b/examples/SmallCosmoVolume/SmallCosmoVolume_DM/small_cosmo_volume_dm.yml
@@ -21,8 +21,10 @@ TimeIntegration:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:          0.025         
-  theta:        0.5           
+  eta:          0.025
+  MAC:          adpative
+  theta_cr:     0.7
+  epsilon_fmm:  0.001
   comoving_DM_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   max_physical_DM_softening: 0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   mesh_side_length:       64
diff --git a/examples/SmallCosmoVolume/SmallCosmoVolume_Snipshots/small_cosmo_volume.yml b/examples/SmallCosmoVolume/SmallCosmoVolume_Snipshots/small_cosmo_volume.yml
index dc554e3dd8182b717803a902d1fb8b9f698d2f8e..5d297a3dc88674a41414311286d2b02032e83f17 100644
--- a/examples/SmallCosmoVolume/SmallCosmoVolume_Snipshots/small_cosmo_volume.yml
+++ b/examples/SmallCosmoVolume/SmallCosmoVolume_Snipshots/small_cosmo_volume.yml
@@ -21,8 +21,10 @@ TimeIntegration:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:          0.025         
-  theta:        0.5           
+  eta:          0.025
+  MAC:          adpative
+  theta_cr:     0.7
+  epsilon_fmm:  0.001
   comoving_DM_softening:         0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   max_physical_DM_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   comoving_baryon_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
diff --git a/examples/SmallCosmoVolume/SmallCosmoVolume_VELOCIraptor/small_cosmo_volume.yml b/examples/SmallCosmoVolume/SmallCosmoVolume_VELOCIraptor/small_cosmo_volume.yml
index 0142e806db0c1e2e6261825a2d531f1937defced..2cd7e3efd85e70c41e85bc1a66101245845a9d1c 100644
--- a/examples/SmallCosmoVolume/SmallCosmoVolume_VELOCIraptor/small_cosmo_volume.yml
+++ b/examples/SmallCosmoVolume/SmallCosmoVolume_VELOCIraptor/small_cosmo_volume.yml
@@ -21,8 +21,10 @@ TimeIntegration:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:          0.025         
-  theta:        0.5           
+  eta:          0.025
+  MAC:          adpative
+  theta_cr:     0.7
+  epsilon_fmm:  0.001
   comoving_DM_softening:         0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   max_physical_DM_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   comoving_baryon_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
diff --git a/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml b/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml
index 0d93406eebc903c880a53ffa15f874e21902675b..2528a81eeacfe4bebf3dd304ccf22411a22d0956 100644
--- a/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml
+++ b/examples/SmallCosmoVolume/SmallCosmoVolume_cooling/small_cosmo_volume.yml
@@ -21,8 +21,10 @@ TimeIntegration:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:          0.025         
-  theta:        0.3           
+  eta:          0.025
+  MAC:          adpative
+  theta_cr:     0.7
+  epsilon_fmm:  0.001
   comoving_DM_softening:         0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   max_physical_DM_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   comoving_baryon_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
diff --git a/examples/SmallCosmoVolume/SmallCosmoVolume_hydro/small_cosmo_volume.yml b/examples/SmallCosmoVolume/SmallCosmoVolume_hydro/small_cosmo_volume.yml
index 250fdc653bdad771c09f8e76819a8a475393d504..da08070bbcd78086a9f53d1bb808d8d48a7c655a 100644
--- a/examples/SmallCosmoVolume/SmallCosmoVolume_hydro/small_cosmo_volume.yml
+++ b/examples/SmallCosmoVolume/SmallCosmoVolume_hydro/small_cosmo_volume.yml
@@ -21,8 +21,10 @@ TimeIntegration:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:          0.025         
-  theta:        0.5           
+  eta:          0.025
+  MAC:          adpative
+  theta_cr:     0.7
+  epsilon_fmm:  0.001
   comoving_DM_softening:         0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   max_physical_DM_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
   comoving_baryon_softening:     0.0889     # 1/25th of the mean inter-particle separation: 88.9 kpc
diff --git a/examples/SubgridTests/PressureFloor/pressureFloor.yml b/examples/SubgridTests/PressureFloor/pressureFloor.yml
index f9df74dcefb14204264a4ffc9a7326d3453f718d..b20eb3a3026972ad7756a155865fefd88c5a798b 100644
--- a/examples/SubgridTests/PressureFloor/pressureFloor.yml
+++ b/examples/SubgridTests/PressureFloor/pressureFloor.yml
@@ -45,9 +45,10 @@ GEARPressureFloor:
 
   # Parameters for the self-gravity scheme
 Gravity:
-  mesh_side_length:              12       # Number of cells along each axis for the periodic gravity mesh.
-  eta:                           2.5     # Constant dimensionless multiplier for time integration.
-  theta:                         0.7       # Opening angle (Multipole acceptance criterion).
-  max_physical_DM_softening:     0.5    # Maximal Plummer-equivalent softening length in physical coordinates for DM particles (in internal units).
-  max_physical_baryon_softening: 0.5    # Maximal Plummer-equivalent softening length in physical coordinates for baryon particles (in internal units).
-  softening_ratio_background:    0.04      # Fraction of the mean inter-particle separation to use as Plummer-equivalent softening for the background DM particles.
+  mesh_side_length:              16       # Number of cells along each axis for the periodic gravity mesh.
+  eta:                           0.025    # Constant dimensionless multiplier for time integration.
+  MAC:                           geometric
+  theta_cr:                      0.7      # Opening angle (Multipole acceptance criterion).
+  max_physical_DM_softening:     0.5      # Maximal Plummer-equivalent softening length in physical coordinates for DM particles (in internal units).
+  max_physical_baryon_softening: 0.5      # Maximal Plummer-equivalent softening length in physical coordinates for baryon particles (in internal units).
+  softening_ratio_background:    0.04     # Fraction of the mean inter-particle separation to use as Plummer-equivalent softening for the background DM particles.
diff --git a/examples/nIFTyCluster/Baryonic/nifty.yml b/examples/nIFTyCluster/Baryonic/nifty.yml
index 7b58c80009e9401f4d6ee5b9656940fa89dd2409..501e9578bbc6face9efc7fb1ab9fa0120ae897e5 100644
--- a/examples/nIFTyCluster/Baryonic/nifty.yml
+++ b/examples/nIFTyCluster/Baryonic/nifty.yml
@@ -40,8 +40,11 @@ Statistics:
 
 # Parameters for the self-gravity scheme
 Gravity:
-  eta:                           0.025  # Constant dimensionless multiplier for time integration. 
-  theta:                         0.5    # Opening angle (Multipole acceptance criterion)
+  eta:                           0.025    # Constant dimensionless multiplier for time integration.
+  MAC:                           adaptive 
+  epsilon_fmm:                   0.001 
+  theta_cr:                      0.7      
+  use_tree_below_softening:      1
   comoving_DM_softening:         0.02   # Comoving softening length (in internal units).
   comoving_baryon_softening:     0.02   # Comoving softening length (in internal units).
   max_physical_DM_softening:     0.005  # Max physical softening length (in internal units).
diff --git a/examples/parameter_example.yml b/examples/parameter_example.yml
index 523139e450b6196f553b3983cb4fbcabaaacec18..86f3980d7288e419cac570ffb9b2ab708338cf8b 100644
--- a/examples/parameter_example.yml
+++ b/examples/parameter_example.yml
@@ -67,8 +67,8 @@ Gravity:
   MAC:                           adaptive  # Choice of mulitpole acceptance criterion: 'adaptive' OR 'geometric'.
   epsilon_fmm:                   0.001     # Tolerance parameter for the adaptive multipole acceptance criterion.
   theta_cr:                      0.7       # Opening angle for the purely gemoetric criterion.
-  use_tree_below_softening:      1         # Can the gravity code use the multipole interactions below the softening scale?
-  allow_truncation_in_MAC:       1         # Can the Multipole acceptance criterion use the truncated force estimator?
+  use_tree_below_softening:      0         # (Optional) Can the gravity code use the multipole interactions below the softening scale?
+  allow_truncation_in_MAC:       0         # (Optional) Can the Multipole acceptance criterion use the truncated force estimator?
   comoving_DM_softening:         0.0026994 # Comoving Plummer-equivalent softening length for DM particles (in internal units).
   max_physical_DM_softening:     0.0007    # Maximal Plummer-equivalent softening length in physical coordinates for DM particles (in internal units).
   comoving_baryon_softening:     0.0026994 # Comoving Plummer-equivalent softening length for baryon particles (in internal units).
diff --git a/src/gravity_properties.c b/src/gravity_properties.c
index f0be3fd30f2903ac50f4ff3605f17f8b8ac7897a..a58e822ab808d08aab48b746912c601f20fcaa54 100644
--- a/src/gravity_properties.c
+++ b/src/gravity_properties.c
@@ -121,7 +121,7 @@ void gravity_props_init(struct gravity_props *p, struct swift_params *params,
   /* Consider truncated forces in the MAC? */
   if (p->use_adaptive_tolerance)
     p->consider_truncation_in_MAC =
-        parser_get_param_int(params, "Gravity:allow_truncation_in_MAC");
+        parser_get_opt_param_int(params, "Gravity:allow_truncation_in_MAC", 0);
 
   /* Are we allowing tree use below softening? */
   p->use_tree_below_softening =