Layer 2 does not do any fragmentation. It is up to Layer 3 to pass data to Layer 2 in a packet/frame size that will already match Layer 2's MTU. In fact, the reason Layer 3 does fragmentation in the first place is is because of the limitations of the Layer 2 Protocol.
IP doesn't care if the packet size is 1500 bytes of 9999 bytes, it just knows what its underlying Layer 2 protocol can handle. The "Packet Length" field in the IP header is a 16 bit value, which means IP can create a packet as big as 65535 bytes if necessary, but only if the underlying Layer 2 fabric can support it.
Now specifically speaking for "Layer 2 protocols" like CDP, STP, VTP, (etc...), those by design send very small sized frames that should never need to be broken up into smaller frames. So what you said is, in a way, correct, that the protocol itself handles the fragmentation (by means of not needing to send frames that would require any additional fragmentation).