diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml
index 97572f029d0020f090a8fd16839028ac9f088cf9..ba05c709a27b163386e36f680812e0cf24f10277 100644
--- a/.gitlab/pipeline/zombienet/polkadot.yml
+++ b/.gitlab/pipeline/zombienet/polkadot.yml
@@ -158,13 +158,21 @@ zombienet-polkadot-functional-0011-async-backing-6-seconds-rate:
       --local-dir="${LOCAL_DIR}/functional"
       --test="0011-async-backing-6-seconds-rate.zndsl"
 
-zombienet-polkadot-functional-0012-elastic-scaling-mvp:
+zombienet-polkadot-elastic-scaling-0001-basic-3cores-6s-blocks:
   extends:
     - .zombienet-polkadot-common
   script:
     - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
-      --local-dir="${LOCAL_DIR}/functional"
-      --test="0012-elastic-scaling-mvp.zndsl"
+      --local-dir="${LOCAL_DIR}/elastic_scaling"
+      --test="0001-basic-3cores-6s-blocks.zndsl"
+
+zombienet-polkadot-elastic-scaling-0002-elastic-scaling-doesnt-break-parachains:
+  extends:
+    - .zombienet-polkadot-common
+  script:
+    - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh
+      --local-dir="${LOCAL_DIR}/elastic_scaling"
+      --test="0002-elastic-scaling-doesnt-break-parachains.zndsl"
 
 zombienet-polkadot-smoke-0001-parachains-smoke-test:
   extends:
diff --git a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml
new file mode 100644
index 0000000000000000000000000000000000000000..db508e14dbaa5c443e30c6c50d9d835927055162
--- /dev/null
+++ b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml
@@ -0,0 +1,42 @@
+[settings]
+timeout = 1000
+
+[relaychain.genesis.runtimeGenesis.patch.configuration.config.async_backing_params]
+  max_candidate_depth = 6
+  allowed_ancestry_len = 2
+
+[relaychain.genesis.runtimeGenesis.patch.configuration.config.scheduler_params]
+  max_validators_per_core = 1
+  scheduling_lookahead = 2
+  num_cores = 3
+
+[relaychain.genesis.runtimeGenesis.patch.configuration.config.approval_voting_params]
+  needed_approvals = 3
+  max_approval_coalesce_count = 5
+
+[relaychain]
+default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}"
+chain = "rococo-local"
+default_command = "polkadot"
+
+  [relaychain.default_resources]
+  limits = { memory = "4G", cpu = "2" }
+  requests = { memory = "2G", cpu = "1" }
+
+  [[relaychain.node_groups]]
+  name = "elastic-validator"
+  count = 5
+  args = [ "-lparachain=debug,parachain::candidate-backing=trace,parachain::provisioner=trace,parachain::prospective-parachains=trace,runtime=debug"]
+
+{% for id in range(2000,2002) %}
+[[parachains]]
+id = {{id}}
+addToGenesis = true
+
+    [parachains.collator]
+    name = "some-parachain"
+    image = "{{COL_IMAGE}}"
+    command = "adder-collator"
+    args = ["-lparachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug"]
+{% endfor %}
+
diff --git a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl
new file mode 100644
index 0000000000000000000000000000000000000000..6ec906e58df8ad1bfd64ae3b2260ca48ce75a317
--- /dev/null
+++ b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.zndsl
@@ -0,0 +1,24 @@
+Description: Test with adder collator using 3 cores and async backing
+Network: ./0001-basic-3cores-6s-blocks.toml
+Creds: config
+
+# Check authority status.
+elastic-validator-0: reports node_roles is 4
+elastic-validator-1: reports node_roles is 4
+elastic-validator-2: reports node_roles is 4
+elastic-validator-3: reports node_roles is 4
+elastic-validator-4: reports node_roles is 4
+
+
+# Register 2 extra cores to this some-parachain.
+elastic-validator-0: js-script ./assign-core.js with "2000,0" return is 0 within 600 seconds
+elastic-validator-0: js-script ./assign-core.js with "2000,1" return is 0 within 600 seconds
+
+# Wait for 10 relay chain blocks 
+elastic-validator-0: reports substrate_block_height{status="best"} is at least 20 within 120 seconds
+
+# Parachain should progress with 3 blocks per relay chain block, so it's reasonable to expect state to be 
+# at least 50, assuming some tolerance 
+some-parachain: log line contains "BlockData { state: 50, add: 2 }" within 10 seconds
+some-parachain-1: count of log lines containing "BlockData { state: 24, add: 2 }" is 0 within 10 seconds
+
diff --git a/polkadot/zombienet_tests/functional/0012-elastic-scaling-mvp.toml b/polkadot/zombienet_tests/elastic_scaling/0002-elastic-scaling-doesnt-break-parachains.toml
similarity index 100%
rename from polkadot/zombienet_tests/functional/0012-elastic-scaling-mvp.toml
rename to polkadot/zombienet_tests/elastic_scaling/0002-elastic-scaling-doesnt-break-parachains.toml
diff --git a/polkadot/zombienet_tests/functional/0012-elastic-scaling-mvp.zndsl b/polkadot/zombienet_tests/elastic_scaling/0002-elastic-scaling-doesnt-break-parachains.zndsl
similarity index 75%
rename from polkadot/zombienet_tests/functional/0012-elastic-scaling-mvp.zndsl
rename to polkadot/zombienet_tests/elastic_scaling/0002-elastic-scaling-doesnt-break-parachains.zndsl
index edc87c802a0965b6fd685db44ccbf50e807f1ed3..900a3befbc6fc56f5200e9399f5fe5b21eb7af40 100644
--- a/polkadot/zombienet_tests/functional/0012-elastic-scaling-mvp.zndsl
+++ b/polkadot/zombienet_tests/elastic_scaling/0002-elastic-scaling-doesnt-break-parachains.zndsl
@@ -1,5 +1,5 @@
 Description: Test that a paraid acquiring multiple cores does not brick itself if ElasticScalingMVP feature is enabled in genesis
