Can I use MAC as CTR mode nonce, if my messages are non-repeating?
Yes, but to use a known algorithm that specifies precisely that, take a look at the SIV mode of operation . "SIV" stands for Synthetic IV. IV is the initialization vector, which is the nonce (or the nonce and initial counter value, depending on the definitions).

Unsurprisingly it relies on CTR mode for confidentiality and CMAC for the authentication tag that doubles as IV - much like CCM.

The problem with CCM is that you would have a chicken/egg problem as the MAC is calculated at the end of the protocol. Although you could implement the protocol differently, I'd recommend to use a tried and tested mode instead.



Besides that, CCM mode is - at least in my opinion - a horrible mode to implement.

SIV does have the problem that it is a full two pass protocol; you will have to go over each packet twice to encrypt: one pass for creating the SIV and on pass to encrypt. Decryption is easier as you already have the IV ready, so you can at least combine the two passes.