Change detection in circular data

Suppose I have a data set that represents circular data measured in degrees:

x <- c(rnorm(1000, 0, 10), rnorm(700, 110, 3), rnorm(1100, 230, 5)) %% 360

The R package circular provides a very nice way to represent that data, and a basic tool for detecting change points in it:

library(circular)
x <- circular(x, units='degrees')
cp <- change.point(x)

However, this particular algorithm is limited, because it's (in my experience) relatively inefficient, and it's limited to finding one change point at a time, so if multiple change points are present, a recursive approach is needed. This causes some difficulty in deciding when to terminate.

If a linear change point algorithm is used, it will have difficulty with x[1:1000] because some values will be close to 0 and some close to 360.

For linear data, I like the 'PELT' algorithm of Killick, Fearnhead, and Eckley (2011) implemented by the R package changepoint's cpt.mean() function. It's fast and seems to be pretty reliable. Has anyone looked at adapting this method to circular data?

Or other recommendations?