-Network: ./0012-elastic-scaling-mvp.toml
+Network: ./0002-elastic-scaling-doesnt-break-parachains.toml
 Creds: config
 
 # Check authority status.
@@ -11,7 +11,8 @@ validator: reports substrate_block_height{status="finalized"} is at least 10 wit
 validator: parachain 2000 block height is at least 10 within 200 seconds
 
 # Register the second core assigned to this parachain.
-alice: js-script ./0012-register-para.js return is 0 within 600 seconds
+alice: js-script ./assign-core.js with "2000,0" return is 0 within 600 seconds
+alice: js-script ./assign-core.js with "2000,1" return is 0 within 600 seconds
 
 validator: reports substrate_block_height{status="finalized"} is at least 35 within 100 seconds
 
diff --git a/polkadot/zombienet_tests/functional/0012-register-para.js b/polkadot/zombienet_tests/elastic_scaling/assign-core.js
similarity index 79%
rename from polkadot/zombienet_tests/functional/0012-register-para.js
rename to polkadot/zombienet_tests/elastic_scaling/assign-core.js
index 25c7e4f5ffddcf087edab4df37e696af92fe6d3f..2e5f9d8cfa58ae26ef058f334ad782f1fbd9eb9f 100644
--- a/polkadot/zombienet_tests/functional/0012-register-para.js
+++ b/polkadot/zombienet_tests/elastic_scaling/assign-core.js
@@ -1,7 +1,11 @@
-async function run(nodeName, networkInfo, _jsArgs) {
+async function run(nodeName, networkInfo, args) {
   const { wsUri, userDefinedTypes } = networkInfo.nodesByName[nodeName];
   const api = await zombie.connect(wsUri, userDefinedTypes);
 
+  let para = Number(args[0]);
+  let core = Number(args[1]);
+  console.log(`Assigning para ${para} to core ${core}`);
+
   await zombie.util.cryptoWaitReady();
 
   // account to submit tx
@@ -10,7 +14,7 @@ async function run(nodeName, networkInfo, _jsArgs) {
 
   await new Promise(async (resolve, reject) => {
     const unsub = await api.tx.sudo
-      .sudo(api.tx.coretime.assignCore(0, 35, [[{ task: 2000 }, 57600]], null))
+      .sudo(api.tx.coretime.assignCore(core, 0, [[{ task: para }, 57600]], null))
       .signAndSend(alice, ({ status, isError }) => {
         if (status.isInBlock) {
           console.log(