diff --git a/drivers/cc2420/cc2420_netdev.c b/drivers/cc2420/cc2420_netdev.c
index fe1f42ccd300662f1445111ae7a9d577c140d985..20f741e723bcd2729633fcab5643be0e17016086 100644
--- a/drivers/cc2420/cc2420_netdev.c
+++ b/drivers/cc2420/cc2420_netdev.c
@@ -38,6 +38,7 @@
 #define ENABLE_DEBUG    (0)
 #include "debug.h"
 
+#define _MAX_MHR_OVERHEAD   (25)
 
 static int _send(netdev_t *netdev, const iolist_t *iolist);
 static int _recv(netdev_t *netdev, void *buf, size_t len, void *info);
@@ -187,6 +188,11 @@ static int _get(netdev_t *netdev, netopt_t opt, void *val, size_t max_len)
             cc2420_get_addr_long(dev, val);
             return 8;
 
+        case NETOPT_MAX_PACKET_SIZE:
+            assert(max_len >= sizeof(int16_t));
+            *((uint16_t *)val) = CC2420_PKT_MAXLEN - _MAX_MHR_OVERHEAD;
+            return sizeof(int16_t);
+
         case NETOPT_NID:
             assert(max_len >= sizeof(uint16_t));
             return w_u16(val, cc2420_get_pan(dev));