diff --git a/cumulus/client/consensus/aura/Cargo.toml b/cumulus/client/consensus/aura/Cargo.toml
index 0b4f1352a0f1022c3e98ee1064691395482c6bbe..f393305ae4fd03e38f8f21ee0db3aaa0c88dd3eb 100644
--- a/cumulus/client/consensus/aura/Cargo.toml
+++ b/cumulus/client/consensus/aura/Cargo.toml
@@ -79,3 +79,7 @@ polkadot-node-subsystem.workspace = true
 polkadot-node-subsystem.default-features = true
 polkadot-overseer.workspace = true
 polkadot-overseer.default-features = true
+
+[features]
+# Allows collator to use full PoV size for block building
+full-pov-size = []
diff --git a/cumulus/client/consensus/aura/src/collators/basic.rs b/cumulus/client/consensus/aura/src/collators/basic.rs
index 4efd50a04ec6ec654ce7b32ac17eb07d12df3d6c..16fbb10a20960a52cc4fb17e3e3cf0b0da64c033 100644
--- a/cumulus/client/consensus/aura/src/collators/basic.rs
+++ b/cumulus/client/consensus/aura/src/collators/basic.rs
@@ -234,6 +234,16 @@ where
 					.await
 			);
 
+			let allowed_pov_size = if cfg!(feature = "full-pov-size") {
+				validation_data.max_pov_size
+			} else {
+				// Set the block limit to 50% of the maximum PoV size.
+				//
+				// TODO: If we got benchmarking that includes the proof size,
+				// we should be able to use the maximum pov size.
+				validation_data.max_pov_size / 2
+			} as usize;
+
 			let maybe_collation = try_request!(
 				collator
 					.collate(
@@ -242,11 +252,7 @@ where
 						None,
 						(parachain_inherent_data, other_inherent_data),
 						params.authoring_duration,
-						// Set the block limit to 50% of the maximum PoV size.
-						//
-						// TODO: If we got benchmarking that includes the proof size,
-						// we should be able to use the maximum pov size.
-						(validation_data.max_pov_size / 2) as usize,
+						allowed_pov_size,
 					)
 					.await
 			);
diff --git a/cumulus/client/consensus/aura/src/collators/lookahead.rs b/cumulus/client/consensus/aura/src/collators/lookahead.rs
index 749b131123949de9a00801558017b6637e48380d..ab16d9375ddc29b27400e90966d108d30ad4bf20 100644
--- a/cumulus/client/consensus/aura/src/collators/lookahead.rs
+++ b/cumulus/client/consensus/aura/src/collators/lookahead.rs
@@ -319,6 +319,16 @@ where
 				)
 				.await;
 
+				let allowed_pov_size = if cfg!(feature = "full-pov-size") {
+					validation_data.max_pov_size
+				} else {
+					// Set the block limit to 50% of the maximum PoV size.
+					//
+					// TODO: If we got benchmarking that includes the proof size,
+					// we should be able to use the maximum pov size.
+					validation_data.max_pov_size / 2
+				} as usize;
+
 				match collator
 					.collate(
 						&parent_header,
@@ -326,11 +336,7 @@ where
 						None,
 						(parachain_inherent_data, other_inherent_data),
 						params.authoring_duration,
-						// Set the block limit to 50% of the maximum PoV size.
-						//
-						// TODO: If we got benchmarking that includes the proof size,
-						// we should be able to use the maximum pov size.
-						(validation_data.max_pov_size / 2) as usize,
+						allowed_pov_size,
 					)
 					.await
 				{
diff --git a/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs b/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs
index 1fbc0689da862999367a0c4a9bda59ed3d6525af..b70cfe3841b78e439c2a936a37222da89ea9c5de 100644
--- a/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs
+++ b/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs
@@ -350,6 +350,16 @@ where
 			)
 			.await;
 
+			let allowed_pov_size = if cfg!(feature = "full-pov-size") {
+				validation_data.max_pov_size
+			} else {
+				// Set the block limit to 50% of the maximum PoV size.
+				//
+				// TODO: If we got benchmarking that includes the proof size,
+				// we should be able to use the maximum pov size.
+				validation_data.max_pov_size / 2
+			} as usize;
+
 			let Ok(Some(candidate)) = collator
 				.build_block_and_import(
 					&parent_header,
@@ -357,11 +367,7 @@ where
 					None,
 					(parachain_inherent_data, other_inherent_data),
 					authoring_duration,
-					// Set the block limit to 50% of the maximum PoV size.
-					//
-					// TODO: If we got benchmarking that includes the proof size,
-					// we should be able to use the maximum pov size.
-					(validation_data.max_pov_size / 2) as usize,
+					allowed_pov_size,
 				)
 				.await
 			else {
diff --git a/prdoc/pr_5507.prdoc b/prdoc/pr_5507.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..7fcf3067fabc580d9c40af0ffb413a50bf5b3d8a
--- /dev/null
+++ b/prdoc/pr_5507.prdoc
@@ -0,0 +1,15 @@
+# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
+# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
+
+title: Allow to enable full PoV size
+
+doc:
+  - audience: Node Dev
+    description: |
+      A feature is introduced allowing a collator to enable full PoV size at compile time.
+      WARNING: To use this feature, security considerations must be understood and the latest
+      SDK version must be used.
+
+crates:
+  - name: cumulus-client-consensus-aura
+    bump: minor