This is a way to trick the iPhone (iOS 6.0) into making ringtones longer than the ~40 second maximum:

Note: This may now be a moot point since you can select songs for the default alarm, but the one advantage is it allows the phone to vibrate when it is a ringtone and the vibrate alert is enabled.

Summary: Add a short 15sec .m4r song to iTunes. Replace the source file with the full length .m4r version, then drag it from the Library to your iPhone. iTunes will be expecting the short version but will copy the whole thing without error.

Prerequisites: Create two .mp3 versions of the song. One the full length, the other a short version <30sec.

Detailed instructions:

1) Create two folders. One with the full length version of the song. The other with a 15s version.

2) Add the short version to the iTunes Library via File>Add File to Library

3) Convert the short version to AAC, then search for it in Music. Once you find it, right click to Show in Windows Explorer. Rename the file extension of the short song to .m4r. Keep the Window Open.

4) Move the .m4r version to the short folder in Step 1.

5) Remove the AAC listings in the Music Library.

6) Repeat the AAC conversion for the full version, following Steps 3-5 while working from the full length folder. This is to prevent confusion. Use file size to help separate if needed.

6) From the short folder in Step 1, drag the .m4r into the Library section in iTunes.

7) Rename the short .m4r file extension to .m4r_short

8) Copy the full length .m4r into the short directory.

9) From within the iTunes Library, open Tones and then drag the song to your iPhone. The entire full length song will copy without any errors.