Android - Default USB MTP for Android 6.0
Google changed the USB protocol for Marshmallow to always default to charge.
The reason for this change because they brought back the ability to make external storage (SD card) become internal storage. Creating a new storage type called "Adoptable Storage".
Originally google removed the ability to swap storages because they viewed it as a huge security vulnerability.
In order to achieve your end goal it looks like you might have to compile marshmallow from source. Find the
MtpService.java and then with
The best I found so far is an application named MTPEnabler: http://forum.xda-developers.com/android/apps-games/app-mtp-enbaler-t3263467